00001 #ifndef QPID_AMQP_0_10_HEADER_H
00002 #define QPID_AMQP_0_10_HEADER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "qpid/amqp_0_10/built_in_types.h"
00025 #include "qpid/amqp_0_10/Struct32.h"
00026 #include <vector>
00027 #include <ostream>
00028
00029 namespace qpid {
00030 namespace amqp_0_10 {
00031
00032 class Header : public std::vector<Struct32> {
00033 public:
00034 Header() {}
00035
00036 template <class S> void serialize(S& s) { s.split(*this); }
00037 template <class S> void encode(S& s) const { s(this->begin(), this->end()); }
00038 template <class S> void decode(S& s);
00039 };
00040
00041 template <class S> void Header::decode(S& s) {
00042 this->clear();
00043 while (s.bytesRemaining() > 0) {
00044 this->push_back(Struct32());
00045 s(this->back());
00046 }
00047 }
00048
00049 std::ostream& operator<<(std::ostream& o, const Header&);
00050
00051 }}
00052
00053 #endif