OpenVPN 3 Core Library
Loading...
Searching...
No Matches
openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY > Class Template Reference

#include <tcplink.hpp>

Inheritance diagram for openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >:
[legend]
Collaboration diagram for openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >:
[legend]

Public Types

typedef LinkCommon< Protocol, ReadHandler, RAW_MODE_ONLY > Base
 
typedef RCPtr< TCPLinkPtr
 
typedef Protocol protocol
 
- Public Types inherited from openvpn::TCPTransport::LinkCommon< Protocol, ReadHandler, RAW_MODE_ONLY >
typedef RCPtr< LinkCommon< Protocol, ReadHandler, RAW_MODE_ONLY > > Ptr
 
typedef Protocol protocol
 
typedef PacketStream< std::uint16_t > OpenVPNPacketStream
 
- Public Types inherited from openvpn::TCPTransport::LinkBase
typedef RCPtr< LinkBasePtr
 
- Public Types inherited from openvpn::RC< thread_unsafe_refcount >
typedef RCPtr< RCPtr
 

Public Member Functions

 TCPLink (ReadHandler read_handler_arg, typename Protocol::socket &socket_arg, const size_t send_queue_max_size_arg, const size_t free_list_max_size_arg, const Frame::Context &frame_context_arg, const SessionStats::Ptr &stats_arg)
 
- Public Member Functions inherited from openvpn::TCPTransport::LinkCommon< Protocol, ReadHandler, RAW_MODE_ONLY >
void set_raw_mode (const bool mode)
 
void set_raw_mode_read (const bool mode)
 
void set_raw_mode_write (const bool mode)
 
void set_mutate (const TransportMutateStream::Ptr &mutate_arg)
 
bool send_queue_empty () const
 
void inject (const Buffer &src)
 
void start ()
 
void stop ()
 
void reset_align_adjust (const size_t align_adjust)
 
size_t send_queue_size () const
 
bool send (BufferAllocated &b)
 
void queue_recv (PacketFrom *tcpfrom)
 
- Public Member Functions inherited from openvpn::RC< thread_unsafe_refcount >
 RC () noexcept=default
 
 RC (const RC &)=delete
 
virtual ~RC ()=default
 
RCoperator= (const RC &)=delete
 
olong use_count () const noexcept
 Delegates call to RCImpl and returns the result.
 

Public Attributes

friend Base
 

Private Types

typedef std::deque< BufferPtrQueue
 

Private Member Functions

virtual void from_app_send_buffer (BufferPtr &buf) override
 
virtual void recv_buffer (PacketFrom::SPtr &pfp, const size_t bytes_recvd) override
 

Additional Inherited Members

- Static Public Member Functions inherited from openvpn::RC< thread_unsafe_refcount >
static constexpr bool is_thread_safe ()
 Delegates call to RCImpl and returns the result.
 
- Protected Member Functions inherited from openvpn::TCPTransport::LinkCommon< Protocol, ReadHandler, RAW_MODE_ONLY >
 LinkCommon (ReadHandler read_handler_arg, typename Protocol::socket &socket_arg, const size_t send_queue_max_size_arg, const size_t free_list_max_size_arg, const Frame::Context &frame_context_arg, const SessionStats::Ptr &stats_arg)
 
bool is_raw_mode () const
 
bool is_raw_mode_read () const
 
bool is_raw_mode_write () const
 
 LinkCommon ()
 
void queue_send_buffer (BufferPtr &buf)
 
void queue_send ()
 
void handle_send (const openvpn_io::error_code &error, const size_t bytes_sent)
 
bool process_recv_buffer (BufferAllocated &buf)
 
void handle_recv (PacketFrom::SPtr pfp, const openvpn_io::error_code &error, const size_t bytes_recvd)
 
bool put_pktstream (BufferAllocated &buf, BufferAllocated &pkt)
 
void tcp_write_queue_needs_send ()
 
- Protected Attributes inherited from openvpn::TCPTransport::LinkCommon< Protocol, ReadHandler, RAW_MODE_ONLY >
Protocol::socket & socket
 
ReadHandler read_handler
 
Frame::Context frame_context
 
SessionStats::Ptr stats
 
const size_t send_queue_max_size
 
const size_t free_list_max_size
 
Queue queue
 
Queue free_list
 
OpenVPNPacketStream pktstream
 
TransportMutateStream::Ptr mutate
 
bool raw_mode_read
 
bool raw_mode_write
 
bool halt = false
 

Detailed Description

template<typename Protocol, typename ReadHandler, bool RAW_MODE_ONLY>
class openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >

Definition at line 40 of file tcplink.hpp.

Member Typedef Documentation

◆ Base

template<typename Protocol , typename ReadHandler , bool RAW_MODE_ONLY>
Base

Definition at line 50 of file tcplink.hpp.

◆ protocol

template<typename Protocol , typename ReadHandler , bool RAW_MODE_ONLY>
typedef Protocol openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >::protocol

Definition at line 53 of file tcplink.hpp.

◆ Ptr

template<typename Protocol , typename ReadHandler , bool RAW_MODE_ONLY>
typedef RCPtr<TCPLink> openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >::Ptr

Definition at line 51 of file tcplink.hpp.

◆ Queue

template<typename Protocol , typename ReadHandler , bool RAW_MODE_ONLY>
typedef std::deque<BufferPtr> openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >::Queue
private

Definition at line 44 of file tcplink.hpp.

Constructor & Destructor Documentation

◆ TCPLink()

template<typename Protocol , typename ReadHandler , bool RAW_MODE_ONLY>
openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >::TCPLink ( ReadHandler  read_handler_arg,
typename Protocol::socket &  socket_arg,
const size_t  send_queue_max_size_arg,
const size_t  free_list_max_size_arg,
const Frame::Context frame_context_arg,
const SessionStats::Ptr stats_arg 
)
inline

Definition at line 57 of file tcplink.hpp.

Member Function Documentation

◆ from_app_send_buffer()

template<typename Protocol , typename ReadHandler , bool RAW_MODE_ONLY>
virtual void openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >::from_app_send_buffer ( BufferPtr buf)
inlineoverrideprivatevirtual

◆ recv_buffer()

template<typename Protocol , typename ReadHandler , bool RAW_MODE_ONLY>
virtual void openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >::recv_buffer ( PacketFrom::SPtr pfp,
const size_t  bytes_recvd 
)
inlineoverrideprivatevirtual

Member Data Documentation

◆ Base

template<typename Protocol , typename ReadHandler , bool RAW_MODE_ONLY>
friend openvpn::TCPTransport::TCPLink< Protocol, ReadHandler, RAW_MODE_ONLY >::Base

Definition at line 55 of file tcplink.hpp.


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