* @copyright 2014 Fabian Grutschus. All rights reserved. * @license BSD * @link http://github.com/fabiang/xmpp */ namespace Fabiang\Xmpp\Connection; use Fabiang\Xmpp\Stream\XMLStream; use Fabiang\Xmpp\Event\EventManagerAwareInterface; use Fabiang\Xmpp\EventListener\EventListenerInterface; use Fabiang\Xmpp\OptionsAwareInterface; /** * Connections must implement this interface. * * @package Xmpp\Connection */ interface ConnectionInterface extends EventManagerAwareInterface, OptionsAwareInterface { /** * Connect. * * @return void */ public function connect(); /** * Disconnect. * * @return void */ public function disconnect(); /** * Set stream is ready. * * @param boolean $flag Flag * @return $this */ public function setReady($flag); /** * Is stream ready. * * @return boolean */ public function isReady(); /** * Is connection established. * * @return boolean */ public function isConnected(); /** * Receive data. * * @return string */ public function receive(); /** * Send data. * * @param string $buffer Data to send. * @return void */ public function send($buffer); /** * Get output stream. * * @return XMLStream */ public function getOutputStream(); /** * Get input stream. * * @return XMLStream */ public function getInputStream(); /** * Set output stream. * * @param XMLStream $outputStream Output stream * @return $this */ public function setOutputStream(XMLStream $outputStream); /** * Set input stream. * * @param XMLStream $inputStream Input stream * @return $this */ public function setInputStream(XMLStream $inputStream); /** * Reset streams. * * @return void */ public function resetStreams(); /** * Add listener. * * @param EventListenerInterface $eventListener * @return $this */ public function addListener(EventListenerInterface $eventListener); }