From 5ba9e78551772229a1bfb30461ea4baa19f09b5f Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Mon, 22 Feb 2010 10:30:25 +0000 Subject: [PATCH] --- .../class.ws.conversion.session.php | 61 +++++++++++++++---- inc/extranet/Controlleur/class.ws.flash.php | 17 +++--- 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/inc/extranet/Controlleur/class.ws.conversion.session.php b/inc/extranet/Controlleur/class.ws.conversion.session.php index de9159e06..e90602574 100644 --- a/inc/extranet/Controlleur/class.ws.conversion.session.php +++ b/inc/extranet/Controlleur/class.ws.conversion.session.php @@ -1,24 +1,63 @@ documents = $_SESSION['conversionSession']; - $_SESSION['conversionSessionProgress'] = 0; - unset($_SESSION['conversionSession']); + $this->guid = $guid; + } + + public function setDocuments($documents) + { + $this->documents = $documents; } public function process() { - for($i = $_SESSION['conversionSessionProgress'];$i <= 100;$i++) { - usleep(0.25 * 1000000); - $_SESSION['conversionSessionProgress'] = $i; + for($i = 1;$i <= 100;$i++) { + cubePHP::sleep(0.1); + $i++; + } + } + + public function getProgress() + { + return $this->progress; + } + + public function setProgress($i) + { + $this->progress = $i; + $this->serialize(); + } + + public function serialize() + { + file_put_contents(self::getCachePath($this->guid), serialize($this)); + } + + public function __destruct() + { + $this->serialize(); + } + + public static function openFromGUID($guid) + { + $serializedObject = self::getCachePath($guid); + if (file_exists($serializedObject)) { + return unserialize(file_get_contents($serializedObject)); + } else { + return new wsConversionSession($guid); } } + + public static function getCachePath($guid) + { + return CACHE . '/conversionSessions/' . $guid; + } } ?> \ No newline at end of file diff --git a/inc/extranet/Controlleur/class.ws.flash.php b/inc/extranet/Controlleur/class.ws.flash.php index 3f896cdd8..7d1268077 100644 --- a/inc/extranet/Controlleur/class.ws.flash.php +++ b/inc/extranet/Controlleur/class.ws.flash.php @@ -68,26 +68,27 @@ class wsFlash extends cubeFlashGateway { public function processConversionSession() { - $cookies = array(session_name() => session_id()); + $_SESSION['sessionConversionGUID'] = $sessionConversionGUID = uniqid('conversion_', true); + $session = new wsConversionSession($sessionConversionGUID); + $session->setDocuments($_SESSION['conversionSession']); + $conversion->serialize(); + $http = new cubeHTTP($_SERVER['HTTP_HOST']); $http->setDataTimeout(3); - $http->get('/flash/processConversionSessionAsync', array('user_email' => $_SESSION['user_email'], 'user_password' => $_SESSION['user_password'])); + $http->post('/flash/processConversionSessionAsync', array('user_email' => $_SESSION['user_email'], 'user_password' => $_SESSION['user_password'], 'sessionConversionGUID' => $sessionConversionGUID)); } public function processConversionSessionAsync() { - file_put_contents(ROOT . '/test.txt', print_r($_SERVER, true)); cubePHP::neverStop(); - $conversion = new wsConversionSession(); + $conversion = wsConversionSession::openFromGUID($_POST['sessionConversionGUID']); $conversion->process(); } public function getConversionSessionProgress() { - if (!isset($_SESSION['conversionSessionProgress'])) { - $_SESSION['conversionSessionProgress'] = 0; - } - $this->xml->addChild('progress', $_SESSION['conversionSessionProgress']); + $session = wsConversionSession::openFromGUID($_SESSION['sessionConversionGUID']); + $this->xml->addChild('progress', $session->getProgress()); } } -- 2.39.5