00001 #ifndef QPID_AMQP_0_10_UNKNOWNSTRUCT_H
00002 #define QPID_AMQP_0_10_UNKNOWNSTRUCT_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/Struct.h"
00025 #include <string>
00026
00027 namespace qpid {
00028 namespace amqp_0_10 {
00029
00030 class UnknownStruct : public Struct {
00031 public:
00032 static const uint8_t SIZE=4;
00033 static const uint8_t PACK=2;
00034
00035 template <class S> void serialize(S& s) { s.split(*this); s(data.begin(), data.end()); }
00036 template <class S> void encode(S&) const { }
00037 template <class S> void decode(S& s) { data.resize(s.bytesRemaining()); }
00038
00039 UnknownStruct(uint8_t cc=0, uint8_t c=0) : classCode(cc), code(c) {}
00040 void accept(Visitor&);
00041 void accept(ConstVisitor&) const;
00042
00043 uint8_t getClassCode() const { return classCode; }
00044 uint8_t getCode() const { return code; }
00045
00046 private:
00047 uint8_t classCode, code;
00048 std::string data;
00049 };
00050
00051 std::ostream& operator<<(std::ostream&, const UnknownStruct&);
00052
00053 }}
00054
00055 #endif