* @copyright 2014 Fabian Grutschus. All rights reserved. * @license BSD * @link http://github.com/fabiang/xmpp */ namespace Fabiang\Xmpp\Event; use Fabiang\Xmpp\Event\EventInterface; /** * Event manager interface. * * @package Xmpp\Event */ interface EventManagerInterface { /** * Trigger an event. * * @param string $event Name of the event * @param object $caller Triggering object (caller) * @param array $parameters Event parameters * @return void */ public function trigger($event, $caller, array $parameters); /** * Attach event. * * @param string $event Name of the event * @param callback $callback Callback that handles the event * @return void */ public function attach($event, /*callback*/ $callback); /** * Return event object. * * @return EventInterface */ public function getEventObject(); /** * Set event object. * * @param EventInterface $eventObject * @return $this */ public function setEventObject(EventInterface $eventObject); }