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> 133 virtual void tick() =0;
double average
Definition: network_throttle.hpp:87
::std::string string
Definition: gtest-port.h:1097
double window
Definition: network_throttle.hpp:88
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
virtual network_speed_kbps get_target_speed()=0
virtual void handle_trafic_tcp(size_t packet_size)=0
double network_time_seconds
Definition: network_throttle.hpp:78
static boost::mutex m_lock_get_global_throttle_out
Definition: network_throttle.hpp:109
double network_MB
Definition: network_throttle.hpp:79
double network_speed_kbps
Definition: network_throttle.hpp:76
virtual network_time_seconds get_sleep_time(size_t packet_size) const =0
unsigned __int64 uint64_t
Definition: stdint.h:136
static boost::mutex m_lock_get_global_throttle_in
Definition: network_throttle.hpp:107
Definition: connection_basic.cpp:85
virtual void set_target_speed(network_speed_kbps target)=0
virtual double get_time_seconds() const =0
double recomendetDataSize
Definition: network_throttle.hpp:90
Definition: network_throttle.hpp:98
static i_network_throttle & get_global_throttle_inreq()
ditto ; use lock ... use m_lock_get_global_throttle_inreq obviously
Definition: network_throttle.cpp:83
double delay
Definition: network_throttle.hpp:89
double network_speed_bps
Definition: network_throttle.hpp:77
Definition: network_throttle.hpp:125
TODO: (mj-xmr) This will be reduced in an another PR.
Definition: byte_slice.h:39
static boost::mutex m_lock_get_global_throttle_inreq
Definition: network_throttle.hpp:108
Definition: network_throttle.hpp:86
time
Definition: gen_wide_data.py:40
static i_network_throttle & get_global_throttle_out()
ditto ; use lock ... use m_lock_get_global_throttle_out obviously
Definition: network_throttle.cpp:89
virtual void set_name(const std::string &name)=0
virtual void get_stats(uint64_t &total_packets, uint64_t &total_bytes) const =0
const char * name
Definition: options.c:30
virtual void handle_trafic_exact(size_t packet_size)=0
virtual void logger_handle_net(const std::string &filename, double time, size_t size)=0
virtual size_t get_recommended_size_of_planned_transport() const =0
virtual void calculate_times(size_t packet_size, calculate_times_struct &cts, bool dbg, double force_window) const =0
calculate_times_struct calculate_times_struct
Definition: network_throttle.hpp:92
virtual network_time_seconds get_sleep_time_after_tick(size_t packet_size)=0
Definition: connection_basic.hpp:101