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...
|
|
Keeps track of average and instantaneous transfer speed.
Also detects data transfer inactivity and other transfer timeouts.
◆ show_progress_t
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 |
◆ DataSpeed() [1/2]
Arc::DataSpeed::DataSpeed |
( |
time_t |
base = DATASPEED_AVERAGING_PERIOD | ) |
|
Constructor.
- Parameters
-
base | time period used to average values (default 1 minute). |
◆ DataSpeed() [2/2]
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). |
◆ ~DataSpeed()
Arc::DataSpeed::~DataSpeed |
( |
| ) |
|
◆ get_max_inactivity_time()
time_t Arc::DataSpeed::get_max_inactivity_time |
( |
| ) |
|
|
inline |
◆ hold()
void Arc::DataSpeed::hold |
( |
bool |
disable | ) |
|
Turn and off off speed control.
◆ max_inactivity_time_failure()
bool Arc::DataSpeed::max_inactivity_time_failure |
( |
| ) |
|
|
inline |
Check if maximal inactivity time error was triggered.
◆ min_average_speed_failure()
bool Arc::DataSpeed::min_average_speed_failure |
( |
| ) |
|
|
inline |
Check if minimal average speed error was triggered.
◆ min_speed_failure()
bool Arc::DataSpeed::min_speed_failure |
( |
| ) |
|
|
inline |
Check if minimal speed error was triggered.
◆ reset()
void Arc::DataSpeed::reset |
( |
| ) |
|
Reset all counters and triggers.
◆ set_base()
void Arc::DataSpeed::set_base |
( |
time_t |
base_ = DATASPEED_AVERAGING_PERIOD | ) |
|
Set averaging time period (default 1 minute).
◆ set_max_data()
void Arc::DataSpeed::set_max_data |
( |
unsigned long long int |
max = 0 | ) |
|
Set amount of data (in bytes) to be transferred. Used in verbose messages.
◆ set_max_inactivity_time()
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. |
◆ set_min_average_speed()
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. |
◆ set_min_speed()
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. |
◆ set_progress_indicator()
Specify an external function to print verbose messages.
If not specified an internal function is used.
- Parameters
-
func | pointer to function which prints information. |
◆ transfer()
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
◆ transferred_size()
unsigned long long int Arc::DataSpeed::transferred_size |
( |
| ) |
|
|
inline |
Returns number of bytes transferred so far (this object knows about).
◆ verbose() [1/3]
void Arc::DataSpeed::verbose |
( |
bool |
val | ) |
|
Set true to activate printing transfer information during transfer.
◆ verbose() [2/3]
void Arc::DataSpeed::verbose |
( |
const std::string & |
prefix | ) |
|
Activate printing transfer information using 'prefix' at the beginning of every string.
◆ verbose() [3/3]
bool Arc::DataSpeed::verbose |
( |
| ) |
|
Check if speed information is going to be printed.
The documentation for this class was generated from the following file: