38 #ifndef INCLUDED_p2p_network_throttle_hpp 39 #define INCLUDED_p2p_network_throttle_hpp 41 #include <boost/asio.hpp> 44 #include <boost/noncopyable.hpp> 45 #include <boost/shared_ptr.hpp> 48 #include <boost/asio.hpp> 49 #include <boost/array.hpp> 50 #include <boost/noncopyable.hpp> 51 #include <boost/shared_ptr.hpp> 52 #include <boost/enable_shared_from_this.hpp> 53 #include <boost/interprocess/detail/atomic.hpp> 54 #include <boost/thread/thread.hpp> 58 #include "net/net_utils_base.h" 59 #include "misc_log_ex.h" 60 #include <boost/lambda/bind.hpp> 61 #include <boost/lambda/lambda.hpp> 62 #include <boost/uuid/random_generator.hpp> 63 #include <boost/chrono.hpp> 64 #include <boost/utility/value_init.hpp> 65 #include <boost/asio/deadline_timer.hpp> 66 #include <boost/date_time/posix_time/posix_time.hpp> 67 #include <boost/thread/thread.hpp> 68 #include "misc_language.h" 69 #include "pragma_comp_defs.h" 102 namespace cryptonote {
class cryptonote_protocol_handler_base; }
146 virtual void tick() =0;
virtual void set_real_target_speed(network_speed_kbps real_target)=0
double average
Definition: network_throttle.hpp:94
double window
Definition: network_throttle.hpp:95
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:80
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:85
static boost::mutex m_lock_get_global_throttle_out
Definition: network_throttle.hpp:118
Holds cryptonote related classes and helpers.
Definition: db_bdb.cpp:225
time_t time
Definition: blockchain.cpp:89
double network_MB
Definition: network_throttle.hpp:86
static int xxx
Definition: network_throttle.hpp:124
double network_speed_kbps
Definition: network_throttle.hpp:84
virtual network_time_seconds get_sleep_time(size_t packet_size) const =0
static boost::mutex m_lock_get_global_throttle_in
Definition: network_throttle.hpp:116
Definition: connection_basic.cpp:111
virtual void set_target_speed(network_speed_kbps target)=0
virtual double get_time_seconds() const =0
double recomendetDataSize
Definition: network_throttle.hpp:97
Definition: network_throttle.hpp:107
static i_network_throttle & get_global_throttle_inreq()
ditto ; use lock ... use m_lock_get_global_throttle_inreq obviously
Definition: network_throttle.cpp:87
Definition: cryptonote_protocol_handler.h:64
double delay
Definition: network_throttle.hpp:96
Definition: network_throttle.hpp:137
Definition: connection_basic.cpp:91
static boost::mutex m_lock_get_global_throttle_inreq
Definition: network_throttle.hpp:117
Definition: network_throttle.hpp:93
static i_network_throttle & get_global_throttle_out()
ditto ; use lock ... use m_lock_get_global_throttle_out obviously
Definition: network_throttle.cpp:93
virtual void set_name(const std::string &name)=0
const char * name
Definition: simplewallet.cpp:180
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:99
virtual network_time_seconds get_sleep_time_after_tick(size_t packet_size)=0
Definition: connection_basic.hpp:86