/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: SocketStatChannel.hpp Date: 2021-10-31 Author: Reece ***/ #pragma once #include "SocketStatAverageBps.hpp" namespace Aurora::IO::Net { struct SocketStatChannel { SocketStatAverageBps bandwidth; AuUInt64 total; // Interpolated bytes per second, may be less than expected (returning frame -1) inline AuUInt32 GetAverageBytesPerSecond() { return bandwidth.GetLastBytesPerSecond(); } inline AuUInt32 GetBytesPerSecond() { return bandwidth.GetBytesPerSecondNormalized(Time::CurrentClockMS()); } inline void Add(AuUInt32 bytes) { total += bytes; bandwidth.Add(Time::CurrentClockMS(), bytes); } }; }