X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketRegistry.ct;h=4d68a92621f24997d1fe600b4986367466f17845;hb=f73fa16ed5abdce272ac77f8b8b9ef2b9922c266;hp=ca5a144ba05da3a7ac60e1032f320219159342c4;hpb=47368f306a577d1e46df69a7f729bd3893cbe5e7;p=senf.git diff --git a/Packets/PacketRegistry.ct b/Packets/PacketRegistry.ct index ca5a144..4d68a92 100644 --- a/Packets/PacketRegistry.ct +++ b/Packets/PacketRegistry.ct @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Stefan Bund // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -20,7 +20,8 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// Definition of non-inline template funPacketRegistry.ons +/** \file + \brief PacketRegistry non-inline template implementation */ #include "PacketRegistry.ih" @@ -34,13 +35,17 @@ template prefix_ senf::PacketInterpreterBase::factory_t senf::detail::PkReg_EntryImpl::factory() const { - return PacketInterpreter::factory(); + return PacketType::factory(); } template template prefix_ void senf::detail::PacketRegistryImpl::registerPacket(key_t key) { +#ifdef NDEBUG + registry_.insert(std::make_pair(key, Entry_ptr(new detail::PkReg_EntryImpl()))); + reverseRegistry_.insert(std::make_pair(senf::typeIdValue(), key)); +#else bool isUnique ( registry_.insert( std::make_pair(key, Entry_ptr(new detail::PkReg_EntryImpl()))).second); @@ -51,6 +56,7 @@ prefix_ void senf::detail::PacketRegistryImpl::registerPacket(key_t key std::make_pair(senf::typeIdValue(), key)).second); // If this assertion fails, the same Packet was registered with two different keys BOOST_ASSERT( isNew ); +#endif } template