12#include <unordered_map>
16#include <dfx-graph/TransportFactory.hpp>
17#include <dfx-graph/NodeFactory.hpp>
19#include <dfx-utilities/FileSystem.hpp>
20#include <dfx-utilities/SystemConfig.hpp>
61 void _validatePluginInfoConfig();
63 void _discoverPluginsAt(fs::path
const & path,
bool recursive);
66 Plugin * plugin, std::string scheme,
69 Plugin * plugin, std::string type,
70 std::string rawNodeMetadata, std::string rawConfigSchema,
73 nlohmann::json _getConfigOfPlugin(
Plugin const & plugin)
const;
76 std::vector<std::string> _searchPath;
77 std::unordered_map<std::string, PluginPtr> _plugins;
78 nlohmann::json _pluginInfos;
79 fs::path _configBasePath;
Convenience macros to explicitly control copy and move semantics.
Runtime node instantiation and validation facility (builders + config/metadata schemas).
Definition NodeFactory.hpp:60
Registry and factory for creating Source and Destination transports.
Definition TransportFactory.hpp:40
Manager for a loaded plugin shared library.
Definition Plugin.hpp:38
DFX_DISABLE_COPY_AND_MOVE(Registry)
Non-copyable and non-movable to maintain registry integrity.
Registry(Utils::SystemConfig &sysConfig)
Constructs the registry and performs initial plugin discovery.
void loadAllPlugins(Graph::NodeFactory &nodeFactory, Graph::TransportFactory &transportFactory)
Loads and initializes all plugins that passed the discovery phase.
System configuration registry with typed values, entry metadata, and change callbacks.
Definition SystemConfig.hpp:84
Definition MessageApi.hpp:16
The vtable that a plugin must implement to define a Node.
Definition PluginInterface.h:719
The Transport Plugin Interface.
Definition PluginInterface.h:781