9 #ifndef _1c7b57cc_79f5_497c_815c_920e0711a864
10 #define _1c7b57cc_79f5_497c_815c_920e0711a864
49 Field(uint16_t value);
52 Field(uint32_t value);
55 Field(std::string
const & value);
58 Field(std::vector<Item>
const & value);
61 Type get_type()
const;
68 uint8_t as_unsigned_int_8()
const;
75 uint8_t & as_unsigned_int_8();
82 uint16_t as_unsigned_int_16()
const;
89 uint16_t & as_unsigned_int_16();
96 uint32_t as_unsigned_int_32()
const;
103 uint32_t & as_unsigned_int_32();
124 std::vector<Item>
const & as_items()
const;
131 std::vector<Item> & as_items();
139 std::vector<Item> _items;
142 typedef std::vector<std::pair<std::string, Field>>
Container;
148 Item(std::vector<std::pair<std::string, Field>>
const & fields);
151 Item & add(std::string
const & name,
Field const & field);
154 Container::size_type size()
const;
160 bool has_field(std::string
const & name)
const;
163 Field const & operator[](std::string
const & name)
const;
166 Field & operator[](std::string
const & name);
174 uint8_t as_unsigned_int_8(std::string
const & name)
const;
182 uint8_t & as_unsigned_int_8(std::string
const & name);
190 uint16_t as_unsigned_int_16(std::string
const & name)
const;
198 uint16_t & as_unsigned_int_16(std::string
const & name);
206 uint32_t as_unsigned_int_32(std::string
const & name)
const;
214 uint32_t & as_unsigned_int_32(std::string
const & name);
222 std::string
const &
as_string(std::string
const & name)
const;
230 std::string &
as_string(std::string
const & name);
232 std::vector<Item>
const & as_items(std::string
const & name)
const;
240 std::vector<Item> & as_items(std::string
const & name);
252 std::istream & stream,std::string
const & name,
Field::Type type,
253 std::streamsize size=0);
256 std::vector<std::pair<std::string, Field>> _fields;
269 #endif // _1c7b57cc_79f5_497c_815c_920e0711a864