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 u_int32_t size() const = 0;
00038 virtual u_int8_t type() const = 0;
00039 virtual void encode(Buffer& buffer) const = 0;
00040 virtual void decode(Buffer& buffer, u_int32_t size) = 0;
00041 virtual void print(std::ostream& out) const;
00042 };
00043
00044 std::ostream& operator<<(std::ostream& out, const AMQBody& body) ;
00045
00046 enum body_types {METHOD_BODY = 1, HEADER_BODY = 2, CONTENT_BODY = 3, HEARTBEAT_BODY = 8};
00047 }
00048 }
00049
00050
00051 #endif