00001 #ifndef PROTON_CODEC_COMMON_HPP
00002 #define PROTON_CODEC_COMMON_HPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "../type_id.hpp"
00026
00029
00030 namespace proton {
00031 namespace codec {
00032
00034 struct start {
00037 start(type_id type_=NULL_TYPE, type_id element_=NULL_TYPE,
00038 bool described_=false, size_t size_=0) :
00039 type(type_), element(element_), is_described(described_), size(size_) {}
00040
00041 type_id type;
00042 type_id element;
00043 bool is_described;
00044 size_t size;
00045
00046
00049 static start array(type_id element, bool described=false) { return start(ARRAY, element, described); }
00050 static start list() { return start(LIST); }
00051 static start map() { return start(MAP); }
00052 static start described() { return start(DESCRIBED, NULL_TYPE, true); }
00054 };
00055
00057 struct finish {};
00058
00059 }
00060 }
00061
00062 #endif // PROTON_CODEC_COMMON_HPP