00001 #ifndef QPID_FRAMING_REPLYTO_H
00002 #define QPID_FRAMING_REPLYTO_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028
00029
00030
00031 #include <ostream>
00032 #include "qpid/framing/amqp_types_full.h"
00033
00034 namespace qpid {
00035 namespace framing {
00036
00037 class ReplyTo {
00038 string exchange;
00039 string routingKey;
00040 uint16_t flags;
00041 public:
00042 ReplyTo(
00043 const string& _exchange,
00044 const string& _routingKey) :
00045 exchange(_exchange),
00046 routingKey(_routingKey),
00047 flags(0){
00048 flags |= (1 << 8);
00049 flags |= (1 << 9);
00050 }
00051 ReplyTo() : flags(0) {}
00052
00053 void setExchange(const string& _exchange);
00054 const string& getExchange() const;
00055 bool hasExchange() const;
00056 void clearExchangeFlag();
00057 void setRoutingKey(const string& _routingKey);
00058 const string& getRoutingKey() const;
00059 bool hasRoutingKey() const;
00060 void clearRoutingKeyFlag();
00061 friend std::ostream& operator<<(std::ostream&, const ReplyTo&);
00062 void encode(Buffer&) const;
00063 void decode(Buffer&, uint32_t=0);
00064 void encodeStructBody(Buffer&) const;
00065 void decodeStructBody(Buffer&, uint32_t=0);
00066 uint32_t size() const;
00067 uint32_t bodySize() const;
00068 void print(std::ostream& out) const;
00069 };
00070
00071 }}
00072 #endif