Radix Relay
Hybrid mesh communications with Signal Protocol encryption
Loading...
Searching...
No Matches
radix_relay::nostr::transport< WebSocketStream > Struct Template Reference

Nostr WebSocket transport layer. More...

#include <transport.hpp>

Public Member Functions

 transport (const std::shared_ptr< WebSocketStream > &websocket_stream, const std::shared_ptr< boost::asio::io_context > &io_context, const std::shared_ptr< async::async_queue< core::events::transport::in_t > > &in_queue, const std::shared_ptr< async::async_queue< core::events::session_orchestrator::in_t > > &to_session_queue)
 Constructs a Nostr transport.
 
 ~transport ()
 
 transport (const transport &)=delete
 
auto operator= (const transport &) -> transport &=delete
 
 transport (transport &&)=delete
 
auto operator= (transport &&) -> transport &=delete
 
auto run_once (std::shared_ptr< boost::asio::cancellation_slot > cancel_slot=nullptr) -> boost::asio::awaitable< void >
 Processes a single transport command from the queue.
 
auto run (std::shared_ptr< boost::asio::cancellation_slot > cancel_slot=nullptr) -> boost::asio::awaitable< void >
 Continuously processes transport commands until cancelled.
 

Detailed Description

template<concepts::websocket_stream WebSocketStream>
struct radix_relay::nostr::transport< WebSocketStream >

Nostr WebSocket transport layer.

Template Parameters
WebSocketStreamType satisfying the websocket_stream concept

Manages WebSocket connection to Nostr relays, handling connection lifecycle, message sending/receiving, and forwarding parsed events to the session orchestrator.

Definition at line 32 of file transport.hpp.

Constructor & Destructor Documentation

◆ transport() [1/3]

template<concepts::websocket_stream WebSocketStream>
radix_relay::nostr::transport< WebSocketStream >::transport ( const std::shared_ptr< WebSocketStream > &  websocket_stream,
const std::shared_ptr< boost::asio::io_context > &  io_context,
const std::shared_ptr< async::async_queue< core::events::transport< WebSocketStream >::in_t > > &  in_queue,
const std::shared_ptr< async::async_queue< core::events::session_orchestrator::in_t > > &  to_session_queue 
)
inline

Constructs a Nostr transport.

Parameters
websocket_streamWebSocket stream implementation
io_contextBoost.Asio io_context for async operations
in_queueQueue for incoming transport commands
to_session_queueQueue for outgoing events to session orchestrator

Definition at line 42 of file transport.hpp.

◆ ~transport()

template<concepts::websocket_stream WebSocketStream>
radix_relay::nostr::transport< WebSocketStream >::~transport ( )
inline

Definition at line 49 of file transport.hpp.

◆ transport() [2/3]

template<concepts::websocket_stream WebSocketStream>
radix_relay::nostr::transport< WebSocketStream >::transport ( const transport< WebSocketStream > &  )
delete

◆ transport() [3/3]

template<concepts::websocket_stream WebSocketStream>
radix_relay::nostr::transport< WebSocketStream >::transport ( transport< WebSocketStream > &&  )
delete

Member Function Documentation

◆ operator=() [1/2]

template<concepts::websocket_stream WebSocketStream>
auto radix_relay::nostr::transport< WebSocketStream >::operator= ( const transport< WebSocketStream > &  ) -> transport &=delete
delete

◆ operator=() [2/2]

template<concepts::websocket_stream WebSocketStream>
auto radix_relay::nostr::transport< WebSocketStream >::operator= ( transport< WebSocketStream > &&  ) -> transport &=delete
delete

◆ run()

template<concepts::websocket_stream WebSocketStream>
auto radix_relay::nostr::transport< WebSocketStream >::run ( std::shared_ptr< boost::asio::cancellation_slot >  cancel_slot = nullptr) -> boost::asio::awaitable<void>
inline

Continuously processes transport commands until cancelled.

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

Definition at line 84 of file transport.hpp.

References radix_relay::nostr::transport< WebSocketStream >::run_once().

◆ run_once()

template<concepts::websocket_stream WebSocketStream>
auto radix_relay::nostr::transport< WebSocketStream >::run_once ( std::shared_ptr< boost::asio::cancellation_slot >  cancel_slot = nullptr) -> boost::asio::awaitable<void>
inline

Processes a single transport command from the queue.

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

Definition at line 70 of file transport.hpp.

Referenced by radix_relay::nostr::transport< WebSocketStream >::run().


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