00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <boost/shared_ptr.hpp>
00022 #include "amqp_types.h"
00023 #include "Buffer.h"
00024
00025 #ifndef _AMQBody_
00026 #define _AMQBody_
00027
00028 namespace qpid {
00029 namespace framing {
00030
00031 class AMQBody
00032 {
00033 public:
00034 typedef boost::shared_ptr<AMQBody> shared_ptr;
00035
00036 virtual ~AMQBody();
00037 virtual uint32_t size() const = 0;
00038 virtual uint8_t type() const = 0;
00039 virtual void encode(Buffer& buffer) const = 0;
00040 virtual void decode(Buffer& buffer, uint32_t size) = 0;
00041
00042 virtual void print(std::ostream& out) const = 0;
00043 };
00044
00045 std::ostream& operator<<(std::ostream& out, const AMQBody& body) ;
00046
00047 enum BodyTypes {
00048 METHOD_BODY = 1,
00049 HEADER_BODY = 2,
00050 CONTENT_BODY = 3,
00051 HEARTBEAT_BODY = 8,
00052 REQUEST_BODY = 9,
00053 RESPONSE_BODY = 10
00054 };
00055 }
00056 }
00057
00058
00059 #endif