SRS-control 0.1.4
 
Loading...
Searching...
No Matches
srs::connection::Base< buffer_size > Class Template Reference

#include <ConnectionBase.hpp>

Collaboration diagram for srs::connection::Base< buffer_size >:

Public Member Functions

 Base (const Info &info, std::string name)
 
void read_data_handle (std::span< BufferElementType > read_data)
 
void close ()
 
void on_fail ()
 
auto get_executor ()
 
void listen (this auto &&self, bool is_non_stop=false)
 
void communicate (this auto &&self, const std::vector< CommunicateEntryType > &data, uint16_t address)
 
auto send_continuous_message () -> asio::experimental::coro< int(std::optional< std::string_view >)>
 
void set_socket (std::unique_ptr< asio::ip::udp::socket > socket)
 
void set_remote_endpoint (asio::ip::udp::endpoint endpoint)
 
void set_timeout_seconds (int val)
 
void set_send_message (const RangedData auto &msg)
 
auto get_read_msg_buffer () const -> const ReadBufferType< buffer_size > &
 
auto get_name () const -> const std::string &
 
auto get_app () -> App &
 
auto get_socket () -> const udp::socket &
 
auto get_remote_endpoint () -> const udp::endpoint &
 
auto get_local_port_number () const -> int
 
auto is_continuous () const -> bool
 

Protected Member Functions

auto new_shared_socket (int port_number) -> std::unique_ptr< udp::socket >
 
void close_socket ()
 
void set_continuous (bool is_continuous=true)
 

Private Member Functions

void encode_write_msg (const std::vector< CommunicateEntryType > &data, uint16_t address)
 
void reset_read_msg_buffer ()
 

Static Private Member Functions

static auto signal_handling (SharedConnectionPtr auto connection) -> asio::awaitable< void >
 
static auto timer_countdown (auto *connection) -> asio::awaitable< void >
 
static auto listen_message (SharedConnectionPtr auto connection, bool is_non_stop=false) -> asio::awaitable< void >
 
static auto send_message (std::shared_ptr< Base > connection) -> asio::awaitable< void >
 

Private Attributes

bool is_continuous_ = false
 
int local_port_number_ = 0
 
std::atomic< bool > is_socket_closed_ { false }
 
uint32_t counter_ = common::INIT_COUNT_VALUE
 
std::string name_ = "ConnectionBase"
 
gsl::not_null< App * > app_
 
std::unique_ptr< udp::socket > socket_
 
udp::endpoint remote_endpoint_
 
process::SerializableMsgBuffer write_msg_buffer_
 
std::span< const char > continuous_send_msg_
 
std::unique_ptr< asio::signal_set > signal_set_
 
ReadBufferType< buffer_size > read_msg_buffer_ {}
 
int timeout_seconds_ = common::DEFAULT_TIMEOUT_SECONDS
 

Detailed Description

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
class srs::connection::Base< buffer_size >

Definition at line 18 of file ConnectionBase.hpp.

Constructor & Destructor Documentation

◆ Base()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
srs::connection::Base< buffer_size >::Base ( const Info & info,
std::string name )
inlineexplicit

Definition at line 21 of file ConnectionBase.hpp.

Member Function Documentation

◆ close()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::close ( )
inline

Definition at line 31 of file ConnectionBase.hpp.

◆ close_socket()

template<int buffer_size>
void srs::connection::Base< buffer_size >::close_socket ( )
protected

Definition at line 259 of file ConnectionBase.hpp.

◆ communicate()

template<int buffer_size>
void srs::connection::Base< buffer_size >::communicate ( this auto && self,
const std::vector< CommunicateEntryType > & data,
uint16_t address )

Definition at line 248 of file ConnectionBase.hpp.

◆ encode_write_msg()

template<int size>
void srs::connection::Base< size >::encode_write_msg ( const std::vector< CommunicateEntryType > & data,
uint16_t address )
private

Definition at line 220 of file ConnectionBase.hpp.

◆ get_app()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
auto srs::connection::Base< buffer_size >::get_app ( ) -> App&
inlinenodiscard

Definition at line 56 of file ConnectionBase.hpp.

◆ get_executor()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
auto srs::connection::Base< buffer_size >::get_executor ( )
inline

Definition at line 33 of file ConnectionBase.hpp.

◆ get_local_port_number()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
auto srs::connection::Base< buffer_size >::get_local_port_number ( ) const -> int
inlinenodiscard

Definition at line 59 of file ConnectionBase.hpp.

◆ get_name()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
auto srs::connection::Base< buffer_size >::get_name ( ) const -> const std::string&
inlinenodiscard

Definition at line 55 of file ConnectionBase.hpp.

◆ get_read_msg_buffer()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
auto srs::connection::Base< buffer_size >::get_read_msg_buffer ( ) const -> const ReadBufferType<buffer_size>&
inlinenodiscard

Definition at line 51 of file ConnectionBase.hpp.

◆ get_remote_endpoint()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
auto srs::connection::Base< buffer_size >::get_remote_endpoint ( ) -> const udp::endpoint&
inline

Definition at line 58 of file ConnectionBase.hpp.

◆ get_socket()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
auto srs::connection::Base< buffer_size >::get_socket ( ) -> const udp::socket&
inline

Definition at line 57 of file ConnectionBase.hpp.

◆ is_continuous()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
auto srs::connection::Base< buffer_size >::is_continuous ( ) const -> bool
inlinenodiscard

Definition at line 60 of file ConnectionBase.hpp.

◆ listen()

template<int buffer_size>
void srs::connection::Base< buffer_size >::listen ( this auto && self,
bool is_non_stop = false )

Definition at line 232 of file ConnectionBase.hpp.

◆ listen_message()

template<int buffer_size>
auto srs::connection::Base< buffer_size >::listen_message ( SharedConnectionPtr auto connection,
bool is_non_stop = false ) -> asio::awaitable<void>
staticprivate

Definition at line 129 of file ConnectionBase.hpp.

◆ new_shared_socket()

template<int buffer_size>
auto srs::connection::Base< buffer_size >::new_shared_socket ( int port_number) -> std::unique_ptr<udp::socket>
protected

Definition at line 207 of file ConnectionBase.hpp.

◆ on_fail()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::on_fail ( )
inline

Definition at line 32 of file ConnectionBase.hpp.

◆ read_data_handle()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::read_data_handle ( std::span< BufferElementType > read_data)
inline

Definition at line 30 of file ConnectionBase.hpp.

◆ reset_read_msg_buffer()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::reset_read_msg_buffer ( )
inlineprivate

Definition at line 88 of file ConnectionBase.hpp.

◆ send_continuous_message()

template<int buffer_size>
auto srs::connection::Base< buffer_size >::send_continuous_message ( ) -> asio::experimental::coro<int(std::optional<std::string_view>)>

Definition at line 107 of file ConnectionBase.hpp.

◆ send_message()

template<int buffer_size>
auto srs::connection::Base< buffer_size >::send_message ( std::shared_ptr< Base< buffer_size > > connection) -> asio::awaitable<void>
staticprivate

Definition at line 94 of file ConnectionBase.hpp.

◆ set_continuous()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::set_continuous ( bool is_continuous = true)
inlineprotected

Definition at line 65 of file ConnectionBase.hpp.

◆ set_remote_endpoint()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::set_remote_endpoint ( asio::ip::udp::endpoint endpoint)
inline

Definition at line 42 of file ConnectionBase.hpp.

◆ set_send_message()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::set_send_message ( const RangedData auto & msg)
inline

Definition at line 45 of file ConnectionBase.hpp.

◆ set_socket()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::set_socket ( std::unique_ptr< asio::ip::udp::socket > socket)
inline

Definition at line 41 of file ConnectionBase.hpp.

◆ set_timeout_seconds()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
void srs::connection::Base< buffer_size >::set_timeout_seconds ( int val)
inline

Definition at line 43 of file ConnectionBase.hpp.

◆ signal_handling()

template<int buffer_size>
auto srs::connection::Base< buffer_size >::signal_handling ( SharedConnectionPtr auto connection) -> asio::awaitable<void>
staticprivate

Definition at line 188 of file ConnectionBase.hpp.

◆ timer_countdown()

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
static auto srs::connection::Base< buffer_size >::timer_countdown ( auto * connection) -> asio::awaitable< void >
staticprivate

Member Data Documentation

◆ app_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
gsl::not_null<App*> srs::connection::Base< buffer_size >::app_
private

Definition at line 73 of file ConnectionBase.hpp.

◆ continuous_send_msg_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
std::span<const char> srs::connection::Base< buffer_size >::continuous_send_msg_
private

Definition at line 77 of file ConnectionBase.hpp.

◆ counter_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
uint32_t srs::connection::Base< buffer_size >::counter_ = common::INIT_COUNT_VALUE
private

Definition at line 71 of file ConnectionBase.hpp.

◆ is_continuous_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
bool srs::connection::Base< buffer_size >::is_continuous_ = false
private

Definition at line 68 of file ConnectionBase.hpp.

◆ is_socket_closed_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
std::atomic<bool> srs::connection::Base< buffer_size >::is_socket_closed_ { false }
private

Definition at line 70 of file ConnectionBase.hpp.

◆ local_port_number_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
int srs::connection::Base< buffer_size >::local_port_number_ = 0
private

Definition at line 69 of file ConnectionBase.hpp.

◆ name_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
std::string srs::connection::Base< buffer_size >::name_ = "ConnectionBase"
private

Definition at line 72 of file ConnectionBase.hpp.

◆ read_msg_buffer_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
ReadBufferType<buffer_size> srs::connection::Base< buffer_size >::read_msg_buffer_ {}
private

Definition at line 79 of file ConnectionBase.hpp.

◆ remote_endpoint_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
udp::endpoint srs::connection::Base< buffer_size >::remote_endpoint_
private

Definition at line 75 of file ConnectionBase.hpp.

◆ signal_set_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
std::unique_ptr<asio::signal_set> srs::connection::Base< buffer_size >::signal_set_
private

Definition at line 78 of file ConnectionBase.hpp.

◆ socket_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
std::unique_ptr<udp::socket> srs::connection::Base< buffer_size >::socket_
private

Definition at line 74 of file ConnectionBase.hpp.

◆ timeout_seconds_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
int srs::connection::Base< buffer_size >::timeout_seconds_ = common::DEFAULT_TIMEOUT_SECONDS
private

Definition at line 80 of file ConnectionBase.hpp.

◆ write_msg_buffer_

template<int buffer_size = common::SMALL_READ_MSG_BUFFER_SIZE>
process::SerializableMsgBuffer srs::connection::Base< buffer_size >::write_msg_buffer_
private

Definition at line 76 of file ConnectionBase.hpp.


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