00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "amqp_types.h"
00022 #include "Buffer.h"
00023 #include "AMQDataBlock.h"
00024 #include "ProtocolVersion.h"
00025
00026 #ifndef _ProtocolInitiation_
00027 #define _ProtocolInitiation_
00028
00029 namespace qpid {
00030 namespace framing {
00031
00032 class ProtocolInitiation : public AMQDataBlock
00033 {
00034 private:
00035 ProtocolVersion version;
00036
00037 public:
00038 ProtocolInitiation();
00039 ProtocolInitiation(uint8_t major, uint8_t minor);
00040 ProtocolInitiation(ProtocolVersion p);
00041 virtual ~ProtocolInitiation();
00042 virtual void encode(Buffer& buffer) const;
00043 virtual bool decode(Buffer& buffer);
00044 inline virtual uint32_t size() const { return 8; }
00045 inline uint8_t getMajor() const { return version.getMajor(); }
00046 inline uint8_t getMinor() const { return version.getMinor(); }
00047 inline ProtocolVersion getVersion() const { return version; }
00048 bool operator==(ProtocolVersion v) const { return v == getVersion(); }
00049 };
00050
00051 std::ostream& operator<<(std::ostream& o, const framing::ProtocolInitiation& pi);
00052
00053
00054 }
00055 }
00056
00057
00058 #endif