* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . **/ trait qcEvents_Trait_Timer { // {{{ addTimer /** * Register a timer for this event-handle * * @param mixed $Timeout * @param bool $Repeat (optional) * @param callable $Callback (optional) * @param mixed $Private (optional) * * @access public * @return void **/ public function addTimer ($Timeout, $Repeat = false, callable $Callback = null, $Private = null) { // Make sure we have the getEventBase()-Call if (!($this instanceof qcEvents_Interface_Loop) && !is_callable (array ($this, 'getEventBase'))) { trigger_error ('Class does not implement qcEvents_Interface_Loop or has no getEventBase()-Call'); return false; } // Try to retrive our event-loop if (!is_object ($Base = $this->getEventBase ())) return false; // Try to enqueue the timer return $Base->addTimer ($this, $Timeout, $Repeat, $Callback, $Private); } // }}} // {{{ clearTimer /** * Try to unregister a previous declared timer for this event-handle * * @param mixed $Timeout * @param bool $Repeat (optional) * @param callable $Callback (optional) * @param mixed $Private (optional) * * @access public * @return void **/ public function clearTimer ($Timeout, $Repeat = false, callable $Callback = null, $Private = null) { // Make sure we have the getEventBase()-Call if (!($this instanceof qcEvents_Interface_Loop) && !is_callable (array ($this, 'getEventBase'))) return false; // Try to retrive our event-loop if (!is_object ($Base = $this->getEventBase ())) return false; // Try to clear the given timer return $Base->clearTimer ($this, $Timeout, $Repeat, $Callback, $Private); } // }}} // {{{ raiseTimer /** * Callback: A timer-event was raised * * @access public * @return void **/ public function raiseTimer () { $this->___callback ('eventTimer'); } // }}} } ?>