80 lines
1.6 KiB
C++
80 lines
1.6 KiB
C++
#ifndef _SOCKET_TIMEINFO_HPP_
|
|
#define _SOCKET_TIMEINFO_HPP_
|
|
#include <stdio.h>
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
|
|
class TimeInfo
|
|
{
|
|
public:
|
|
TimeInfo(void);
|
|
TimeInfo(const TimeInfo &timeInfo);
|
|
virtual ~TimeInfo();
|
|
TimeInfo &operator=(const TimeInfo &someTimeInfo);
|
|
void startTime(void);
|
|
void endTime(DWORD byteCount);
|
|
operator String(void)const;
|
|
private:
|
|
double mSecondsElapsed;
|
|
double mBytesPerSecond;
|
|
DWORD mBytesReceived;
|
|
};
|
|
|
|
inline
|
|
TimeInfo::TimeInfo(void)
|
|
: mSecondsElapsed(0.00), mBytesPerSecond(0.00), mBytesReceived(0)
|
|
{
|
|
}
|
|
|
|
inline
|
|
TimeInfo::TimeInfo(const TimeInfo &someTimeInfo)
|
|
{
|
|
*this=someTimeInfo;
|
|
}
|
|
|
|
inline
|
|
TimeInfo::~TimeInfo()
|
|
{
|
|
}
|
|
|
|
inline
|
|
TimeInfo &TimeInfo::operator=(const TimeInfo &someTimeInfo)
|
|
{
|
|
mSecondsElapsed=someTimeInfo.mSecondsElapsed;
|
|
mBytesPerSecond=someTimeInfo.mBytesPerSecond;
|
|
mBytesReceived=someTimeInfo.mBytesReceived;
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
void TimeInfo::startTime(void)
|
|
{
|
|
mSecondsElapsed=(double)::GetTickCount();
|
|
mBytesPerSecond=0;
|
|
mBytesReceived=0;
|
|
}
|
|
|
|
inline
|
|
void TimeInfo::endTime(DWORD byteCount)
|
|
{
|
|
mBytesReceived=byteCount;
|
|
mSecondsElapsed=(double)::GetTickCount()-mSecondsElapsed;
|
|
mSecondsElapsed/=1000.00;
|
|
if(0.00==mSecondsElapsed)mBytesPerSecond=byteCount;
|
|
else mBytesPerSecond=(1.00/mSecondsElapsed)*(double)byteCount;
|
|
}
|
|
|
|
inline
|
|
TimeInfo::operator String(void)const
|
|
{
|
|
String stringValue;
|
|
|
|
::sprintf(stringValue,"%ld bytes transferred in %lf seconds. (%lf KBS)",mBytesReceived,mSecondsElapsed,mBytesPerSecond/1000.00);
|
|
return stringValue;
|
|
}
|
|
#endif
|