Packets/GenericTLV: added bytes(key) member to registry
[senf.git] / senf / Packets / GenericTLV.ct
index fb59a10..6605618 100644 (file)
@@ -104,7 +104,7 @@ prefix_ void senf::GenericTLVParserRegistry<BaseParser,Keytype>::registerParser(
 
 template <class BaseParser, class Keytype>
 prefix_ void senf::GenericTLVParserRegistry<BaseParser,Keytype>::dump(
-        GenericTLVParserBase<BaseParser> const & parser, std::ostream & os)
+        GenericTLVParser const & parser, std::ostream & os)
     const
 {
     typename Map::const_iterator i (map_.find( parser.type()));
@@ -114,7 +114,7 @@ prefix_ void senf::GenericTLVParserRegistry<BaseParser,Keytype>::dump(
 
 template <class BaseParser, class Keytype>
 prefix_ void senf::GenericTLVParserRegistry<BaseParser,Keytype>::dump(
-        GenericTLVParserBase<BaseParser> const & parser, Keytype const & key, std::ostream & os)
+        GenericTLVParser const & parser, Keytype const & key, std::ostream & os)
     const
 {
     typename Map::const_iterator i (map_.find( key));
@@ -122,6 +122,32 @@ prefix_ void senf::GenericTLVParserRegistry<BaseParser,Keytype>::dump(
         (i->second)->dump(parser, os);
 }
 
+template <class BaseParser, class Keytype>
+prefix_ senf::PacketParserBase::size_type senf::GenericTLVParserRegistry<BaseParser,Keytype>::bytes(
+        GenericTLVParser const & parser)
+    const
+{
+    typename Map::const_iterator i (map_.find( parser.type()));
+    if (i != map_.end())
+        return (i->second)->bytes(parser);
+    else
+        throw TLVParserNotRegisteredException();
+}
+
+template <class BaseParser, class Keytype>
+prefix_ senf::PacketParserBase::size_type senf::GenericTLVParserRegistry<BaseParser,Keytype>::bytes(
+        GenericTLVParser const & parser, Keytype const & key)
+    const
+{
+    typename Map::const_iterator i (map_.find( key));
+    if (i != map_.end())
+        return (i->second)->bytes(parser);
+    else
+        throw TLVParserNotRegisteredException();
+}
+
+        
+
 ///////////////////////////////ct.e////////////////////////////////////////
 #undef prefix_