public InstanceStatistics(System.Net.IPEndPoint serverEndPoint, Server server, Instance instance, ServerStats serverStats, State serviceState) { string memcachedFileVersion = null; if (File.Exists(Configuration.Default.MemcachedBinarySource) == true) { memcachedFileVersion = FileVersionInfo.GetVersionInfo(Configuration.Default.MemcachedBinarySource).FileVersion; } _serverName = server.ServerName; _instanceName = instance.DisplayName; _serviceState = serviceState; Instance = instance; _statusIconIndex = StatusIconIndex.CommunicationError; _statusTooltip = Constants.TooltipCommunicationError; if (serverStats != null && serverStats.GetRaw(serverEndPoint, StatItem.Version) != null) { foreach (StatItem statItem in Enum.GetValues(typeof(Enyim.Caching.Memcached.StatItem))) { switch (statItem) { case StatItem.BytesRead: _bytesRead = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.BytesWritten: _bytesWritten = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.ConnectionCount: _connectionCount = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.ConnectionStructures: _connectionStructures = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.GetCount: _getCount = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.GetHits: _getHits = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.GetMisses: _getMisses = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.ItemCount: _itemCount = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.MaxBytes: _maxBytes = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.ServerTime: string serverTimeRaw = serverStats.GetRaw(serverEndPoint, statItem); int serverTimeSeconds; if (serverTimeRaw != null && Int32.TryParse(serverTimeRaw, out serverTimeSeconds) == true) { _serverTime = new DateTime(1970, 1, 1).AddSeconds(serverTimeSeconds).ToLocalTime().ToString(); } else { _serverTime = "<unknown>"; } break; case StatItem.SetCount: _setCount = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.TotalConnections: _totalConnections = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.TotalItems: _totalItems = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.Uptime: string uptimeRaw = serverStats.GetRaw(serverEndPoint, statItem); int uptimeSeconds; if (uptimeRaw != null && Int32.TryParse(uptimeRaw, out uptimeSeconds) == true) { _uptime = TimeSpan.FromSeconds(uptimeSeconds).ToString(); } else { _uptime = "<unknown>"; } break; case StatItem.UsedBytes: _usedBytes = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.Version: _version = serverStats.GetRaw(serverEndPoint, statItem); break; } } } if (_serviceState != State.Running && _serviceState != State.Unknown) { _statusIconIndex = StatusIconIndex.ServiceDown; _statusTooltip = Constants.TooltipServiceDown; } else if (_serviceState == State.Unknown) { _statusIconIndex = StatusIconIndex.ServiceNonControllable; _statusTooltip = Constants.TooltipServiceNonControllable; } else if (_version == null || _version == String.Empty) { _statusIconIndex = StatusIconIndex.CommunicationError; _statusTooltip = Constants.TooltipCommunicationError; } else if (memcachedFileVersion != null && memcachedFileVersion != _version) { _statusIconIndex = StatusIconIndex.NeedsUpdate; _statusTooltip = Constants.TooltipNeedsUpdate; } else { _statusIconIndex = StatusIconIndex.Up; _statusTooltip = Constants.TooltipUp; } }
public InstanceStatistics(System.Net.IPEndPoint serverEndPoint, Server server, Instance instance, ServerStats serverStats, State serviceState) { string memcachedFileVersion = null; if (File.Exists(Configuration.Default.MemcachedBinarySource) == true) memcachedFileVersion = FileVersionInfo.GetVersionInfo(Configuration.Default.MemcachedBinarySource).FileVersion; _serverName = server.ServerName; _instanceName = instance.DisplayName; _serviceState = serviceState; Instance = instance; _statusIconIndex = StatusIconIndex.CommunicationError; _statusTooltip = Constants.TooltipCommunicationError; if (serverStats != null && serverStats.GetRaw(serverEndPoint, StatItem.Version) != null) { foreach (StatItem statItem in Enum.GetValues(typeof(Enyim.Caching.Memcached.StatItem))) { switch (statItem) { case StatItem.BytesRead: _bytesRead = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.BytesWritten: _bytesWritten = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.ConnectionCount: _connectionCount = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.ConnectionStructures: _connectionStructures = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.GetCount: _getCount = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.GetHits: _getHits = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.GetMisses: _getMisses = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.ItemCount: _itemCount = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.MaxBytes: _maxBytes = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.ServerTime: string serverTimeRaw = serverStats.GetRaw(serverEndPoint, statItem); int serverTimeSeconds; if (serverTimeRaw != null && Int32.TryParse(serverTimeRaw, out serverTimeSeconds) == true) _serverTime = new DateTime(1970, 1, 1).AddSeconds(serverTimeSeconds).ToLocalTime().ToString(); else _serverTime = "<unknown>"; break; case StatItem.SetCount: _setCount = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.TotalConnections: _totalConnections = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.TotalItems: _totalItems = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.Uptime: string uptimeRaw = serverStats.GetRaw(serverEndPoint, statItem); int uptimeSeconds; if (uptimeRaw != null && Int32.TryParse(uptimeRaw, out uptimeSeconds) == true) _uptime = TimeSpan.FromSeconds(uptimeSeconds).ToString(); else _uptime = "<unknown>"; break; case StatItem.UsedBytes: _usedBytes = serverStats.GetValue(serverEndPoint, statItem); break; case StatItem.Version: _version = serverStats.GetRaw(serverEndPoint, statItem); break; } } } if (_serviceState != State.Running && _serviceState != State.Unknown) { _statusIconIndex = StatusIconIndex.ServiceDown; _statusTooltip = Constants.TooltipServiceDown; } else if (_serviceState == State.Unknown) { _statusIconIndex = StatusIconIndex.ServiceNonControllable; _statusTooltip = Constants.TooltipServiceNonControllable; } else if (_version == null || _version == String.Empty) { _statusIconIndex = StatusIconIndex.CommunicationError; _statusTooltip = Constants.TooltipCommunicationError; } else if (memcachedFileVersion != null && memcachedFileVersion != _version) { _statusIconIndex = StatusIconIndex.NeedsUpdate; _statusTooltip = Constants.TooltipNeedsUpdate; } else { _statusIconIndex = StatusIconIndex.Up; _statusTooltip = Constants.TooltipUp; } }