mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
27 lines
1.3 KiB
C++
27 lines
1.3 KiB
C++
#include "zeek/cluster/Manager.h"
|
|
|
|
#include "zeek/cluster/Serializer.h"
|
|
|
|
using namespace zeek::cluster;
|
|
|
|
Manager::Manager()
|
|
: backends(plugin::ComponentManager<BackendComponent>("Cluster", "BackendTag")),
|
|
event_serializers(plugin::ComponentManager<EventSerializerComponent>("Cluster", "EventSerializerTag")),
|
|
log_serializers(plugin::ComponentManager<LogSerializerComponent>("Cluster", "LogSerializerTag")) {}
|
|
|
|
std::unique_ptr<Backend> Manager::InstantiateBackend(const zeek::EnumValPtr& tag,
|
|
std::unique_ptr<EventSerializer> event_serializer,
|
|
std::unique_ptr<LogSerializer> log_serializer) {
|
|
const BackendComponent* c = Backends().Lookup(tag);
|
|
return c ? c->Factory()(std::move(event_serializer), std::move(log_serializer)) : nullptr;
|
|
}
|
|
|
|
std::unique_ptr<EventSerializer> Manager::InstantiateEventSerializer(const zeek::EnumValPtr& tag) {
|
|
const EventSerializerComponent* c = EventSerializers().Lookup(tag);
|
|
return c ? c->Factory()() : nullptr;
|
|
}
|
|
|
|
std::unique_ptr<LogSerializer> Manager::InstantiateLogSerializer(const zeek::EnumValPtr& tag) {
|
|
const LogSerializerComponent* c = LogSerializers().Lookup(tag);
|
|
return c ? c->Factory()() : nullptr;
|
|
}
|