37#ifndef INCLUDED_network_throttle_hpp
38#define INCLUDED_network_throttle_hpp
40#include <boost/asio.hpp>
43#include <boost/noncopyable.hpp>
44#include <boost/shared_ptr.hpp>
46#include <boost/array.hpp>
47#include <boost/enable_shared_from_this.hpp>
48#include <boost/thread/thread.hpp>
54#include <boost/lambda/bind.hpp>
55#include <boost/lambda/lambda.hpp>
56#include <boost/uuid/random_generator.hpp>
57#include <boost/chrono.hpp>
58#include <boost/utility/value_init.hpp>
59#include <boost/asio/deadline_timer.hpp>
60#include <boost/date_time/posix_time/posix_time.hpp>
Definition network_throttle.hpp:125
virtual void get_stats(uint64_t &total_packets, uint64_t &total_bytes) const =0
virtual network_time_seconds get_sleep_time_after_tick(size_t packet_size)=0
virtual void logger_handle_net(const std::string &filename, double time, size_t size)=0
virtual network_speed_kbps get_target_speed()=0
virtual double get_time_seconds() const =0
virtual void calculate_times(size_t packet_size, calculate_times_struct &cts, bool dbg, double force_window) const =0
virtual void handle_trafic_tcp(size_t packet_size)=0
virtual void set_target_speed(network_speed_kbps target)=0
virtual size_t get_recommended_size_of_planned_transport() const =0
virtual network_time_seconds get_sleep_time(size_t packet_size) const =0
virtual void handle_trafic_exact(size_t packet_size)=0
virtual void set_name(const std::string &name)=0
Definition network_throttle.hpp:98
friend class connection_basic
Definition network_throttle.hpp:111
static boost::mutex m_lock_get_global_throttle_inreq
Definition network_throttle.hpp:108
friend class connection_basic_pimpl
Definition network_throttle.hpp:112
static i_network_throttle & get_global_throttle_inreq()
ditto ; use lock ... use m_lock_get_global_throttle_inreq obviously
Definition network_throttle.cpp:83
static boost::mutex m_lock_get_global_throttle_in
Definition network_throttle.hpp:107
static i_network_throttle & get_global_throttle_in()
singleton ; for friend class ; caller MUST use proper locks! like m_lock_get_global_throttle_in
Definition network_throttle.cpp:76
static i_network_throttle & get_global_throttle_out()
ditto ; use lock ... use m_lock_get_global_throttle_out obviously
Definition network_throttle.cpp:89
static boost::mutex m_lock_get_global_throttle_out
Definition network_throttle.hpp:109
Definition abstract_http_client.h:36
double network_speed_kbps
Definition network_throttle.hpp:76
double network_time_seconds
Definition network_throttle.hpp:78
double network_MB
Definition network_throttle.hpp:79
double network_speed_bps
Definition network_throttle.hpp:77
TODO: (mj-xmr) This will be reduced in an another PR.
Definition byte_slice.h:40
const char * name
Definition options.c:30
unsigned __int64 uint64_t
Definition stdint.h:136
Definition network_throttle.hpp:86
double window
Definition network_throttle.hpp:88
double average
Definition network_throttle.hpp:87
double delay
Definition network_throttle.hpp:89
double recomendetDataSize
Definition network_throttle.hpp:90