14#ifndef OPENVPN_LOG_SESSIONSTATS_H
15#define OPENVPN_LOG_SESSIONSTATS_H
53 virtual void error(
const size_t type,
const std::string *text =
nullptr)
64#ifdef OPENVPN_STATS_VIRTUAL
74 std::invoke(*lock, value);
93 static const char *names[] = {
107 return "UNKNOWN_STAT_TYPE";
152 count_t transport_bytes_out_arg,
156 count_t transport_pkts_out_arg,
208 if (data.transport_bytes_in > 0)
239 auto cb_ptr = std::make_shared<inc_callback_t>(callback);
void reset() noexcept
Points this RCPtr<T> to nullptr safely.
Reference count base class for objects tracked by RCPtr. Disallows copying and assignment.
RCPtr< SessionStats > Ptr
std::array< std::weak_ptr< inc_callback_t >, N_STATS > inc_callbacks_
count_t get_stat_fast(const size_t type) const
virtual void error(const size_t type, const std::string *text=nullptr)
volatile count_t stats_[N_STATS]
void dco_configure(SessionStats::DCOTransportSource *source)
std::function< void(const count_t value)> inc_callback_t
void inc_stat(const size_t type, const count_t value)
Time last_packet_received_
DCOTransportSource::Ptr dco_
std::shared_ptr< inc_callback_t > set_inc_callback(Stats stat, inc_callback_t callback)
Sets a callback to be triggered upon increment of stats.
const Time & last_packet_received() const
void session_stats_set_verbose(const bool v)
void update_last_packet_received(const Time &now)
static const char * stat_name(const size_t type)
count_t get_stat(const size_t type) const
Support deferred server-side state creation when client connects.
count_t transport_bytes_in
Data(count_t transport_bytes_in_arg, count_t transport_bytes_out_arg, count_t tun_bytes_in_arg, count_t tun_bytes_out_arg, count_t transport_pkts_in_arg, count_t transport_pkts_out_arg, count_t tun_pkts_in_arg, count_t tun_pkts_out_arg)
count_t transport_pkts_in
Data(count_t transport_bytes_in_arg, count_t transport_bytes_out_arg, count_t tun_bytes_in_arg, count_t tun_bytes_out_arg)
count_t transport_bytes_out
Data operator-(const Data &rhs) const
count_t transport_pkts_out
Data(count_t transport_bytes_in_arg, count_t transport_bytes_out_arg)
virtual Data dco_transport_stats_delta()=0
RCPtr< DCOTransportSource > Ptr