IHMInputOutputClass.php
4.33 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?php
/**
* @class IHMInputOutputClass
* @brief Class that's implement an InputOutputInterface for AMDA IHM client.
* @details
*/
class IHMInputOutputClass implements InputOutputInterface
{
protected $inputOutput = null;
protected $userWSMgr = null;
/*
* @brief Constructor
*/
function __construct($userName, $userHost)
{
IHMConfigClass::setUserName($userName);
IHMConfigClass::setUserHost($userHost);
$this->userWSMgr = new IHMUserWSManagerClass();
}
/*
* @brief translate input data from AMDA IHM to AMDA_Integration module
*/
public function getInputData($input,$function,$requestId = "")
{
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
if (($input->{"file-format"} == "PNG") && ($input->{"file-output"} == "INTERACTIVE"))
{
//set working dir for interactive plot
$requestId = "Plot";
}
$this->inputOutput = new IHMInputOutputParamsPlotClass();
break;
case 'multiplot' :
//multiplot
$this->inputOutput = new IHMInputOutputParamsMultiPlotClass();
//set working dir for interactive plot
$requestId = "Plot";
break;
case 'statistic' :
//catalog generation
$this->inputOutput = new IHMInputOutputParamsStatisticsClass();
break;
case 'killplot' :
$requestId = "Plot";
$this->inputOutput = new IHMInputOutputParamsKillPlotClass();
break;
default :
throw new Exception('Params request type '.$input_request->nodeType.' not implemented for this client.');
}
break;
case FunctionTypeEnumClass::PARAMSGEN :
$this->inputOutput = new IHMInputOutputParamsGeneratorClass();
$requestId = "ParamGen";
break;
case FunctionTypeEnumClass::PARAMSINFOGEN :
$this->inputOutput = new IHMInputOutputParamsInfoGeneratorClass();
$requestId = "ParamInfoGen";
break;
case FunctionTypeEnumClass::ACTION :
if (!$input->action->multiplot) {
$this->inputOutput = new IHMInputOutputParamsPlotClass();
}
else {
$this->inputOutput = new IHMInputOutputParamsMultiPlotClass();
}
$requestId = "Plot";
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;
case FunctionTypeEnumClass::PROCESSCLEAN :
$this->inputOutput = new IHMInputOutputCleanProcessClass();
break;
case FunctionTypeEnumClass::PROCESSGETREQUEST :
$this->inputOutput = new IHMInputOutputGetProcessRequestClass();
break;
/*case FunctionTypeEnumClass::TTMERGE :
$this->inputOutput = new IHMInputOutputMergeTTClass();
break;
case FunctionTypeEnumClass::TTUNION :
$this->inputOutput = new IHMInputOutputUnionTTClass();
break;*/
case FunctionTypeEnumClass::TTCONVERT :
$this->inputOutput = new IHMInputOutputTTClass();
break;
case FunctionTypeEnumClass::PARAMINFO :
$this->inputOutput = new IHMInputOutputParamInfoClass();
break;
case FunctionTypeEnumClass::DLOBJECT :
$this->inputOutput = new IHMInputOutputDownloadObjectClass();
break;
case FunctionTypeEnumClass::USERWSINIT :
return $this->userWSMgr->init();
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);
}
}
?>