diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Queue/Stomp/Client.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Queue/Stomp/Client.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,173 @@ +addConnection($scheme, $host, $port, $connectionClass); + $this->getConnection()->setFrameClass($frameClass); + } + } + + /** + * Shutdown + * + * @return void + */ + public function __destruct() + { + if ($this->getConnection()) { + $this->getConnection()->close(true); + } + } + + /** + * Add a connection to this client. + * + * Attempts to add this class to the client. Returns a boolean value + * indicating success of operation. + * + * You cannot add more than 1 connection to the client at this time. + * + * @param string $scheme ['tcp', 'udp'] + * @param string host + * @param integer port + * @param string class - create a connection with this class; class must support Zend_Queue_Stomp_Client_ConnectionInterface + * @return boolean + */ + public function addConnection($scheme, $host, $port, $class = 'Zend_Queue_Stomp_Client_Connection') + { + if (!class_exists($class)) { + require_once 'Zend/Loader.php'; + Zend_Loader::loadClass($class); + } + + $connection = new $class(); + + if ($connection->open($scheme, $host, $port)) { + $this->setConnection($connection); + return true; + } + + $connection->close(); + return false; + } + + /** + * Set client connection + * + * @param Zend_Queue_Stomp_Client_ConnectionInterface $connection + * @return void + */ + public function setConnection(Zend_Queue_Stomp_Client_ConnectionInterface $connection) + { + $this->_connection = $connection; + return $this; + } + + /** + * Get client connection + * + * @return Zend_Queue_Stomp_Client_ConnectionInterface|null + */ + public function getConnection() + { + return $this->_connection; + } + + /** + * Send a stomp frame + * + * Returns true if the frame was successfully sent. + * + * @param Zend_Queue_Stomp_FrameInterface $frame + * @return boolean + */ + public function send(Zend_Queue_Stomp_FrameInterface $frame) + { + $this->getConnection()->write($frame); + return $this; + } + + /** + * Receive a frame + * + * Returns a frame or false if none were to be read. + * + * @return Zend_Queue_Stomp_FrameInterface|boolean + */ + public function receive() + { + return $this->getConnection()->read(); + } + + /** + * canRead() + * + * @return boolean + */ + public function canRead() + { + return $this->getConnection()->canRead(); + } + + /** + * creates a frame class + * + * @return Zend_Queue_Stomp_FrameInterface + */ + public function createFrame() + { + return $this->getConnection()->createFrame(); + } +}