示例#1
0
 /**
  * Callback after content body has been completely received.
  */
 protected function onBodyComplete()
 {
     if ($this->returnFrame) {
         $content = $this->bodyBuffer->consume($this->bodyBuffer->getLength());
         $message = new Message(null, null, false, $this->returnFrame->exchange, $this->returnFrame->routingKey, $this->headerFrame->toArray(), $content);
         foreach ($this->returnCallbacks as $callback) {
             $callback($message, $this->returnFrame);
         }
         $this->returnFrame = null;
         $this->headerFrame = null;
     } elseif ($this->deliverFrame) {
         $content = $this->bodyBuffer->consume($this->bodyBuffer->getLength());
         if (isset($this->deliverCallbacks[$this->deliverFrame->consumerTag])) {
             $message = new Message($this->deliverFrame->consumerTag, $this->deliverFrame->deliveryTag, $this->deliverFrame->redelivered, $this->deliverFrame->exchange, $this->deliverFrame->routingKey, $this->headerFrame->toArray(), $content);
             $callback = $this->deliverCallbacks[$this->deliverFrame->consumerTag];
             $callback($message, $this, $this->client);
         }
         $this->deliverFrame = null;
         $this->headerFrame = null;
     } elseif ($this->getOkFrame) {
         $content = $this->bodyBuffer->consume($this->bodyBuffer->getLength());
         // deferred has to be first nullified and then resolved, otherwise results in race condition
         $deferred = $this->getDeferred;
         $this->getDeferred = null;
         $deferred->resolve(new Message(null, $this->getOkFrame->deliveryTag, $this->getOkFrame->redelivered, $this->getOkFrame->exchange, $this->getOkFrame->routingKey, $this->headerFrame->toArray(), $content));
         $this->getOkFrame = null;
         $this->headerFrame = null;
     } else {
         throw new \LogicException("Either return or deliver frame has to be handled here.");
     }
 }
示例#2
0
 /**
  * Callback after content body has been completely received.
  */
 protected function onBodyComplete()
 {
     if ($this->returnFrame) {
         // TODO
     } elseif ($this->deliverFrame) {
         $content = $this->bodyBuffer->consume($this->bodyBuffer->getLength());
         if (isset($this->deliverCallbacks[$this->deliverFrame->consumerTag])) {
             $msg = new Message($this->deliverFrame->consumerTag, $this->deliverFrame->deliveryTag, $this->deliverFrame->redelivered, $this->deliverFrame->exchange, $this->deliverFrame->routingKey, $this->headerFrame->toArray(), $content);
             $callback = $this->deliverCallbacks[$this->deliverFrame->consumerTag];
             $callback($msg, $this, $this->client);
         }
         $this->deliverFrame = null;
         $this->headerFrame = null;
     } else {
         throw new \LogicException("Either return or deliver frame has to be handled here.");
     }
 }