added unregister methods

This commit is contained in:
Steffen Schröder
2013-12-14 23:27:15 +01:00
parent 30717ce343
commit bebda8f69a
3 changed files with 99 additions and 20 deletions

View File

@ -112,11 +112,49 @@ class CallbackManager {
return true;
}
/**
* Remove a Callback Listener
*
* @param CallbackListener $listener
* @return bool
*/
public function unregisterCallbackListener(CallbackListener $listener) {
$removed = false;
foreach ($this->callbackListeners as &$listeners) {
foreach ($listeners as $key => &$listenerCallback) {
if ($listenerCallback[0] == $listener) {
unset($listeners[$key]);
$removed = true;
}
}
}
return $removed;
}
/**
* Remove a Script Callback Listener
*
* @param CallbackListener $listener
* @return bool
*/
public function unregisterScriptCallbackListener(CallbackListener $listener) {
$removed = false;
foreach ($this->scriptCallbackListener as &$listeners) {
foreach ($listeners as $key => &$listenerCallback) {
if ($listenerCallback[0] == $listener) {
unset($listeners[$key]);
$removed = true;
}
}
}
return $removed;
}
/**
* Trigger a specific callback
*
* @param string $callbackName
* @param array $callback
* @param array $callback
*/
public function triggerCallback($callbackName, array $callback) {
if (!array_key_exists($callbackName, $this->callbackListeners)) {
@ -249,5 +287,3 @@ class CallbackManager {
$this->triggerCallback(self::CB_MC_1_MINUTE, array(self::CB_MC_1_MINUTE));
}
}
?>