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() { } } }