using FishNet.Managing.Timing;
using GameKit.Dependencies.Utilities;
namespace FishNet.Editing.NetworkProfiler
{
///
/// Data for a profiled tick.
///
internal class ProfiledTickData : IResettable
{
///
/// Tick this is for.
///
public uint Tick;
///
/// Traffic collection for the server.
///
public BidirectionalNetworkTraffic ServerTraffic;
///
/// Traffic collection for the client.
///
public BidirectionalNetworkTraffic ClientTraffic;
///
/// Initializes and returns if successful.
///
public bool TryInitialize(uint tick, BidirectionalNetworkTraffic serverTraffic, BidirectionalNetworkTraffic clientTraffic)
{
Tick = tick;
ServerTraffic = serverTraffic.CloneUsingCache();
ClientTraffic = clientTraffic.CloneUsingCache();
return ServerTraffic != null && ClientTraffic != null;
}
///
/// Resets all values and stores to caches as needed.
///
public void ResetState()
{
Tick = TimeManager.UNSET_TICK;
ResettableObjectCaches.StoreAndDefault(ref ServerTraffic);
ResettableObjectCaches.StoreAndDefault(ref ClientTraffic);
}
public void InitializeState() { }
}
}