Attribute listInstance is now cored
[core.git] / inc / classes / main / class_BaseFrameworkSystem.php
index 91d3d0253b95d7419644c9b21a8a704ef9b56f19..5237b802b1faedba51b31d9a45f985d39f5aead9 100644 (file)
@@ -83,6 +83,11 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
         */
        private $iteratorInstance = null;
 
+       /**
+        * Instance of the list
+        */
+       private $listInstance = null;
+
        /**
         * The real class name
         */
@@ -1118,6 +1123,65 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
        public final function getIteratorInstance () {
                return $this->iteratorInstance;
        }
+
+       /**
+        * "Getter" as a time() replacement but with milliseconds. You should use this
+        * method instead of the encapsulated getimeofday() function.
+        *
+        * @return      $milliTime      Timestamp with milliseconds
+        */
+       public function getMilliTime () {
+               // Get the time of day as float
+               $milliTime = gettimeofday(true);
+
+               // Return it
+               return $milliTime;
+       }
+
+       /**
+        * Idles (sleeps) for given milliseconds
+        *
+        * @return      $hasSlept       Wether it goes fine
+        */
+       public function idle ($milliSeconds) {
+               // Sleep is fine by default
+               $hasSlept = true;
+
+               // Idle so long with found function
+               if (function_exists('time_sleep_until')) {
+                       // Get current time and add idle time
+                       $sleepUntil = $this->getMilliTime() + abs($milliSeconds) / 1000;
+
+                       // New PHP 5.1.0 function found
+                       $hasSlept = time_sleep_until($sleepUntil);
+               } else {
+                       // My Sun Station doesn't have that function even with latest PHP
+                       // package. :(
+                       usleep($milliSeconds * 1000);
+               }
+
+               // Return result
+               return $hasSlept;
+       }
+
+       /**
+        * Setter for the list instance
+        *
+        * @param       $listInstance   A list of Listable
+        * @return      void
+        */
+       protected final function setListInstance (Listable $listInstance) {
+               $this->listInstance = $listInstance;
+       }
+
+       /**
+        * Getter for the list instance
+        *
+        * @return      $listInstance   A list of Listable
+        */
+       protected final function getListInstance () {
+               return $this->listInstance;
+       }
 }
 
 // [EOF]