#include "zeek/cluster/Manager.h" #include "zeek/cluster/Serializer.h" using namespace zeek::cluster; Manager::Manager() : backends(plugin::ComponentManager("Cluster", "BackendTag")), event_serializers(plugin::ComponentManager("Cluster", "EventSerializerTag")), log_serializers(plugin::ComponentManager("Cluster", "LogSerializerTag")) {} std::unique_ptr Manager::InstantiateBackend(const zeek::EnumValPtr& tag, std::unique_ptr event_serializer, std::unique_ptr log_serializer) { const BackendComponent* c = Backends().Lookup(tag); return c ? c->Factory()(std::move(event_serializer), std::move(log_serializer)) : nullptr; } std::unique_ptr Manager::InstantiateEventSerializer(const zeek::EnumValPtr& tag) { const EventSerializerComponent* c = EventSerializers().Lookup(tag); return c ? c->Factory()() : nullptr; } std::unique_ptr Manager::InstantiateLogSerializer(const zeek::EnumValPtr& tag) { const LogSerializerComponent* c = LogSerializers().Lookup(tag); return c ? c->Factory()() : nullptr; }