00001 #ifndef QPID_AMQP_0_10_BODY_H
00002 #define QPID_AMQP_0_10_BODY_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <string>
00025 #include <ostream>
00026
00027 namespace qpid {
00028 namespace amqp_0_10 {
00029
00031 class Body {
00032 public:
00033 Body() {}
00034 Body(size_t size_) : str(size_, '\0') {}
00035 Body(const char* data_, size_t size_) : str(data_, size_) {}
00036
00037 size_t size() const { return str.size(); };
00038 const char* data() const { return str.data(); }
00039 char* data() { return const_cast<char*>(str.data()); }
00040
00041 template <class S> void serialize(S& s) { s.raw(data(), size()); }
00042
00043 private:
00044 std::string str;
00045
00046 friend std::ostream& operator<<(std::ostream&, const Body&);
00047 };
00048
00049 inline std::ostream& operator<<(std::ostream& o, const Body& b) {
00050 return o << b.str.substr(0, 16) << "... (" << b.size() << ")";
00051 }
00052
00053 }}
00054
00055 #endif