[go: up one dir, main page]

Menu

[r2]: / dtorrent / trunk / rate.cpp  Maximize  Restore  History

Download this file

46 lines (38 with data), 972 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "rate.h"
void Rate::StartTimer()
{
if( !m_last_timestamp ) time(&m_last_timestamp);
}
void Rate::StopTimer()
{
if( !m_last_timestamp ){
m_total_timeused += (time((time_t*) 0) - m_last_timestamp);
m_last_timestamp = 0;
}
}
void Rate::CountAdd(size_t nbytes)
{
m_count_bytes += nbytes;
}
void Rate::operator=(const Rate &ra)
{
m_last_timestamp = time((time_t*) 0);
m_count_bytes = ra.m_count_bytes;
}
size_t Rate::RateMeasure() const
{
time_t timeused = m_total_timeused;
if( m_last_timestamp ) timeused += (time((time_t*) 0) - m_last_timestamp);
if( timeused < 1 ) timeused = 1;
return (size_t)(m_count_bytes / timeused);
}
size_t Rate::RateMeasure(const Rate &ra_to) const
{
time_t timeused = time((time_t*) 0) - m_last_timestamp;
if( timeused < 1 ) timeused = 1;
return (size_t)((ra_to.m_count_bytes - m_count_bytes) / timeused);
}
time_t Rate::TimeUsed(const time_t *pnow) const
{
return (*pnow - m_last_timestamp);
}