3 #ifndef __ARC_DATASPEED_H__ 4 #define __ARC_DATASPEED_H__ 8 #include <arc/Logger.h> 10 #define DATASPEED_AVERAGING_PERIOD 60 24 time_t last_activity_time;
25 unsigned long long int N;
26 unsigned long long int Nall;
27 unsigned long long int Nmax;
28 time_t first_speed_failure;
32 time_t min_speed_time;
33 time_t max_inactivity_time;
34 unsigned long long int min_speed;
35 unsigned long long int min_average_speed;
37 std::string verbose_prefix;
39 bool min_speed_failed;
40 bool min_average_speed_failed;
41 bool max_inactivity_time_failed;
60 unsigned long long int all,
61 unsigned long long int max,
62 double instant,
double average);
65 void print_statistics(FILE *o, time_t t);
71 DataSpeed(time_t base = DATASPEED_AVERAGING_PERIOD);
84 DataSpeed(
unsigned long long int min_speed, time_t min_speed_time,
85 unsigned long long int min_average_speed,
86 time_t max_inactivity_time,
87 time_t base = DATASPEED_AVERAGING_PERIOD);
93 void verbose(
const std::string& prefix);
104 time_t min_speed_time);
120 void set_base(time_t base_ = DATASPEED_AVERAGING_PERIOD);
138 bool transfer(
unsigned long long int n = 0);
140 void hold(
bool disable);
143 return min_speed_failed;
147 return min_average_speed_failed;
151 return max_inactivity_time_failed;
161 #endif // __ARC_DATASPEED_H__ Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
void set_min_average_speed(unsigned long long int min_average_speed)
Set minimal average speed in bytes per second.
void set_progress_indicator(show_progress_t func=NULL)
Specify an external function to print verbose messages.
Keeps track of average and instantaneous transfer speed.
Definition: DataSpeed.h:20
bool verbose()
Check if speed information is going to be printed.
unsigned long long int transferred_size()
Returns number of bytes transferred so far (this object knows about).
Definition: DataSpeed.h:154
time_t get_max_inactivity_time()
Get inactivity timeout.
Definition: DataSpeed.h:118
A logger class.
Definition: Logger.h:493
bool min_speed_failure()
Check if minimal speed error was triggered.
Definition: DataSpeed.h:142
DataSpeed(time_t base=DATASPEED_AVERAGING_PERIOD)
Constructor.
void set_base(time_t base_=DATASPEED_AVERAGING_PERIOD)
Set averaging time period (default 1 minute).
void set_max_inactivity_time(time_t max_inactivity_time)
Set inactivity timeout.
void set_min_speed(unsigned long long int min_speed, time_t min_speed_time)
Set minimal allowed speed in bytes per second.
void(* show_progress_t)(FILE *o, const char *s, unsigned int t, unsigned long long int all, unsigned long long int max, double instant, double average)
Callback for output of transfer status.
Definition: DataSpeed.h:59
void reset()
Reset all counters and triggers.
bool max_inactivity_time_failure()
Check if maximal inactivity time error was triggered.
Definition: DataSpeed.h:150
bool transfer(unsigned long long int n=0)
Inform object that an amount of data has been transferred.
void hold(bool disable)
Turn and off off speed control.
bool min_average_speed_failure()
Check if minimal average speed error was triggered.
Definition: DataSpeed.h:146
void set_max_data(unsigned long long int max=0)
Set amount of data (in bytes) to be transferred. Used in verbose messages.