From e82af71b2c85bd95dcf3eb035cbb21f5c5522496 Mon Sep 17 00:00:00 2001 From: elena <ebudnik@irap.omp.eu> Date: Fri, 24 Jul 2015 10:26:10 +0200 Subject: [PATCH] catalog draft --- php/classes/AmdaAction.php | 4 ++-- php/classes/CatalogCacheMgr.php | 25 +++++++++++++++++++++++++ php/classes/CatalogMgr.php | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------ 3 files changed, 81 insertions(+), 56 deletions(-) diff --git a/php/classes/AmdaAction.php b/php/classes/AmdaAction.php index 1593387..cc67537 100644 --- a/php/classes/AmdaAction.php +++ b/php/classes/AmdaAction.php @@ -1236,8 +1236,8 @@ class AmdaAction { //AKKA - New action to clean user WS public function cleanUserWS() { -// require_once(INTEGRATION_SRC_DIR."RequestManager.php"); -// return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSCLEAN); + require_once(INTEGRATION_SRC_DIR."RequestManager.php"); + return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSCLEAN); } public function deleteSpecialInfo($name) diff --git a/php/classes/CatalogCacheMgr.php b/php/classes/CatalogCacheMgr.php index 5aaf7f4..000d41c 100644 --- a/php/classes/CatalogCacheMgr.php +++ b/php/classes/CatalogCacheMgr.php @@ -273,6 +273,31 @@ class CatalogCacheMgr extends TimeTableCacheMgr 'status' => $this->cache->getStatus(), 'parameters' => $paramHeaders); } + public function initFromTT($id, $typeTT) { + //Create new cache + $this->cache = new CatalogeCacheObject(); + + //Load intervals from TT file and add to cache + $intervals_res = $this->ttMgr->loadIntervalsFromTT($id,$typeTT); + + if (!$intervals_res['success']) + return $intervals_res; + + foreach ($intervals_res['intervals'] as $interval) + { + //Add interval + $this->cache->addInterval($interval['start'], $interval['stop']); + } + + unset($intervals_res); + + //Update cache + $this->cache->updateIndexes(); + + //Save cache file + return array('success' => $this->saveToFile(), 'token' => $this->cache->getToken(), 'status' => $this->cache->getStatus()); + } + protected function loadFromFile() { diff --git a/php/classes/CatalogMgr.php b/php/classes/CatalogMgr.php index 27d093f..e865a40 100644 --- a/php/classes/CatalogMgr.php +++ b/php/classes/CatalogMgr.php @@ -109,60 +109,60 @@ class CatalogMgr extends TimeTableMgr { } -// public function loadIntervalsFromTT($id,$typeTT,$start = NULL, $limit = NULL) -// { -// -// if ($typeTT == 'sharedtimeTable') { -// $pathid = SHAREDPATH.'TT/'.$id; -// } -// else { -// $pathid = USERTTDIR.$id; -// } -// -// //load intervals from TT id -// if (!file_exists($pathid.'.xml')) -// return array('success' => false, 'message' => "Cannot find TT file ".$id); -// -// $this->objectDom -> load($pathid.'.xml'); -// -// if (!($objToGet = $this->objectDom->getElementById($id))) -// return array('success' => false, 'message' => NO_SUCH_ID." ".$id); -// -// $xpath = new DOMXPath($this->objectDom); -// $intervals = $xpath->query('//intervals'); -// -// $result = array(); -// -// if (!isset($start) || !isset($limit)) -// { -// foreach ($intervals as $interval) -// { -// $startTime = $interval->getElementsByTagName('start')->item(0)->nodeValue; -// $stopTime = $interval->getElementsByTagName('stop')->item(0)->nodeValue; -// array_push($result, array('start' => $startTime, 'stop' => $stopTime)); -// } -// } -// else -// { -// for ($i = 0; $i < $limit; ++$i) -// { -// if ($start+$i >= $intervals->length) -// break; -// $startTime = $intervals->item($start+$i)->getElementsByTagName('start')->item(0)->nodeValue; -// $stopTime = $intervals->item($start+$i)->getElementsByTagName('stop')->item(0)->nodeValue; -// array_push($result, array('start' => $startTime, 'stop' => $stopTime)); -// } -// } -// -// return array( -// 'totalCount' => $intervals->length, -// 'intervals' => $result, -// 'start' => isset($start) ? $start : 0, -// 'limit' => isset($limit) ? $limit : 0, -// 'success' => true -// ); -// -// } + public function loadIntervalsFromTT($id, $typeTT, $start = NULL, $limit = NULL) + { + + if ($typeTT == 'sharedcatalog') { + $pathid = SHAREDPATH.'TT/'.$id; + } + else { + $pathid = USERTTDIR.$id; + } + + //load intervals from TT id + if (!file_exists($pathid.'.xml')) + return array('success' => false, 'message' => "Cannot find Catalog file ".$id); + + $this->objectDom->load($pathid.'.xml'); + + if (!($objToGet = $this->objectDom->getElementById($id))) + return array('success' => false, 'message' => NO_SUCH_ID." ".$id); + + $xpath = new DOMXPath($this->objectDom); + $intervals = $xpath->query('//intervals'); + + $result = array(); + + if (!isset($start) || !isset($limit)) + { + foreach ($intervals as $interval) + { + $startTime = $interval->getElementsByTagName('start')->item(0)->nodeValue; + $stopTime = $interval->getElementsByTagName('stop')->item(0)->nodeValue; + array_push($result, array('start' => $startTime, 'stop' => $stopTime)); + } + } + else + { + for ($i = 0; $i < $limit; ++$i) + { + if ($start+$i >= $intervals->length) + break; + $startTime = $intervals->item($start+$i)->getElementsByTagName('start')->item(0)->nodeValue; + $stopTime = $intervals->item($start+$i)->getElementsByTagName('stop')->item(0)->nodeValue; + array_push($result, array('start' => $startTime, 'stop' => $stopTime)); + } + } + + return array( + 'totalCount' => $intervals->length, + 'intervals' => $result, + 'start' => isset($start) ? $start : 0, + 'limit' => isset($limit) ? $limit : 0, + 'success' => true + ); + + } /* * catalog header -- libgit2 0.21.2