IHMInputOutputClass.php
3.63 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
<?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
if (($input->{"file-format"} == "PNG") && ($input->{"file-output"} == "INTERACTIVE"))
{
//set working dir for interactive plot
$requestId = "Plot";
}
$this->inputOutput = new IHMInputOutputParamsPlotClass();
break;
case 'statistics' :
//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::ACTION :
$this->inputOutput = new IHMInputOutputParamsPlotClass();
$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::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;
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);
}
}
?>