docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::serializer::LibraryNodeSerializerRegistry Class Reference

Registry for library node serializers. More...

#include <sdfg/serializer/json_serializer.h>

Public Member Functions

void register_library_node_serializer (std::string library_node_code, LibraryNodeSerializerFn fn)
LibraryNodeSerializerFn get_library_node_serializer (std::string library_node_code)
size_t size () const

Static Public Member Functions

static LibraryNodeSerializerRegistry & instance ()

Detailed Description

Registry for library node serializers.

This registry maps library node codes (operation identifiers) to serializer factory functions. Each library node type registers its serializer at program startup, allowing the JSON serializer to correctly handle all node types.

The registry is thread-safe and follows the singleton pattern.

Usage

Register a serializer:

"Add",
[]() { return std::make_unique<ElementWiseBinaryNodeSerializer<AddNode>>(); }
);
void register_library_node_serializer(std::string library_node_code, LibraryNodeSerializerFn fn)
static LibraryNodeSerializerRegistry & instance()
Definition json_serializer.h:258

Lookup a serializer:

if (factory) {
auto serializer = factory();
json j = serializer->serialize(node);
}
LibraryNodeSerializerFn get_library_node_serializer(std::string library_node_code)
nlohmann::json json
Definition interstate_edge.h:14
Definition cutout_serializer.h:13

Member Function Documentation

◆ get_library_node_serializer()

LibraryNodeSerializerFn sdfg::serializer::LibraryNodeSerializerRegistry::get_library_node_serializer ( std::string library_node_code)

◆ instance()

LibraryNodeSerializerRegistry & sdfg::serializer::LibraryNodeSerializerRegistry::instance ( )
inlinestatic

◆ register_library_node_serializer()

void sdfg::serializer::LibraryNodeSerializerRegistry::register_library_node_serializer ( std::string library_node_code,
LibraryNodeSerializerFn fn )

◆ size()

size_t sdfg::serializer::LibraryNodeSerializerRegistry::size ( ) const

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