TeamSpeak 3 PHP Framework  1.1.12
TeamSpeak3_Helper_Signal Class Reference

Helper class for signal slots. More...

List of all members.

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]);
    }
  }

Returns all registered signals.

Returns:
array

Definition at line 136 of file Signal.php.

  {
    return array_keys($this->sigslots);
  }

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

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();
  }

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]);
    }
  }

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:
 All Classes Files Functions Variables