OpenVPN 3 Core Library
Loading...
Searching...
No Matches
openvpn::TunIO< ReadHandler, PacketFrom, STREAM > Class Template Reference

#include <tunio.hpp>

Inheritance diagram for openvpn::TunIO< ReadHandler, PacketFrom, STREAM >:
[legend]
Collaboration diagram for openvpn::TunIO< ReadHandler, PacketFrom, STREAM >:
[legend]

Public Types

typedef RCPtr< TunIOPtr
 
- Public Types inherited from openvpn::RC< thread_unsafe_refcount >
typedef RCPtr< RCPtr
 

Public Member Functions

 TunIO (ReadHandler read_handler_arg, const Frame::Ptr &frame_arg, const SessionStats::Ptr &stats_arg, const size_t frame_context_type=Frame::READ_TUN)
 
 TunIO (ReadHandler read_handler_arg, const Frame::Context &frame_context_arg, const SessionStats::Ptr &stats_arg)
 
virtual ~TunIO ()
 
bool write (Buffer &buf)
 
template<class BUFSEQ >
bool write_seq (const BUFSEQ &bs)
 
void start (const int n_parallel)
 
void stop ()
 
std::string name () const
 
- 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.
 

Protected Member Functions

void queue_read (PacketFrom *tunfrom)
 
void handle_read (typename PacketFrom::SPtr pfp, const openvpn_io::error_code &error, const size_t bytes_recvd)
 
void tun_error (const Error::Type errtype, const openvpn_io::error_code *error)
 

Protected Attributes

std::string name_
 
STREAM * stream = nullptr
 
bool retain_stream = false
 
bool tun_prefix = false
 
ReadHandler read_handler
 
const Frame::Context frame_context
 
SessionStats::Ptr stats
 
bool halt = false
 

Private Member Functions

void prepend_pf_inet (Buffer &buf, const std::uint32_t value)
 

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.
 

Detailed Description

template<typename ReadHandler, typename PacketFrom, typename STREAM>
class openvpn::TunIO< ReadHandler, PacketFrom, STREAM >

Definition at line 32 of file tunio.hpp.

Member Typedef Documentation

◆ Ptr

template<typename ReadHandler , typename PacketFrom , typename STREAM >
typedef RCPtr<TunIO> openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::Ptr

Definition at line 35 of file tunio.hpp.

Constructor & Destructor Documentation

◆ TunIO() [1/2]

template<typename ReadHandler , typename PacketFrom , typename STREAM >
openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::TunIO ( ReadHandler  read_handler_arg,
const Frame::Ptr frame_arg,
const SessionStats::Ptr stats_arg,
const size_t  frame_context_type = Frame::READ_TUN 
)
inline

Definition at line 37 of file tunio.hpp.

◆ TunIO() [2/2]

template<typename ReadHandler , typename PacketFrom , typename STREAM >
openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::TunIO ( ReadHandler  read_handler_arg,
const Frame::Context frame_context_arg,
const SessionStats::Ptr stats_arg 
)
inline

Definition at line 47 of file tunio.hpp.

◆ ~TunIO()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
virtual openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::~TunIO ( )
inlinevirtual

Definition at line 56 of file tunio.hpp.

Member Function Documentation

◆ handle_read()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
void openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::handle_read ( typename PacketFrom::SPtr  pfp,
const openvpn_io::error_code &  error,
const size_t  bytes_recvd 
)
inlineprotected

Definition at line 217 of file tunio.hpp.

◆ name()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
std::string openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::name ( ) const
inline

Definition at line 188 of file tunio.hpp.

◆ prepend_pf_inet()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
void openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::prepend_pf_inet ( Buffer buf,
const std::uint32_t  value 
)
inlineprivate

Definition at line 194 of file tunio.hpp.

Here is the caller graph for this function:

◆ queue_read()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
void openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::queue_read ( PacketFrom *  tunfrom)
inlineprotected

Definition at line 201 of file tunio.hpp.

Here is the caller graph for this function:

◆ start()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
void openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::start ( const int  n_parallel)
inline

Definition at line 159 of file tunio.hpp.

◆ stop()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
void openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::stop ( )
inline

Definition at line 169 of file tunio.hpp.

Here is the caller graph for this function:

◆ tun_error()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
void openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::tun_error ( const Error::Type  errtype,
const openvpn_io::error_code *  error 
)
inlineprotected

Definition at line 256 of file tunio.hpp.

Here is the caller graph for this function:

◆ write()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
bool openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::write ( Buffer buf)
inline

Definition at line 63 of file tunio.hpp.

◆ write_seq()

template<typename ReadHandler , typename PacketFrom , typename STREAM >
template<class BUFSEQ >
bool openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::write_seq ( const BUFSEQ &  bs)
inline

Definition at line 125 of file tunio.hpp.

Member Data Documentation

◆ frame_context

template<typename ReadHandler , typename PacketFrom , typename STREAM >
const Frame::Context openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::frame_context
protected

Definition at line 270 of file tunio.hpp.

◆ halt

template<typename ReadHandler , typename PacketFrom , typename STREAM >
bool openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::halt = false
protected

Definition at line 273 of file tunio.hpp.

◆ name_

template<typename ReadHandler , typename PacketFrom , typename STREAM >
std::string openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::name_
protected

Definition at line 264 of file tunio.hpp.

◆ read_handler

template<typename ReadHandler , typename PacketFrom , typename STREAM >
ReadHandler openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::read_handler
protected

Definition at line 269 of file tunio.hpp.

◆ retain_stream

template<typename ReadHandler , typename PacketFrom , typename STREAM >
bool openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::retain_stream = false
protected

Definition at line 266 of file tunio.hpp.

◆ stats

template<typename ReadHandler , typename PacketFrom , typename STREAM >
SessionStats::Ptr openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::stats
protected

Definition at line 271 of file tunio.hpp.

◆ stream

template<typename ReadHandler , typename PacketFrom , typename STREAM >
STREAM* openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::stream = nullptr
protected

Definition at line 265 of file tunio.hpp.

◆ tun_prefix

template<typename ReadHandler , typename PacketFrom , typename STREAM >
bool openvpn::TunIO< ReadHandler, PacketFrom, STREAM >::tun_prefix = false
protected

Definition at line 267 of file tunio.hpp.


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