summaryrefslogtreecommitdiff
path: root/extlib/Stomp/Frame.php
diff options
context:
space:
mode:
authorFederico Marani <federico.marani@ymail.com>2009-02-20 18:57:20 +0000
committerFederico Marani <federico.marani@ymail.com>2009-02-20 18:57:20 +0000
commit2ac684f53df3f76aacb4d1be79d7db64567f1964 (patch)
treeffb21b530b41590ae6c69346ce535f7e518a277d /extlib/Stomp/Frame.php
parent09bab904091316fe669619ec90a26a86fc1927d5 (diff)
* implemented STOMP support for external message queueing systems
* (ticket-724) * included PHP STOMP libraries (http://code.google.com/p/stompcli/)
Diffstat (limited to 'extlib/Stomp/Frame.php')
-rw-r--r--extlib/Stomp/Frame.php80
1 files changed, 80 insertions, 0 deletions
diff --git a/extlib/Stomp/Frame.php b/extlib/Stomp/Frame.php
new file mode 100644
index 000000000..dc59c1cb7
--- /dev/null
+++ b/extlib/Stomp/Frame.php
@@ -0,0 +1,80 @@
+<?php
+/**
+ *
+ * Copyright 2005-2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* vim: set expandtab tabstop=3 shiftwidth=3: */
+
+/**
+ * Stomp Frames are messages that are sent and received on a StompConnection.
+ *
+ * @package Stomp
+ * @author Hiram Chirino <hiram@hiramchirino.com>
+ * @author Dejan Bosanac <dejan@nighttale.net>
+ * @author Michael Caplan <mcaplan@labnet.net>
+ * @version $Revision: 36 $
+ */
+class Stomp_Frame
+{
+ public $command;
+ public $headers = array();
+ public $body;
+
+ /**
+ * Constructor
+ *
+ * @param string $command
+ * @param array $headers
+ * @param string $body
+ */
+ public function __construct ($command = null, $headers = null, $body = null)
+ {
+ $this->_init($command, $headers, $body);
+ }
+
+ protected function _init ($command = null, $headers = null, $body = null)
+ {
+ $this->command = $command;
+ if ($headers != null) {
+ $this->headers = $headers;
+ }
+ $this->body = $body;
+
+ if ($this->command == 'ERROR') {
+ require_once 'Stomp/Exception.php';
+ throw new Stomp_Exception($this->headers['message'], 0, $this->body);
+ }
+ }
+
+ /**
+ * Convert frame to transportable string
+ *
+ * @return string
+ */
+ public function __toString()
+ {
+ $data = $this->command . "\n";
+
+ foreach ($this->headers as $name => $value) {
+ $data .= $name . ": " . $value . "\n";
+ }
+
+ $data .= "\n";
+ $data .= $this->body;
+ return $data .= "\x00\n";
+ }
+}
+?> \ No newline at end of file