Class DiscoveryLayer
Defined in File discovery_layer.hpp
Inheritance Relationships
Derived Types
public ros2_medkit_gateway::discovery::ManifestLayer(Class ManifestLayer)public ros2_medkit_gateway::discovery::PluginLayer(Class PluginLayer)public ros2_medkit_gateway::discovery::RuntimeLayer(Class RuntimeLayer)
Class Documentation
-
class DiscoveryLayer
Interface for a pluggable discovery data source.
Each layer produces entities and declares how its data should be merged with other layers via per-field-group MergePolicy.
Subclassed by ros2_medkit_gateway::discovery::ManifestLayer, ros2_medkit_gateway::discovery::PluginLayer, ros2_medkit_gateway::discovery::RuntimeLayer
Public Functions
-
virtual ~DiscoveryLayer() = default
-
virtual std::string name() const = 0
Human-readable layer name (e.g., “manifest”, “runtime”, plugin name)
-
virtual LayerOutput discover() = 0
Discover entities from this layer’s source.
-
virtual MergePolicy policy_for(FieldGroup group) const = 0
Merge policy this layer uses for the given field group.
-
inline virtual bool provides_runtime_apps() const
Whether this layer provides runtime apps for post-merge linking. Only RuntimeLayer (or test doubles) should return true.
-
inline virtual size_t filtered_count() const
Number of entities filtered by gap-fill in last discover(). Default 0.
-
inline virtual std::vector<App> get_linking_apps() const
Return unfiltered runtime apps for post-merge linking. Gap-fill may exclude apps from discover() output, but the linker needs all runtime apps to bind manifest apps to live nodes. Only RuntimeLayer (or test doubles) should override this.
-
inline virtual void set_discovery_context(const IntrospectionInput&)
Provide the current discovery context (entities from previous layers). Called by MergePipeline before discover(). Default no-op.
-
virtual ~DiscoveryLayer() = default