Radix Relay
Hybrid mesh communications with Signal Protocol encryption
Loading...
Searching...
No Matches
radix_relay::nostr::session_orchestrator< Bridge, Tracker > Struct Template Reference

Orchestrates Nostr sessions, message handling, and bundle management. More...

#include <session_orchestrator.hpp>

Inheritance diagram for radix_relay::nostr::session_orchestrator< Bridge, Tracker >:

Public Member Functions

 session_orchestrator (const std::shared_ptr< Bridge > &bridge, const std::shared_ptr< Tracker > &tracker, const std::shared_ptr< boost::asio::io_context > &io_context, const std::shared_ptr< async::async_queue< core::events::session_orchestrator::in_t > > &in_queue, const std::shared_ptr< async::async_queue< core::events::transport::in_t > > &transport_out_queue, const std::shared_ptr< async::async_queue< core::events::presentation_event_variant_t > > &presentation_out_queue, const std::shared_ptr< async::async_queue< core::events::connection_monitor::in_t > > &connection_monitor_out_queue, std::chrono::milliseconds timeout=std::chrono::seconds(15))
 Constructs a session orchestrator.
 
auto run_once (std::shared_ptr< boost::asio::cancellation_slot > cancel_slot=nullptr) -> boost::asio::awaitable< void >
 Processes a single event from the queue.
 
auto run (std::shared_ptr< boost::asio::cancellation_slot > cancel_slot=nullptr) -> boost::asio::awaitable< void >
 Continuously processes events until cancelled.
 

Detailed Description

template<concepts::signal_bridge Bridge, concepts::request_tracker Tracker>
struct radix_relay::nostr::session_orchestrator< Bridge, Tracker >

Orchestrates Nostr sessions, message handling, and bundle management.

Template Parameters
BridgeType satisfying the signal_bridge concept
TrackerType satisfying the request_tracker concept

Coordinates between Signal Protocol operations, Nostr transport, and presentation layer. Handles incoming Nostr events, processes encrypted messages, manages bundle discovery, and publishes outgoing messages to relays.

Definition at line 51 of file session_orchestrator.hpp.

Constructor & Destructor Documentation

◆ session_orchestrator()

template<concepts::signal_bridge Bridge, concepts::request_tracker Tracker>
radix_relay::nostr::session_orchestrator< Bridge, Tracker >::session_orchestrator ( const std::shared_ptr< Bridge > &  bridge,
const std::shared_ptr< Tracker > &  tracker,
const std::shared_ptr< boost::asio::io_context > &  io_context,
const std::shared_ptr< async::async_queue< core::events::session_orchestrator< Bridge, Tracker >::in_t > > &  in_queue,
const std::shared_ptr< async::async_queue< core::events::transport::in_t > > &  transport_out_queue,
const std::shared_ptr< async::async_queue< core::events::presentation_event_variant_t > > &  presentation_out_queue,
const std::shared_ptr< async::async_queue< core::events::connection_monitor::in_t > > &  connection_monitor_out_queue,
std::chrono::milliseconds  timeout = std::chrono::seconds(15) 
)
inline

Constructs a session orchestrator.

Parameters
bridgeSignal Protocol bridge
trackerRequest tracker for Nostr responses
io_contextBoost.Asio io_context
in_queueQueue for incoming session orchestrator events
transport_out_queueQueue for outgoing transport commands
presentation_out_queueQueue for outgoing presentation events
connection_monitor_out_queueQueue for outgoing transport status events
timeoutDefault timeout for relay requests

Definition at line 65 of file session_orchestrator.hpp.

Member Function Documentation

◆ run()

template<concepts::signal_bridge Bridge, concepts::request_tracker Tracker>
auto radix_relay::nostr::session_orchestrator< Bridge, Tracker >::run ( std::shared_ptr< boost::asio::cancellation_slot >  cancel_slot = nullptr) -> boost::asio::awaitable<void>
inline

Continuously processes events until cancelled.

Parameters
cancel_slotOptional cancellation slot
Returns
Awaitable that runs until cancellation or error

Definition at line 99 of file session_orchestrator.hpp.

References radix_relay::nostr::session_orchestrator< Bridge, Tracker >::run_once().

◆ run_once()

template<concepts::signal_bridge Bridge, concepts::request_tracker Tracker>
auto radix_relay::nostr::session_orchestrator< Bridge, Tracker >::run_once ( std::shared_ptr< boost::asio::cancellation_slot >  cancel_slot = nullptr) -> boost::asio::awaitable<void>
inline

Processes a single event from the queue.

Parameters
cancel_slotOptional cancellation slot
Returns
Awaitable that completes after processing one event

Definition at line 85 of file session_orchestrator.hpp.

Referenced by radix_relay::nostr::session_orchestrator< Bridge, Tracker >::run().


The documentation for this struct was generated from the following file: