text: /**
   *  Class describing an AMQP queue unbind ok frame
   *
   *  @copyright 2014 Copernica BV
   */
  
  /**
   *  Class definition
   */
  namespace AMQP {
  
  /**
   *  Class implementation
   */
  class QueueUnbindOKFrame : public QueueFrame
  {
  protected:
      /**
       *  Encode a queueunbindokframe on a stringbuffer
       *
       *  @param  buffer  buffer to write frame to
       */
      virtual void fill(OutBuffer& buffer) const override
      {
          // call base
          QueueFrame::fill(buffer);
      }
  public:
      /**
       * Decode a queueunbindokframe from a received frame
       *
       * @param   frame   received frame to decode
       * @return  shared pointer to created frame
       */
      QueueUnbindOKFrame(ReceivedFrame& frame) :
          QueueFrame(frame)
      {}
  
      /**
       * construct a queueunbindokframe
       *
       * @param   channel     channel identifier
       */
      QueueUnbindOKFrame(uint16_t channel) :
          QueueFrame(channel, 0)
      {}
  
      /**
       *  Destructor
       */
      virtual ~QueueUnbindOKFrame() {}
  
      /**
       * returns the method id
       * @return  uint16_t
       */
      virtual uint16_t methodID() const override
      {
          return 51;
      }
  
      /**
       *  Process the frame
       *  @param  connection      The connection over which it was received
       *  @return bool            Was it succesfully processed?
       */
      virtual bool process(ConnectionImpl *connection) override
      {
          // check if we have a channel
          ChannelImpl *channel = connection->channel(this->channel());
  
          // channel does not exist
          if(!channel) return false;
  
          // report queue unbind success
          if (channel->reportSuccess()) channel->synchronized();
  
          // done
          return true;
      }
  };
  
  /**
   *  end namespace
   */
  }
  
  