INET Framework for OMNeT++/OMNEST
inet::serializer::IPv4OptionSerializerRegistrationList Class Reference

#include <IPv4Serializer.h>

Inheritance diagram for inet::serializer::IPv4OptionSerializerRegistrationList:

Public Member Functions

 IPv4OptionSerializerRegistrationList (const char *name)
 
virtual ~IPv4OptionSerializerRegistrationList ()
 
virtual void clear ()
 
virtual void add (int id, IPv4OptionSerializerBase *obj)
 Adds an object to the container. More...
 
virtual IPv4OptionSerializerBaselookup (int id) const
 Returns the object with exactly the given ID. More...
 

Protected Types

typedef int Key
 
typedef std::map< Key, IPv4OptionSerializerBase * > KeyToSerializerMap
 

Protected Attributes

KeyToSerializerMap keyToSerializerMap
 

Static Protected Attributes

static IPv4OptionDefaultSerializer defaultSerializer
 

Member Typedef Documentation

Constructor & Destructor Documentation

inet::serializer::IPv4OptionSerializerRegistrationList::IPv4OptionSerializerRegistrationList ( const char *  name)
inline
53 : cNamedObject(name, false) {}
inet::serializer::IPv4OptionSerializerRegistrationList::~IPv4OptionSerializerRegistrationList ( )
virtual
407 {
408  if (!keyToSerializerMap.empty())
409  throw cRuntimeError("SerializerRegistrationList not empty, should call the SerializerRegistrationList::clear() function");
410 }
KeyToSerializerMap keyToSerializerMap
Definition: IPv4Serializer.h:49

Member Function Documentation

void inet::serializer::IPv4OptionSerializerRegistrationList::add ( int  id,
IPv4OptionSerializerBase obj 
)
virtual

Adds an object to the container.

421 {
422  Key key(id);
423 
424  take(obj);
425  keyToSerializerMap.insert(std::pair<Key,IPv4OptionSerializerBase*>(key, obj));
426 }
KeyToSerializerMap keyToSerializerMap
Definition: IPv4Serializer.h:49
void inet::serializer::IPv4OptionSerializerRegistrationList::clear ( )
virtual
413 {
414  for (auto elem : keyToSerializerMap) {
415  dropAndDelete(elem.second);
416  }
417  keyToSerializerMap.clear();
418 }
KeyToSerializerMap keyToSerializerMap
Definition: IPv4Serializer.h:49
IPv4OptionSerializerBase * inet::serializer::IPv4OptionSerializerRegistrationList::lookup ( int  id) const
virtual

Returns the object with exactly the given ID.

Returns the defaultSerializer if not found.

Referenced by inet::serializer::IPv4Serializer::deserializeOptions(), and inet::serializer::IPv4Serializer::serializeOptions().

429 {
430  auto it = keyToSerializerMap.find(Key(id));
431  return it==keyToSerializerMap.end() ? &defaultSerializer : it->second;
432 }
KeyToSerializerMap keyToSerializerMap
Definition: IPv4Serializer.h:49
static IPv4OptionDefaultSerializer defaultSerializer
Definition: IPv4Serializer.h:50

Member Data Documentation

IPv4OptionDefaultSerializer inet::serializer::IPv4OptionSerializerRegistrationList::defaultSerializer
staticprotected
KeyToSerializerMap inet::serializer::IPv4OptionSerializerRegistrationList::keyToSerializerMap
protected

The documentation for this class was generated from the following files: