Radix Relay
Hybrid mesh communications with Signal Protocol encryption
Loading...
Searching...
No Matches
processor_runner.hpp File Reference
#include <boost/asio/awaitable.hpp>
#include <boost/asio/cancellation_signal.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/detached.hpp>
#include <boost/asio/error.hpp>
#include <boost/asio/experimental/channel_error.hpp>
#include <boost/asio/io_context.hpp>
#include <concepts>
#include <memory>
#include <spdlog/spdlog.h>
#include <string_view>

Go to the source code of this file.

Classes

struct  radix_relay::core::coroutine_state
 Tracks the lifecycle state of a spawned coroutine. More...
 

Namespaces

namespace  radix_relay
 
namespace  radix_relay::core
 

Concepts

concept  radix_relay::core::Processor
 Concept for types that can be run as processors.
 

Functions

template<Processor P>
auto radix_relay::core::run_processor (std::shared_ptr< P > proc, std::shared_ptr< boost::asio::cancellation_slot > cancel_slot, std::string_view processor_name) -> boost::asio::awaitable< void >
 Runs a processor coroutine with error handling.
 
template<Processor P>
auto radix_relay::core::spawn_processor (const std::shared_ptr< boost::asio::io_context > &io_ctx, std::shared_ptr< P > proc, std::shared_ptr< boost::asio::cancellation_slot > cancel_slot, std::string_view processor_name) -> std::shared_ptr< coroutine_state >
 Spawns a processor as a detached coroutine.