Keeps track of average and instantaneous transfer speed.
More...
#include <arc/data/DataSpeed.h>
|
typedef 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. More...
|
|
|
| DataSpeed (time_t base=DATASPEED_AVERAGING_PERIOD) |
| Constructor. More...
|
|
| DataSpeed (unsigned long long int min_speed, time_t min_speed_time, unsigned long long int min_average_speed, time_t max_inactivity_time, time_t base=DATASPEED_AVERAGING_PERIOD) |
| Constructor. More...
|
|
| ~DataSpeed () |
| Destructor.
|
|
void | verbose (bool val) |
| Set true to activate printing transfer information during transfer.
|
|
void | verbose (const std::string &prefix) |
| Activate printing transfer information using 'prefix' at the beginning of every string.
|
|
bool | verbose () |
| Check if speed information is going to be printed.
|
|
void | set_min_speed (unsigned long long int min_speed, time_t min_speed_time) |
| Set minimal allowed speed in bytes per second. More...
|
|
void | set_min_average_speed (unsigned long long int min_average_speed) |
| Set minimal average speed in bytes per second. More...
|
|
void | set_max_inactivity_time (time_t max_inactivity_time) |
| Set inactivity timeout. More...
|
|
time_t | get_max_inactivity_time () |
| Get inactivity timeout.
|
|
void | set_base (time_t base_=DATASPEED_AVERAGING_PERIOD) |
| Set averaging time period (default 1 minute).
|
|
void | set_max_data (unsigned long long int max=0) |
| Set amount of data (in bytes) to be transferred. Used in verbose messages.
|
|
void | set_progress_indicator (show_progress_t func=NULL) |
| Specify an external function to print verbose messages. More...
|
|
void | reset () |
| Reset all counters and triggers.
|
|
bool | transfer (unsigned long long int n=0) |
| Inform object that an amount of data has been transferred. More...
|
|
void | hold (bool disable) |
| Turn and off off speed control.
|
|
bool | min_speed_failure () |
| Check if minimal speed error was triggered.
|
|
bool | min_average_speed_failure () |
| Check if minimal average speed error was triggered.
|
|
bool | max_inactivity_time_failure () |
| Check if maximal inactivity time error was triggered.
|
|
unsigned long long int | transferred_size () |
| Returns number of bytes transferred so far (this object knows about).
|
|
Keeps track of average and instantaneous transfer speed.
Also detects data transfer inactivity and other transfer timeouts.
typedef void(* Arc::DataSpeed::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.
A function with this signature can be passed to set_progress_indicator() to enable user-defined output of transfer progress.
- Parameters
-
o | FILE object connected to stderr |
s | prefix set in verbose(const std::string&) |
t | time in seconds since the start of the transfer |
all | number of bytes transferred so far |
max | total amount of bytes to be transferred (set in set_max_data()) |
instant | instantaneous transfer rate in bytes per second |
average | average transfer rate in bytes per second |
Arc::DataSpeed::DataSpeed |
( |
time_t |
base = DATASPEED_AVERAGING_PERIOD | ) |
|
Constructor.
- Parameters
-
base | time period used to average values (default 1 minute). |
Arc::DataSpeed::DataSpeed |
( |
unsigned long long int |
min_speed, |
|
|
time_t |
min_speed_time, |
|
|
unsigned long long int |
min_average_speed, |
|
|
time_t |
max_inactivity_time, |
|
|
time_t |
base = DATASPEED_AVERAGING_PERIOD |
|
) |
| |
Constructor.
- Parameters
-
min_speed | minimal allowed speed (bytes per second). If speed drops and holds below threshold for min_speed_time seconds error is triggered. |
min_speed_time | time over which to calculate min_speed. |
min_average_speed | minimal average speed (bytes per second) to trigger error. Averaged over whole current transfer time. |
max_inactivity_time | if no data is passing for specified amount of time, error is triggered. |
base | time period used to average values (default 1 minute). |
void Arc::DataSpeed::set_max_inactivity_time |
( |
time_t |
max_inactivity_time | ) |
|
Set inactivity timeout.
- Parameters
-
max_inactivity_time | - if no data is passing for specified amount of time, error is triggered. |
void Arc::DataSpeed::set_min_average_speed |
( |
unsigned long long int |
min_average_speed | ) |
|
Set minimal average speed in bytes per second.
- Parameters
-
min_average_speed | minimal average speed (bytes per second) to trigger error. Averaged over whole current transfer time. |
void Arc::DataSpeed::set_min_speed |
( |
unsigned long long int |
min_speed, |
|
|
time_t |
min_speed_time |
|
) |
| |
Set minimal allowed speed in bytes per second.
- Parameters
-
min_speed | minimal allowed speed (bytes per second). If speed drops and holds below threshold for min_speed_time seconds error is triggered. |
min_speed_time | time over which to calculate min_speed. |
Specify an external function to print verbose messages.
If not specified an internal function is used.
- Parameters
-
func | pointer to function which prints information. |
bool Arc::DataSpeed::transfer |
( |
unsigned long long int |
n = 0 | ) |
|
Inform object that an amount of data has been transferred.
All errors are triggered by this method. To make them work the application must call this method periodically even with zero value.
- Parameters
-
n | amount of data transferred in bytes. |
- Returns
- false if transfer rate is below limits
The documentation for this class was generated from the following file: