6#ifndef KCENON_NETWORK_INTERNAL_INTEGRATION_CONTAINER_INTEGRATION_H_
7#define KCENON_NETWORK_INTERNAL_INTEGRATION_CONTAINER_INTEGRATION_H_
30#if KCENON_WITH_CONTAINER_SYSTEM
52 virtual std::vector<uint8_t>
serialize(
const std::any& data)
const = 0;
59 virtual std::any
deserialize(
const std::vector<uint8_t>& bytes)
const = 0;
74#if KCENON_WITH_CONTAINER_SYSTEM
88 explicit container_system_adapter(
89 std::shared_ptr<container_module::value_container> container
93 std::vector<uint8_t> serialize(
const std::any& data)
const override;
94 std::any deserialize(
const std::vector<uint8_t>& bytes)
const override;
95 std::string type_name()
const override;
96 bool is_valid()
const override;
102 std::shared_ptr<container_module::value_container> get_container()
const;
105 std::shared_ptr<container_module::value_container> container_;
122 std::vector<uint8_t>
serialize(
const std::any& data)
const override;
123 std::any
deserialize(
const std::vector<uint8_t>& bytes)
const override;
132 std::function<std::vector<uint8_t>(
const std::any&)> serializer
140 std::function<std::any(
const std::vector<uint8_t>&)> deserializer
169 const std::string& name,
170 std::shared_ptr<container_interface> container
179 const std::string& name
187 std::shared_ptr<container_interface> container
201 std::vector<uint8_t>
serialize(
const std::any& data);
208 std::any
deserialize(
const std::vector<uint8_t>& bytes);
Basic container implementation for standalone use.
bool is_valid() const override
Check if container is valid.
std::unique_ptr< impl > pimpl_
void set_deserializer(std::function< std::any(const std::vector< uint8_t > &)> deserializer)
Set custom deserializer.
std::vector< uint8_t > serialize(const std::any &data) const override
Serialize data to bytes.
std::any deserialize(const std::vector< uint8_t > &bytes) const override
Deserialize bytes to data.
void set_serializer(std::function< std::vector< uint8_t >(const std::any &)> serializer)
Set custom serializer.
std::string type_name() const override
Get container type name.
Abstract interface for container operations.
virtual std::any deserialize(const std::vector< uint8_t > &bytes) const =0
Deserialize bytes to data.
virtual ~container_interface()=default
virtual bool is_valid() const =0
Check if container is valid.
virtual std::vector< uint8_t > serialize(const std::any &data) const =0
Serialize data to bytes.
virtual std::string type_name() const =0
Get container type name.
Manager for container system integration.
void register_container(const std::string &name, std::shared_ptr< container_interface > container)
Register a container implementation.
static container_manager & instance()
Get the singleton instance.
std::unique_ptr< impl > pimpl_
std::shared_ptr< container_interface > get_container(const std::string &name) const
Get a registered container.
std::shared_ptr< container_interface > get_default_container()
Get default container.
std::any deserialize(const std::vector< uint8_t > &bytes)
Deserialize using default container.
std::vector< uint8_t > serialize(const std::any &data)
Serialize using default container.
void set_default_container(std::shared_ptr< container_interface > container)
Set default container.
std::vector< std::string > list_containers() const
Get list of registered container names.
Feature flags for network_system.
Thread system integration interface for network_system.