// Custom includes
#define prefix_ inline
-///////////////////////////////cci.p///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::RadiotapPacketParser
prefix_ senf::RadiotapPacketParser::RadiotapPacketParser(data_iterator i, state_type s)
: RadiotapPacketParser_Header(i,s)
-{}
+{
+ OffsetTable & table (offsetTable(presentFlags()));
+ if (! table[MAX_INDEX+1])
+ parseOffsetTable(&(*data().begin()), data().size(), table);
+ currentTable_ = &table;
+}
prefix_ senf::RadiotapPacketParser::size_type senf::RadiotapPacketParser::bytes()
const
{
return parse<RadiotapPacketParser_FrameType>(length()).frameType();
}
-////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// private members
prefix_ void senf::RadiotapPacketParser::initField(unsigned index)
return currentTable()[MAX_INDEX+1];
}
-///////////////////////////////cci.e///////////////////////////////////////
+prefix_ senf::RadiotapPacketParser::OffsetTable const &
+senf::RadiotapPacketParser::currentTable()
+ const
+{
+ return *currentTable_;
+}
+
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
#undef prefix_
\f