add_signal() public method

Adds a signal to trigger in the loop.
public add_signal ( $signal ) : array
return array
コード例 #1
0
ファイル: sig_awake.php プロジェクト: prggmr/xpspl
 /**
  * Runs the routine.
  *
  * This checks if the appriorate amount of time has passed and emits the 
  * awake signal if so.
  * 
  * @return  boolean
  */
 public function routine(\XPSPL\Routine $routine = null)
 {
     if ($this->get_idle()->has_time_passed()) {
         $routine->add_signal($this);
         $this->get_idle()->set_time($this->_time);
     }
     $routine->add_idle($this);
     return true;
 }
コード例 #2
0
ファイル: sig_suite.php プロジェクト: prggmr/xpspl
 /**
  * Routine function.
  */
 public function routine(\XPSPL\Routine $routine)
 {
     if (null === $this->_test) {
         return false;
     }
     $routine->add_signal($this);
     $routine->add_signal($this->_test);
     $this->_test = null;
     return true;
 }
コード例 #3
0
ファイル: sig_cron.php プロジェクト: prggmr/xpspl
 /**
  * Determines when the time signal should fire, otherwise returning
  * the processor to idle until it will.
  * 
  * @return  integer
  */
 public function routine(\XPSPL\Routine $routine = null)
 {
     if ($this->get_idle()->has_time_passed()) {
         $this->_next_run = $this->_cron->getNextRunDate()->getTimestamp();
         $routine->add_signal($this);
     }
     $this->get_idle()->set_time($this->_next_run - time());
     $routine->add_idle($this);
     return true;
 }
コード例 #4
0
ファイル: socket.php プロジェクト: prggmr/xpspl
 /**
  * Registers the idle process.
  *
  * @return  void
  */
 public function routine(\XPSPL\Routine $routine)
 {
     if (null === $this->_connection) {
         $this->_connect();
         $routine->add_signal(new SIG_Connect($this->_connection));
     }
     $routine->add_idle($this);
 }
コード例 #5
0
ファイル: sig_test.php プロジェクト: prggmr/xpspl
 /**
  * Runs the routine.
  */
 public function routine(\XPSPL\Routine $routine)
 {
     if (!$this->_run) {
         $this->_run = true;
         $routine->add_signal($this);
     }
 }