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