diff --git a/src/InputOutput/IHMImpl/IHMInputOutputClass.php b/src/InputOutput/IHMImpl/IHMInputOutputClass.php index 54db80a..ff55566 100644 --- a/src/InputOutput/IHMImpl/IHMInputOutputClass.php +++ b/src/InputOutput/IHMImpl/IHMInputOutputClass.php @@ -48,9 +48,9 @@ class IHMInputOutputClass implements InputOutputInterface if (($input->format == "PNG") && ($input->tabId != "")) $requestId = "Plot".$input->tabId; break; - case 'catalog' : + case 'statistics' : //catalog generation - $this->inputOutput = new IHMInputOutputParamsCatalogClass(); + $this->inputOutput = new IHMInputOutputParamsStatisticsClass(); break; default : throw new Exception('Params request type '.$input_request->nodeType.' not implemented for this client.'); diff --git a/src/InputOutput/IHMImpl/Params/StatisticsImpl/IHMInputOutputParamsStatisticsClass.php b/src/InputOutput/IHMImpl/Params/StatisticsImpl/IHMInputOutputParamsStatisticsClass.php new file mode 100644 index 0000000..c6177ce --- /dev/null +++ b/src/InputOutput/IHMImpl/Params/StatisticsImpl/IHMInputOutputParamsStatisticsClass.php @@ -0,0 +1,62 @@ +<?php + +define ("STATISTICS_RESULT_FILE_KEY", "statistic"); + +/** + * @class IHMInputOutputParamsStatisticsClass + * @brief Implementation of IHMInputOutputParamsAbstractClass to treat catalog generation request + * @details +*/ +class IHMInputOutputParamsStatisticsClass extends IHMInputOutputParamsAbstractClass +{ + /* + * @brief method to unmarshall a catalog generation request + */ + protected function unmarshallRequest($input) + { + /* + {"id":"","timesrc":"TimeTable","name":"test","created":null,"description":"first","objName":"","objFormat":"","folderId":"","nbIntervals":0,"cacheToken":"","parameter":[{"param":"imf_gsm","function":"min"},{"param":"imf_mag","function":"max"}],"timeTables":[{"id":"sharedtt_26"},{"id":"sharedtt_27"}],"leaf":true,"nodeType":"catalog"}]' + */ + $paramsNode = $this->paramsData->getRequestNode()->getParamsNode(); + + //unmarshall time definition + $this->unmarshallTimeDefinition($input); + + //unmarshall statistic output definition + $outputsNode = $this->paramsData->getRequestNode()->getOutputsNode(); + $catalogNode = $outputsNode->addNewOutput(RequestOutputTypeEnum::STATISTIC); + $catalogNode->setTimeFormat(RequestOutputStatisticTimeFormatEnum::ISO); + $catalogNode->setFileFormat(RequestOutputStatisticFileFormatEnum::XML); + + // parse parameters / functions array + foreach ($input->parameter as $obj) { + $paramFunctionAssociation[$obj->param][] = $obj->function; + } + + foreach ($paramFunctionAssociation as $param => $functions) { + $paramsNode->addParam($param); + $outputParamNode = $catalogNode->addParam($param); + foreach ($functions as $function) $outputParamNode->addFunction($function); + $paramInfo = $this->paramManager->addExistingParam($param,$this->paramsData); + } + + $resultFile = "result_".$this->requestID; + $this->paramsData->addWaitingResult(STATISTICS_RESULT_FILE_KEY, $resultFile); +// + $postProcessCmd = "mv statistic-*"; + $postProcessCmd .= " ".$resultFile.".xml"; + +// + $this->paramsData->setPostCmd($postProcessCmd); + return $this->paramsData; + } + + /* + * @brief method to marshall the result of a catalog generation request + */ + protected function marshallResult($data) + { + return $this->commonMarshallResult($data,STATISTICS_RESULT_FILE_KEY); + } +} +?> \ No newline at end of file diff --git a/src/InputOutput/IHMImpl/Tools/IHMJobsManagerClass.php b/src/InputOutput/IHMImpl/Tools/IHMJobsManagerClass.php index da27706..c586ce1 100644 --- a/src/InputOutput/IHMImpl/Tools/IHMJobsManagerClass.php +++ b/src/InputOutput/IHMImpl/Tools/IHMJobsManagerClass.php @@ -10,11 +10,13 @@ class IHMJobsManagerClass { protected $bkgRootNode = array('condition' => 'bkgSearch-treeRootNode', 'request' => 'bkgPlot-treeRootNode', - 'download' => 'bkgDown-treeRootNode'); + 'download' => 'bkgDown-treeRootNode', + 'statistics' => 'bkgStatistics-treeRootNode'); protected $resRootNode = array('condition' => 'resSearch-treeRootNode', 'request' => 'resPlot-treeRootNode', - 'download' => 'resDown-treeRootNode'); + 'download' => 'resDown-treeRootNode', + 'statistics' => 'resStatistics-treeRootNode'); /* * @brief Constructor @@ -259,6 +261,10 @@ class IHMJobsManagerClass { $name = 'datamining_'.time(); $info = $obj->expression; break; + case 'statistics' : + $name = 'statistics_'.time(); + $info = $obj->expression; + break; case 'download' : if ($obj->downloadSrc == '2') //fits image $name = "download_fits_".time(); diff --git a/src/RequestManager.php b/src/RequestManager.php index 081c182..c531663 100644 --- a/src/RequestManager.php +++ b/src/RequestManager.php @@ -9,7 +9,7 @@ function amdaintegration_autoload($class_name) 'InputOutput/IHMImpl/Config', 'InputOutput/IHMImpl/Params', 'InputOutput/IHMImpl/Params/DataMiningImpl', - 'InputOutput/IHMImpl/Params/CatalogImpl', + 'InputOutput/IHMImpl/Params/StatisticsImpl', 'InputOutput/IHMImpl/Params/DownloadImpl', 'InputOutput/IHMImpl/Params/PlotImpl', 'InputOutput/IHMImpl/Params/GeneratorImpl', -- libgit2 0.21.2