static WebStats() { CMOptions = new WebStatsOptions(); EventSink.ServerStarted += () => _Started = true; Clients = new List<WebStatsClient>(); Snapshot = new Dictionary<IPAddress, List<NetState>>(); Stats = new BinaryDataStore<string, WebStatsEntry>(VitaNexCore.SavesDirectory + "/WebStats", "Stats") { OnSerialize = SerializeStats, OnDeserialize = DeserializeStats }; TimeSpan uptime = DateTime.UtcNow - Clock.ServerStart; Stats.Add("uptime", new WebStatsEntry(uptime, false)); Stats.Add("uptime_peak", new WebStatsEntry(uptime, true)); Stats.Add("online", new WebStatsEntry(0, false)); Stats.Add("online_max", new WebStatsEntry(0, false)); Stats.Add("online_peak", new WebStatsEntry(0, true)); Stats.Add("unique", new WebStatsEntry(0, false)); Stats.Add("unique_max", new WebStatsEntry(0, false)); Stats.Add("unique_peak", new WebStatsEntry(0, true)); Stats.Add("items", new WebStatsEntry(0, false)); Stats.Add("items_max", new WebStatsEntry(0, false)); Stats.Add("items_peak", new WebStatsEntry(0, true)); Stats.Add("mobiles", new WebStatsEntry(0, false)); Stats.Add("mobiles_max", new WebStatsEntry(0, false)); Stats.Add("mobiles_peak", new WebStatsEntry(0, true)); Stats.Add("guilds", new WebStatsEntry(0, false)); Stats.Add("guilds_max", new WebStatsEntry(0, false)); Stats.Add("guilds_peak", new WebStatsEntry(0, true)); OnConnected += HandleConnection; _ActivityTimer = PollTimer.FromSeconds( 60.0, () => { if (!_Listening || Listener == null || Listener.Server == null || !Listener.Server.IsBound) { _Listening = false; ListenAsync(); } Clients.RemoveRange(c => !c.Connected); }, () => CMOptions.ModuleEnabled && Clients.Count > 0); }
static WebStats() { CMOptions = new WebStatsOptions(); EventSink.ServerStarted += () => _Started = true; Clients = new List <WebStatsClient>(); Snapshot = new Dictionary <IPAddress, List <NetState> >(); Stats = new BinaryDataStore <string, WebStatsEntry>(VitaNexCore.SavesDirectory + "/WebStats", "Stats") { OnSerialize = SerializeStats, OnDeserialize = DeserializeStats }; TimeSpan uptime = DateTime.UtcNow - Clock.ServerStart; Stats.Add("uptime", new WebStatsEntry(uptime, false)); Stats.Add("uptime_peak", new WebStatsEntry(uptime, true)); Stats.Add("online", new WebStatsEntry(0, false)); Stats.Add("online_max", new WebStatsEntry(0, false)); Stats.Add("online_peak", new WebStatsEntry(0, true)); Stats.Add("unique", new WebStatsEntry(0, false)); Stats.Add("unique_max", new WebStatsEntry(0, false)); Stats.Add("unique_peak", new WebStatsEntry(0, true)); Stats.Add("items", new WebStatsEntry(0, false)); Stats.Add("items_max", new WebStatsEntry(0, false)); Stats.Add("items_peak", new WebStatsEntry(0, true)); Stats.Add("mobiles", new WebStatsEntry(0, false)); Stats.Add("mobiles_max", new WebStatsEntry(0, false)); Stats.Add("mobiles_peak", new WebStatsEntry(0, true)); Stats.Add("guilds", new WebStatsEntry(0, false)); Stats.Add("guilds_max", new WebStatsEntry(0, false)); Stats.Add("guilds_peak", new WebStatsEntry(0, true)); OnConnected += HandleConnection; _ActivityTimer = PollTimer.FromSeconds( 60.0, () => { if (!_Listening || Listener == null || Listener.Server == null || !Listener.Server.IsBound) { _Listening = false; ListenAsync(); } Clients.RemoveRange(c => !c.Connected); }, () => CMOptions.ModuleEnabled && Clients.Count > 0); }
static WebStats() { CMOptions = new WebStatsOptions(); Snapshot = new Dictionary <IPAddress, List <Mobile> >(); Stats = new BinaryDataStore <string, WebStatsEntry>(VitaNexCore.SavesDirectory + "/WebStats", "Stats") { Async = true, OnSerialize = SerializeStats, OnDeserialize = DeserializeStats }; _Json = new Dictionary <string, object>(); var uptime = VitaNexCore.UpTime; Stats["uptime"] = new WebStatsEntry(uptime, false); Stats["uptime_peak"] = new WebStatsEntry(uptime, true); Stats["online"] = new WebStatsEntry(0, false); Stats["online_max"] = new WebStatsEntry(0, false); Stats["online_peak"] = new WebStatsEntry(0, true); Stats["unique"] = new WebStatsEntry(0, false); Stats["unique_max"] = new WebStatsEntry(0, false); Stats["unique_peak"] = new WebStatsEntry(0, true); Stats["items"] = new WebStatsEntry(0, false); Stats["items_max"] = new WebStatsEntry(0, false); Stats["items_peak"] = new WebStatsEntry(0, true); Stats["mobiles"] = new WebStatsEntry(0, false); Stats["mobiles_max"] = new WebStatsEntry(0, false); Stats["mobiles_peak"] = new WebStatsEntry(0, true); Stats["guilds"] = new WebStatsEntry(0, false); Stats["guilds_max"] = new WebStatsEntry(0, false); Stats["guilds_peak"] = new WebStatsEntry(0, true); Stats["memory"] = new WebStatsEntry(0L, false); Stats["memory_max"] = new WebStatsEntry(0L, false); Stats["memory_peak"] = new WebStatsEntry(0L, true); }