00001 #ifndef QPID_AMQP_0_10_COMMMANDPACKER_H
00002 #define QPID_AMQP_0_10_COMMMANDPACKER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "qpid/amqp_0_10/structs.h"
00026
00027 namespace qpid {
00028 namespace amqp_0_10 {
00029
00033 template <class T>
00034 class CommmandPacker : public Packer<T>
00035 {
00036 public:
00037 CommmandPacker(T& t) : Packer<T>(t) {}
00038 template <class S> void serialize(S& s) { s.split(*this); }
00039
00040 template <class S> void encode(S& s) const {
00041 s.sessionHeader(
00042 Packer<T>::encode(s);
00043 }
00044
00045 template <class S> void decode(S& s) {
00046 Bits bits;
00047 s.littleEnd(bits);
00048 PackedDecoder<S, Bits> decode(s, bits);
00049 data.serialize(decode);
00050 }
00051
00052
00053 protected:
00054 T& data;
00055
00056
00057 };
00058 }}
00059
00060 #endif