17 #ifndef HH_SENF_Packets_ListParser_ 18 #define HH_SENF_Packets_ListParser_ 1 21 #include <boost/utility/enable_if.hpp> 31 template <
class ListPolicy>
64 template <
class ListPolicy>
89 container_type container()
const;
94 value_type front()
const;
95 value_type back()
const;
97 template <
class InputIterator>
98 void assign(InputIterator first, InputIterator last);
99 template <
class Range>
100 void assign(Range
const & range);
103 value_type push_back_space (
size_type n=1)
const;
104 template <
class Value>
void push_front (Value
const & value,
size_type n=1)
const;
105 value_type push_front_space (
size_type n=1)
const;
107 template <
class Value>
void resize (
size_type n, Value value)
const;
110 static ListParser const &
get(ListPolicy
const & p);
134 template <
class ListPolicy>
170 size_type size()
const;
173 iterator begin()
const;
174 iterator end()
const;
176 value_type front()
const;
177 value_type back()
const;
184 value_type shift(iterator pos, size_type n=1);
185 template <
class Value>
186 void insert(iterator pos, Value
const & t);
187 template <
class Value>
188 void insert(iterator pos, size_type n, Value
const & t);
189 template <
class ForwardIterator>
191 void insert(iterator pos, ForwardIterator f, ForwardIterator l,
192 typename boost::disable_if< boost::is_convertible<ForwardIterator,size_type> >::type * = 0);
194 void insert(iterator pos, ForwardIterator f, ForwardIterator l);
197 void erase(iterator pos, size_type n=1);
198 void erase(iterator f, iterator l);
201 template <
class Value>
void push_back (Value
const & value, size_type n=1);
202 value_type push_back_space (size_type n=1);
203 template <
class Value>
void push_front (Value
const & value, size_type n=1);
204 value_type push_front_space (size_type n=1);
205 void resize (size_type n);
206 template <
class Value>
void resize (size_type n, Value value);
213 parser_type
parser()
const;
214 data_iterator i()
const;
215 state_type state()
const;
218 size_type
bytes()
const;
306 # define SENF_PARSER_LIST(name, size, elt_type) \ 307 SENF_PARSER_LIST_I(public, name, size, elt_type) 316 # define SENF_PARSER_PRIVATE_LIST(name, size, elt_type) \ 317 SENF_PARSER_LIST_I(protected, name, size, elt_type) 320 template <
class ListPolicy,
class OutputIterator>
321 void copy(ListParser_Container<ListPolicy> container, OutputIterator result);
327 #if !defined(HH_SENF_Packets_Packets__decls_) && !defined(HH_SENF_Packets_ListParser_i_) 328 #define HH_SENF_Packets_ListParser_i_ ListPolicy::element_type value_type
PacketParser public header.
ListPolicy::container_type container_type
PacketParserBase::state_type state_type
void copy(ListParser< ListPolicy > const &listParser, OutputIterator result)
detail::ListParser_Iterator< ListParser_Container > iterator
unspecified_keyword_type parser
u8 data[SPECTRAL_HT20_NUM_BINS]
Return number of bytes to allocate to new object of given type.
PacketParserBase::size_type bytes(Parser const &p)
Return raw size parsed by the given parser object.
PacketParserBase::size_type size_type
PacketParserBase::data_iterator data_iterator
Packet data STL-sequence view.
detail::packet::difference_type difference_type
Signed integral type.
ListPolicy::element_type value_type
::phoenix::function< detail::push_back > const push_back
PacketParserBase::difference_type difference_type
detail::packet::size_type size_type
Unsigned integral type.
ListPolicy::parser_type parser_type
Arbitrary sequential element collection.
::phoenix::function< detail::clear > const clear
ListParser container wrapper.
detail::packet::iterator data_iterator
Raw data iterator type.