Class DiscoveryHandlers

Class Documentation

class DiscoveryHandlers

Unified handlers for entity discovery REST API endpoints.

Consolidated handlers for discovering and navigating SOVD entities:

  • Areas: ROS 2 namespace groupings

  • Components: Hardware or logical groupings

  • Apps: Software applications (ROS nodes)

  • Functions: Capability abstractions

@verifies REQ_DISCOVERY_001 Areas discovery @verifies REQ_DISCOVERY_002 Apps discovery @verifies REQ_DISCOVERY_003 Components discovery @verifies REQ_DISCOVERY_004 Functions discovery

Public Functions

inline explicit DiscoveryHandlers(HandlerContext &ctx)

Construct discovery handlers with shared context.

Parameters:

ctx – The shared handler context

void handle_list_areas(const httplib::Request &req, httplib::Response &res)

Handle GET /areas - list all areas.

void handle_get_area(const httplib::Request &req, httplib::Response &res)

Handle GET /areas/{area-id} - get area capabilities.

void handle_area_components(const httplib::Request &req, httplib::Response &res)

Handle GET /areas/{area-id}/components - list components in area.

void handle_get_subareas(const httplib::Request &req, httplib::Response &res)

Handle GET /areas/{area-id}/subareas - list subareas.

void handle_get_contains(const httplib::Request &req, httplib::Response &res)

Handle GET /areas/{area-id}/contains - SOVD 7.6.2.4 relationship. @verifies REQ_INTEROP_006.

void handle_list_components(const httplib::Request &req, httplib::Response &res)

Handle GET /components - list all components.

void handle_get_component(const httplib::Request &req, httplib::Response &res)

Handle GET /components/{component-id} - get component capabilities.

void handle_get_subcomponents(const httplib::Request &req, httplib::Response &res)

Handle GET /components/{id}/subcomponents - list subcomponents.

void handle_get_hosts(const httplib::Request &req, httplib::Response &res)

Handle GET /components/{id}/hosts - list hosted apps. @verifies REQ_INTEROP_007.

void handle_component_depends_on(const httplib::Request &req, httplib::Response &res)

Handle GET /components/{id}/depends-on - list dependencies. @verifies REQ_INTEROP_008.

void handle_list_apps(const httplib::Request &req, httplib::Response &res)

Handle GET /apps - list all apps.

void handle_get_app(const httplib::Request &req, httplib::Response &res)

Handle GET /apps/{app-id} - get app capabilities.

void handle_app_depends_on(const httplib::Request &req, httplib::Response &res)

Handle GET /apps/{app-id}/depends-on - list app dependencies. @verifies REQ_INTEROP_009.

void handle_app_is_located_on(const httplib::Request &req, httplib::Response &res)

Handle GET /apps/{app-id}/is-located-on - get parent component.

void handle_list_functions(const httplib::Request &req, httplib::Response &res)

Handle GET /functions - list all functions.

void handle_get_function(const httplib::Request &req, httplib::Response &res)

Handle GET /functions/{function-id} - get function capabilities.

void handle_function_hosts(const httplib::Request &req, httplib::Response &res)

Handle GET /functions/{function-id}/hosts - list host apps.