71 lines
1.5 KiB
C++
71 lines
1.5 KiB
C++
/***
|
|
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: AuSocketStats.cpp
|
|
Date: 2022-12-06
|
|
Author: Reece
|
|
***/
|
|
#include "Networking.hpp"
|
|
#include "AuSocketStats.hpp"
|
|
|
|
namespace Aurora::IO::Net
|
|
{
|
|
void SocketStats::AddBytes(AuUInt32 uBytes)
|
|
{
|
|
this->Start();
|
|
this->calculator.AddData(uBytes);
|
|
}
|
|
|
|
AuInt64 SocketStats::GetFirstTickTimeMS()
|
|
{
|
|
return this->uFirstTime;
|
|
}
|
|
|
|
AuInt64 SocketStats::GetLastTickTimeMS()
|
|
{
|
|
return this->calculator.GetLastFrameTimeWall();
|
|
}
|
|
|
|
AuUInt64 SocketStats::GetTotalBytesTransferred()
|
|
{
|
|
return this->calculator.GetTotalStats();
|
|
}
|
|
|
|
double SocketStats::GetApproximatedThroughput()
|
|
{
|
|
return this->calculator.GetEstimatedHertz();
|
|
}
|
|
|
|
AuUInt64 SocketStats::GetUptimeNS()
|
|
{
|
|
if (auto uStartTime = this->uStartSteadyTime)
|
|
{
|
|
if (auto uEndTime = this->uEndSteadyTime)
|
|
{
|
|
return uEndTime - uStartTime;
|
|
}
|
|
else
|
|
{
|
|
return AuTime::SteadyClockNS() - uStartTime;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
void SocketStats::Start()
|
|
{
|
|
if (!this->uFirstTime)
|
|
{
|
|
this->uFirstTime = AuTime::CurrentClockMS();
|
|
this->uStartSteadyTime = AuTime::SteadyClockNS();
|
|
}
|
|
}
|
|
|
|
void SocketStats::End()
|
|
{
|
|
this->uEndSteadyTime = AuTime::SteadyClockNS();
|
|
}
|
|
} |