TeamSpeak 3 PHP Framework
1.1.12
|
Helper class for signal slots. More...
Public Member Functions | |
emit ($signal, $params=null) | |
Emits a signal with a given set of parameters. | |
subscribe ($signal, $callback) | |
Subscribes to a signal and returns the signal handler. | |
unsubscribe ($signal, $callback=null) | |
Unsubscribes from a signal. | |
getSignals () | |
Returns all registered signals. | |
hasHandlers ($signal) | |
Returns TRUE there are slots subscribed for a specified signal. | |
getHandlers ($signal) | |
Returns all slots for a specified signal. | |
clearHandlers ($signal) | |
Clears all slots for a specified signal. | |
Static Public Member Functions | |
static | getInstance () |
Returns a singleton instance of TeamSpeak3_Helper_Signal. | |
Protected Attributes | |
$sigslots = array() | |
Static Protected Attributes | |
static | $instance = null |
Helper class for signal slots.
Definition at line 32 of file Signal.php.
TeamSpeak3_Helper_Signal::emit | ( | $ | signal, |
$ | params = null |
||
) |
Emits a signal with a given set of parameters.
string | $signal | |
mixed | $params |
Definition at line 55 of file Signal.php.
References hasHandlers().
{ if(!$this->hasHandlers($signal)) { return; } if(!is_array($params)) { $params = func_get_args(); $params = array_slice($params, 1); } foreach($this->sigslots[$signal] as $slot) { $return = $slot->call($params); } return $return; }
TeamSpeak3_Helper_Signal::subscribe | ( | $ | signal, |
$ | callback | ||
) |
Subscribes to a signal and returns the signal handler.
string | $signal | |
mixed | $callback |
Definition at line 83 of file Signal.php.
{ if(empty($this->sigslots[$signal])) { $this->sigslots[$signal] = array(); } $index = md5(serialize($callback)); if(!array_key_exists($index, $this->sigslots[$signal])) { $this->sigslots[$signal][$index] = new TeamSpeak3_Helper_Signal_Handler($signal, $callback); } return $this->sigslots[$signal][$index]; }
TeamSpeak3_Helper_Signal::unsubscribe | ( | $ | signal, |
$ | callback = null |
||
) |
Unsubscribes from a signal.
string | $signal | |
mixed | $callback |
Definition at line 107 of file Signal.php.
References hasHandlers().
{ if(!$this->hasHandlers($signal)) { return; } if($callback !== null) { $index = md5(serialize($callback)); if(!array_key_exists($index, $this->sigslots[$signal])) { return; } unset($this->sigslots[$signal][$index]); } else { unset($this->sigslots[$signal]); } }
Returns all registered signals.
Definition at line 136 of file Signal.php.
{
return array_keys($this->sigslots);
}
TeamSpeak3_Helper_Signal::hasHandlers | ( | $ | signal | ) |
Returns TRUE there are slots subscribed for a specified signal.
string | $signal |
Definition at line 147 of file Signal.php.
Referenced by clearHandlers(), emit(), getHandlers(), and unsubscribe().
{
return empty($this->sigslots[$signal]) ? FALSE : TRUE;
}
TeamSpeak3_Helper_Signal::getHandlers | ( | $ | signal | ) |
Returns all slots for a specified signal.
string | $signal |
Definition at line 158 of file Signal.php.
References hasHandlers().
{ if(!$this->hasHandlers($signal)) { return $this->sigslots[$signal]; } return array(); }
TeamSpeak3_Helper_Signal::clearHandlers | ( | $ | signal | ) |
Clears all slots for a specified signal.
string | $signal |
Definition at line 174 of file Signal.php.
References hasHandlers().
{ if(!$this->hasHandlers($signal)) { unset($this->sigslots[$signal]); } }
static TeamSpeak3_Helper_Signal::getInstance | ( | ) | [static] |
Returns a singleton instance of TeamSpeak3_Helper_Signal.
Definition at line 187 of file Signal.php.
Referenced by TeamSpeak3_Exception\__construct(), TeamSpeak3_Adapter_ServerQuery_Event\__construct(), TeamSpeak3_Transport_UDP\disconnect(), TeamSpeak3_Transport_TCP\disconnect(), TeamSpeak3_Adapter_FileTransfer\download(), TeamSpeak3_Adapter_ServerQuery_Reply\fetchError(), TeamSpeak3_Adapter_FileTransfer\init(), TeamSpeak3_Node_Host\login(), TeamSpeak3_Node_Host\logout(), TeamSpeak3_Node_Server\permReset(), TeamSpeak3_Node_Server\privilegeKeyCreate(), TeamSpeak3_Transport_UDP\read(), TeamSpeak3_Transport_TCP\read(), TeamSpeak3_Transport_TCP\readLine(), TeamSpeak3_Adapter_ServerQuery\request(), TeamSpeak3_Adapter_TSDNS\resolve(), TeamSpeak3_Transport_UDP\send(), TeamSpeak3_Transport_TCP\send(), TeamSpeak3_Node_Host\serverCreate(), TeamSpeak3_Node_Host\serverDelete(), TeamSpeak3_Node_Host\serverSelect(), TeamSpeak3_Node_Host\serverSelectByPort(), TeamSpeak3_Node_Host\serverStart(), TeamSpeak3_Node_Host\serverStop(), TeamSpeak3_Node_Host\serverStopProcess(), TeamSpeak3_Node_Server\snapshotDeploy(), TeamSpeak3_Adapter_FileTransfer\syn(), TeamSpeak3_Adapter_TSDNS\syn(), TeamSpeak3_Adapter_Blacklist\syn(), TeamSpeak3_Adapter_ServerQuery\syn(), TeamSpeak3_Adapter_Update\syn(), TeamSpeak3_Node_Server\transferInitDownload(), TeamSpeak3_Node_Server\transferInitUpload(), TeamSpeak3_Adapter_FileTransfer\upload(), and TeamSpeak3_Transport_Abstract\waitForReadyRead().
{ if(self::$instance === null) { self::$instance = new self(); } return self::$instance; }