Blame view

src/InputOutput/IHMImpl/IHMInputOutputClass.php 3.43 KB
22521f1c   Benjamin Renard   First commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php

/**
 * @class IHMInputOutputClass
 * @brief Class that's implement an InputOutputInterface for AMDA IHM client.
 * @details
 */
class IHMInputOutputClass implements InputOutputInterface
{
	private $inputOutput = null;

	/*
	 * @brief Constructor
	*/
	function __construct($userName)
	{
		IHMConfigClass::setUserName($userName);
	}

	/*
	 * @brief translate input data from AMDA IHM to AMDA_Integration module
	*/
	public function getInputData($input,$function,$requestId = "")
	{
		//check user workspace
		if (IHMConfigClass::getUserName() == "" || !is_dir(IHMConfigClass::getUserPath()))
			throw new Exception('Cannot find user workspace.');

		switch ($function)
		{
			case FunctionTypeEnumClass::PARAMS :
				switch ($input->nodeType)
				{
					case 'download' :
						//download data
						if ($input->downloadSrc != "0")
							throw new Exception('Download source '.$input->downloadSrc.' not implemented for this client.');
						$this->inputOutput = new IHMInputOutputParamsDownloadClass();
						break;
					case 'condition' :
						//data mining
						$this->inputOutput = new IHMInputOutputParamsDataMiningClass();
						break;
					case 'request' :
						//plot
8c57155b   Benjamin Renard   Integration for t...
46
47
48
49
50
						if (($input->{"file-format"} == "PNG") && ($input->{"file-output"} == "INTERACTIVE"))
						{
							//set working dir for interactive plot
							$requestId = "Plot";
						}
22521f1c   Benjamin Renard   First commit
51
						$this->inputOutput = new IHMInputOutputParamsPlotClass();
22521f1c   Benjamin Renard   First commit
52
						break;
01ff2cc6   elena   catalog draft
53
					case 'statistics' :
952dd7c7   elena   catalog integration
54
						//catalog generation
01ff2cc6   elena   catalog draft
55
						$this->inputOutput = new IHMInputOutputParamsStatisticsClass();
bda99a72   Benjamin Renard   Add kill plot req...
56
57
58
59
60
						break;
					case 'killplot' :
						$requestId = "Plot";
						$this->inputOutput = new IHMInputOutputParamsKillPlotClass();
						break;
22521f1c   Benjamin Renard   First commit
61
62
63
64
					default :
						throw new Exception('Params request type '.$input_request->nodeType.' not implemented for this client.');
				}
				break;
3493f196   Benjamin Renard   Add request to ge...
65
66
67
68
			case FunctionTypeEnumClass::PARAMSGEN :
				$this->inputOutput = new IHMInputOutputParamsGeneratorClass();
				$requestId = "ParamGen";
				break;
22521f1c   Benjamin Renard   First commit
69
70
			case FunctionTypeEnumClass::ACTION :
				$this->inputOutput = new IHMInputOutputParamsPlotClass();
952dd7c7   elena   catalog integration
71
				$requestId = str_replace("_","",$input->folderId);
22521f1c   Benjamin Renard   First commit
72
73
74
75
76
77
78
79
80
81
				break;
			case FunctionTypeEnumClass::PROCESSDELETE :
				$this->inputOutput = new IHMInputOutputDeleteProcessClass();
				break;
			case FunctionTypeEnumClass::PROCESSRUNNINGINFO :
				$this->inputOutput = new IHMInputOutputRunningInfoProcessClass();
				break;
			case FunctionTypeEnumClass::PROCESSGETINFO :
				$this->inputOutput = new IHMInputOutputGetInfoProcessClass();
				break;
952dd7c7   elena   catalog integration
82
83
			case FunctionTypeEnumClass::PROCESSCLEAN :
				$this->inputOutput = new IHMInputOutputCleanProcessClass();
22521f1c   Benjamin Renard   First commit
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
				break;
				/*case FunctionTypeEnumClass::TTMERGE :
				 $this->inputOutput = new IHMInputOutputMergeTTClass();
				break;
				case FunctionTypeEnumClass::TTUNION :
				$this->inputOutput = new IHMInputOutputUnionTTClass();
				break;*/
			default :
				throw new Exception('Request type '.$function.' not implemented for this client.');
		}

		return $this->inputOutput->getInputData($input,$function,$requestId);
	}

	/*
	 * @brief translate output data from AMDA_Integration module to AMDA IHM
	*/
	public function getOutput($data)
	{
		if (!isset($this->inputOutput))
			return array("success" => false, "message" => "Input Output Interface not initialized for this request");

		return $this->inputOutput->getOutput($data);
	}
}

952dd7c7   elena   catalog integration
110
?>