TeamSpeak 3 PHP Framework  1.1.16
Copyright © Planet TeamSpeak. All rights reserved.
 All Classes Namespaces Files Functions Variables Pages
TeamSpeak3_Helper_Signal Class Reference

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
 

Detailed Description

Helper class for signal slots.

Definition at line 32 of file Signal.php.

Member Function Documentation

TeamSpeak3_Helper_Signal::emit (   $signal,
  $params = null 
)

Emits a signal with a given set of parameters.

Parameters
string$signal
mixed$params
Returns
mixed

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.

Parameters
string$signal
mixed$callback
Returns
TeamSpeak3_Helper_Signal_Handler

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.

Parameters
string$signal
mixed$callback
Returns
void

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]);
}
}
TeamSpeak3_Helper_Signal::getSignals ( )

Returns all registered signals.

Returns
array

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.

Parameters
string$signal
Returns
boolean

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.

Parameters
string$signal
Returns
array

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.

Parameters
string$signal
Returns
void

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.

Returns
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;
}

The documentation for this class was generated from the following file: