Struct App

Nested Relationships

Nested Types

Struct Documentation

struct App

SOVD App entity - represents a software application.

In the ROS 2 context, an App typically corresponds to a ROS node. Apps are located on Components and can depend on other Apps.

Apps can be:

  • Manifest-defined: Declared in YAML manifest with ROS binding

  • Runtime-discovered: Automatically created from ROS nodes (future)

Public Functions

inline std::string effective_fqn() const

Get effective FQN: bound_fqn if available, otherwise derived from ros_binding. Returns empty string if neither is available. Used by handlers and samplers to resolve the ROS node FQN in manifest_only mode where runtime linking doesn’t set bound_fqn.

Note

namespace_pattern must be empty or an exact namespace path (e.g. “/perception”). Glob patterns like “**” or “prefix*” are not supported and will produce empty FQN.

json to_json() const

Serialize to full JSON representation.

json to_entity_reference(const std::string &base_url) const

Create SOVD EntityReference format.

Parameters:

base_url – Base URL for href (e.g., “/api/v1”)

json to_capabilities(const std::string &base_url) const

Create SOVD Entity Capabilities format.

Parameters:

base_url – Base URL for capability URIs

Public Members

std::string id

Unique identifier.

std::string name

Human-readable name.

std::string translation_id

For i18n support.

std::string description

Detailed description.

std::vector<std::string> tags

Tags for filtering.

std::string component_id

is-located-on relationship

std::vector<std::string> depends_on

depends-on relationship (App IDs)

std::optional<RosBinding> ros_binding
std::optional<std::string> bound_fqn

Bound ROS node FQN.

bool is_online = {false}

Whether the bound node is running.

bool external = {false}

True if not a ROS node.

ComponentTopics topics
std::vector<ServiceInfo> services
std::vector<ActionInfo> actions
std::string source = "manifest"

“manifest” or “runtime”

std::string original_id

Pre-rename ID when collision-prefixed by aggregation.

struct RosBinding

ROS 2 binding configuration for manifest-defined apps.

Specifies how to bind this App to a ROS 2 node at runtime.

Public Functions

inline bool is_empty() const
inline json to_json() const

Public Members

std::string node_name

ROS node name to bind to.

std::string namespace_pattern

Namespace (can be “*” for wildcard)

std::string topic_namespace

Alternative: bind by topic prefix.