ORE Studio 0.0.4
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
subscription_commands Class Reference

Manages commands related to event subscriptions and notifications. More...

#include <subscription_commands.hpp>

Collaboration diagram for subscription_commands:
Collaboration graph

Static Public Member Functions

static void register_commands (cli::Menu &root, comms::net::client_session &session)
 Register subscription management commands.
 
static void process_channels (std::ostream &out, comms::net::client_session &session)
 List available event channels.
 
static void process_listen (std::ostream &out, comms::net::client_session &session, std::string event_type)
 Process a listen (subscribe) request.
 
static void process_unlisten (std::ostream &out, comms::net::client_session &session, std::string event_type)
 Process an unlisten (unsubscribe) request.
 
static void process_subscriptions (std::ostream &out, comms::net::client_session &session)
 Display current subscriptions.
 
static void process_notifications (std::ostream &out, comms::net::client_session &session)
 Display and clear pending notifications.
 
static std::size_t display_pending_notifications (std::ostream &out, comms::net::client_session &session)
 Display pending notifications without clearing them.
 

Detailed Description

Manages commands related to event subscriptions and notifications.

Creates an 'events' submenu with PSQL-like LISTEN/NOTIFY functionality:

Member Function Documentation

◆ register_commands()

void register_commands ( cli::Menu &  root,
comms::net::client_session session 
)
static

Register subscription management commands.

Creates an 'events' submenu and adds channels, listen, unlisten, subscriptions, and notifications commands to it.

Parameters
rootThe root menu to add the events submenu to
sessionClient session for server communication

◆ process_channels()

void process_channels ( std::ostream &  out,
comms::net::client_session session 
)
static

List available event channels.

Queries the server for the list of available event channels that clients can subscribe to.

Parameters
outOutput stream for user feedback
sessionClient session for server communication
Here is the caller graph for this function:

◆ process_listen()

void process_listen ( std::ostream &  out,
comms::net::client_session session,
std::string  event_type 
)
static

Process a listen (subscribe) request.

Parameters
outOutput stream for user feedback
sessionClient session for server communication
event_typeThe event type to subscribe to
Here is the caller graph for this function:

◆ process_unlisten()

void process_unlisten ( std::ostream &  out,
comms::net::client_session session,
std::string  event_type 
)
static

Process an unlisten (unsubscribe) request.

Parameters
outOutput stream for user feedback
sessionClient session for server communication
event_typeThe event type to unsubscribe from (empty = all)
Here is the caller graph for this function:

◆ process_subscriptions()

void process_subscriptions ( std::ostream &  out,
comms::net::client_session session 
)
static

Display current subscriptions.

Parameters
outOutput stream for user feedback
sessionClient session for server communication
Here is the caller graph for this function:

◆ process_notifications()

void process_notifications ( std::ostream &  out,
comms::net::client_session session 
)
static

Display and clear pending notifications.

Parameters
outOutput stream for user feedback
sessionClient session for server communication
Here is the caller graph for this function:

◆ display_pending_notifications()

std::size_t display_pending_notifications ( std::ostream &  out,
comms::net::client_session session 
)
static

Display pending notifications without clearing them.

Helper function that can be called after each command to show notifications like PSQL does.

Parameters
outOutput stream for user feedback
sessionClient session for server communication
Returns
Number of notifications displayed