Class CyclicSubscriptionHandlers

Class Documentation

class CyclicSubscriptionHandlers

HTTP handlers for cyclic subscription CRUD and SSE streaming.

Implements SOVD cyclic subscription endpoints:

  • POST /{entity}/cyclic-subscriptions — create subscription

  • GET /{entity}/cyclic-subscriptions — list subscriptions

  • GET /{entity}/cyclic-subscriptions/{id} — get subscription

  • PUT /{entity}/cyclic-subscriptions/{id} — update subscription

  • DELETE /{entity}/cyclic-subscriptions/{id} — delete subscription

  • GET /{entity}/cyclic-subscriptions/{id}/events — SSE stream

Public Functions

CyclicSubscriptionHandlers(HandlerContext &ctx, SubscriptionManager &sub_mgr, ResourceSamplerRegistry &sampler_registry, TransportRegistry &transport_registry, int max_duration_sec)
void handle_create(const httplib::Request &req, httplib::Response &res)

POST /{entity}/cyclic-subscriptions — create subscription.

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

GET /{entity}/cyclic-subscriptions — list all subscriptions for entity.

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

GET /{entity}/cyclic-subscriptions/{id} — get single subscription.

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

PUT /{entity}/cyclic-subscriptions/{id} — update subscription.

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

DELETE /{entity}/cyclic-subscriptions/{id} — delete subscription.

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

GET /{entity}/cyclic-subscriptions/{id}/events — SSE event stream.

Public Static Functions

static nlohmann::json subscription_to_json(const CyclicSubscriptionInfo &info, const std::string &event_source)

Convert subscription info to JSON response.

static tl::expected<ParsedResourceUri, std::string> parse_resource_uri(const std::string &resource)

Parse resource URI to extract entity type, entity id, collection, and resource path.