// $Id$
//
// Copyright (C) 2007
-// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// Competence Center NETwork research (NET), St. Augustin, GERMANY
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Thorsten Horstmann <tho@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
#define prefix_
///////////////////////////////cc.p////////////////////////////////////////
-prefix_ senf::TLVPacketLengthParser::value_type senf::TLVPacketLengthParser::value() const
+prefix_ senf::DynamicTLVLengthParser::value_type senf::DynamicTLVLengthParser::value() const
{
switch (bytes() ) {
case 1:
};
}
-prefix_ void senf::TLVPacketLengthParser::value(value_type const & v)
+prefix_ void senf::DynamicTLVLengthParser::value(value_type const & v)
{
if (v > 4294967295u)
throw(UnsuportedTLVPacketException());
- SafePacketParserWrapper<TLVPacketLengthParser> safeThis (*this);
+ SafePacketParserWrapper<DynamicTLVLengthParser> safeThis (*this);
if (v < 128u) {
if (bytes() != 1) {
resize(1);
}
if (v < 256u) {
if (bytes() != 2) {
- resize(2);
+ resize(2);
safeThis->extended_length_flag() = true;
- safeThis->fixed_length_field() = 1;
- }
+ safeThis->fixed_length_field() = 1;
+ }
safeThis->parse<UInt8Parser>(1) = v;
return;
}
if (v < 65536u) {
if (bytes() != 3) {
- resize(3);
- safeThis->extended_length_flag() = true;
- safeThis->fixed_length_field() = 2;
- }
+ resize(3);
+ safeThis->extended_length_flag() = true;
+ safeThis->fixed_length_field() = 2;
+ }
safeThis->parse<UInt16Parser>(1) = v;
return;
}
if (v < 16777216u) {
if (bytes() != 4) {
- resize(4);
- safeThis->extended_length_flag() = true;
- safeThis->fixed_length_field() = 3;
- }
+ resize(4);
+ safeThis->extended_length_flag() = true;
+ safeThis->fixed_length_field() = 3;
+ }
safeThis->parse<UInt24Parser>(1) = v;
return;
}
if (v <= 4294967295u) {
if (bytes() != 5) {
- resize(5);
- safeThis->extended_length_flag() = true;
- safeThis->fixed_length_field() = 4;
- }
+ resize(5);
+ safeThis->extended_length_flag() = true;
+ safeThis->fixed_length_field() = 4;
+ }
safeThis->parse<UInt32Parser>(1) = v;
return;
}
}
-prefix_ senf::TLVPacketLengthParser const & senf::TLVPacketLengthParser::operator= (value_type other)
+prefix_ senf::DynamicTLVLengthParser const & senf::DynamicTLVLengthParser::operator= (value_type other)
{
value(other);
return *this;
}
-prefix_ senf::TLVPacketLengthParser::size_type senf::TLVPacketLengthParser::bytes() const
+prefix_ senf::DynamicTLVLengthParser::size_type senf::DynamicTLVLengthParser::bytes() const
{
if ( extended_length_flag() )
return 1 + fixed_length_field();
return 1;
}
-prefix_ void senf::TLVPacketLengthParser::init() const
+prefix_ void senf::DynamicTLVLengthParser::init() const
{
defaultInit();
extended_length_flag() = 0;
}
-prefix_ void senf::TLVPacketLengthParser::resize(size_type size)
+prefix_ void senf::DynamicTLVLengthParser::resize(size_type size)
{
size_type current_size (bytes());
safe_data_iterator si (data(), i());