INET Framework for OMNeT++/OMNEST
inet::ChunkSerializerRegistry Class Reference

#include <ChunkSerializerRegistry.h>

Public Member Functions

 ~ChunkSerializerRegistry ()
 
void registerSerializer (const std::type_info &typeInfo, const ChunkSerializer *serializer)
 
const ChunkSerializergetSerializer (const std::type_info &typeInfo) const
 

Static Public Attributes

static ChunkSerializerRegistry globalRegistry
 

Protected Attributes

std::map< const std::type_info *, const ChunkSerializer * > serializers
 

Constructor & Destructor Documentation

◆ ~ChunkSerializerRegistry()

inet::ChunkSerializerRegistry::~ChunkSerializerRegistry ( )
15 {
16  for (auto it : serializers)
17  delete it.second;
18 }

Member Function Documentation

◆ getSerializer()

const ChunkSerializer * inet::ChunkSerializerRegistry::getSerializer ( const std::type_info &  typeInfo) const
27 {
28  auto it = serializers.find(&typeInfo);
29  if (it != serializers.end())
30  return it->second;
31  else
32  throw cRuntimeError("Cannot find serializer for %s", opp_typename(typeInfo));
33 }

Referenced by inet::Chunk::deserialize(), and inet::Chunk::serialize().

◆ registerSerializer()

void inet::ChunkSerializerRegistry::registerSerializer ( const std::type_info &  typeInfo,
const ChunkSerializer serializer 
)
21 {
22  CHUNK_CHECK_USAGE(serializer != nullptr, "invalid serializer");
23  serializers[&typeInfo] = serializer;
24 }

Member Data Documentation

◆ globalRegistry

ChunkSerializerRegistry inet::ChunkSerializerRegistry::globalRegistry
static

◆ serializers

std::map<const std::type_info *, const ChunkSerializer *> inet::ChunkSerializerRegistry::serializers
protected

The documentation for this class was generated from the following files:
inet::ChunkSerializerRegistry::serializers
std::map< const std::type_info *, const ChunkSerializer * > serializers
Definition: ChunkSerializerRegistry.h:23
CHUNK_CHECK_USAGE
#define CHUNK_CHECK_USAGE(condition, format,...)
Definition: Chunk.h:42