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
00027 namespace proton {
00028 namespace codec {
00029
00031 struct start {
00034 start(type_id type_=NULL_TYPE, type_id element_=NULL_TYPE,
00035 bool described_=false, size_t size_=0) :
00036 type(type_), element(element_), is_described(described_), size(size_) {}
00037
00038 type_id type;
00039 type_id element;
00040 bool is_described;
00041 size_t size;
00042
00043
00046 static start array(type_id element, bool described=false) { return start(ARRAY, element, described); }
00047 static start list() { return start(LIST); }
00048 static start map() { return start(MAP); }
00049 static start described() { return start(DESCRIBED, NULL_TYPE, true); }
00051 };
00052
00054 struct finish {};
00055
00056 }
00057 }
00058
00059 #endif // PROTON_CODEC_COMMON_HPP