public virtual void OnClientConnectivityChange(string cacheId, Runtime.Caching.ClientInfo clientInfo, ConnectivityStatus status) { if (_listener != null) { _listener.OnClientConnectivityChange(cacheId, clientInfo, status); } }
public void Deserialize(Common.Serialization.IO.CompactReader reader) { LastHeartbeatTimestamp = reader.ReadDateTime(); CurrentMembership = reader.ReadObject() as Membership; MissingHeartbeatsCounter = reader.ReadInt32(); LastOplogOperationId = reader.ReadObject() as OperationId; CSStatus = (ConnectivityStatus)reader.ReadInt32(); }
public virtual void OnClientConnectivityChange(string cacheId, Runtime.Caching.ClientInfo clientInfo, ConnectivityStatus status) { if (_parent._cacheClientConnectivityChanged != null) { _parent._cacheClientConnectivityChanged.Invoke(cacheId, clientInfo, status); } }
public ClientConnectivityChangeTask(Broker parent, string cacheId, ClientInfo clientInfo, ConnectivityStatus status) { cacheId = _cacheId; _clientInfo = clientInfo; _status = status; _parent = parent; }
private void CallService() { if (ConnectivityStatus.IsConnected()) { var online = RefreshData(); PlanetList = new ObservableCollection <Planet>(online); this.IsRefreshing = false; } }
public NetConnectivityArgs(ConnectivityStatus conStatus, NetConnectionType conType, double?wLinkSpeed, double?eLinkSpeed, NetworkInterface currEth, WlanClient.WlanInterface currWlan) { this.ConnectionStatus = conStatus; this.ConnectionType = conType; this.WifiLinkSpeed = wLinkSpeed; this.EthLinkSpeed = eLinkSpeed; this.CurrentEthIf = currEth; this.CurrentWlanIf = currWlan; }
public void Deserialize(CompactReader reader) { AppName = reader.ReadString(); ClientID = reader.ReadString(); MachineName = reader.ReadString(); ProcessID = reader.ReadInt32(); string address = reader.ReadObject() as string; if (address != null) { IPAddress = IPAddress.Parse(address); } Status = (ConnectivityStatus)reader.ReadInt32(); }
private void UIUpdateConnectivity(ConnectivityStatus connectionStatus) { try { switch (connectionStatus) { case ConnectivityStatus.Internet: LabelConnectivityValue.Content = "Internet (Layer 4 / TCP)"; LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 39, 216, 0)); break; case ConnectivityStatus.Layer4: LabelConnectivityValue.Content = "Internet (Layer 4 / TCP)"; LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 39, 216, 0)); break; case ConnectivityStatus.Layer3: LabelConnectivityValue.Content = "Internet (Layer 3 / ICMP)"; LabelConnectivityValue.Foreground = new SolidColorBrush(Toolbox.ColorFromHex("#FFC9DC05")); break; case ConnectivityStatus.Local: LabelConnectivityValue.Content = "Local (Gateway Only)"; LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 207, 228, 0)); break; case ConnectivityStatus.None: LabelConnectivityValue.Content = "None (Can't Reach Gateway)"; LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 255, 0, 0)); break; case ConnectivityStatus.DNSError: LabelConnectivityValue.Content = "DNS Error Occured"; LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 223, 0, 224)); break; case ConnectivityStatus.DHCPError: LabelConnectivityValue.Content = "DHCP Error Occured"; LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 223, 0, 224)); break; } } catch (Exception ex) { uDebugLogAdd($"ConnectivityUI update failure: {ex.Message}", DebugType.FAILURE); } }
public IEnumerable <Planet> RefreshData() { var planets = new List <Planet>(); if (ConnectivityStatus.IsConnected()) { this.IsRefreshing = true; Task.Run(async() => await App.Service.GetPlanetsAsync().ContinueWith(taskResult => { if (taskResult.IsCompleted && !taskResult.IsFaulted) { taskResult.Result.ForEach(e => planets.Add(new Planet { Name = e.Name, Picture = e.Picture })); } })).Wait(); } return(planets); }
private string GetMessage(ConnectivityStatus connectivityStatus) { switch (connectivityStatus) { case ConnectivityStatus.LogginIn: return("Logging in..."); case ConnectivityStatus.RetrievingList: return("Retrieving the list..."); case ConnectivityStatus.Online: return("Ready"); case ConnectivityStatus.Uploading: return("Uploading..."); case ConnectivityStatus.Downloading: return("Downloading..."); case ConnectivityStatus.Failed: return(string.Format("Exception Found ({0})", LastApiError)); } return(string.Empty); }
public void Run() { LoggerManager.Instance.SetThreadContext(new LoggerContext() { ShardName = _context.LocalShardName != null ? _context.LocalShardName : "", DatabaseName = "" }); _context.StatusLatch.WaitForAny(NodeStatus.Running); _startSignal.WaitOne(); if (_context.ConfigurationSession != null) { ((OutProcConfigurationSession)_context.ConfigurationSession).RegisterListener(this); } while (_running) { try { if (_node == null) { _clusterConfigMgr.UpdateClusterConfiguration(); } if (_clusterConfigMgr != null) { ShardConfiguration sConfig = _clusterConfigMgr.GetShardConfiguration(_context.LocalShardName); if (sConfig != null && sConfig.Servers != null) { _node = sConfig.Servers.GetServerNode(_context.LocalAddress.IpAddress.ToString()); } } if (_node == null && LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsWarnEnabled) { LoggerManager.Instance.ShardLogger.Warn("NodeToCSHeartbeatTask.Run() ", "Node " + _context.LocalAddress.ToString() + " is not part of the configuration."); return; } OperationId lastOpId = null; if (_membershipManager != null && _membershipManager.LatestMembership != null && _membershipManager.LatestMembership.Primary != null && _membershipManager.LatestMembership.Primary.Name.Equals(_context.LocalAddress.IpAddress.ToString())) { lastOpId = _membershipManager.GetLastOperationId; } Stopwatch watch = new Stopwatch(); watch.Start(); _heartbeatInterval = _context.ConfigurationSession.ReportHeartbeat(_context.ClusterName, _context.LocalShardName, _node, _membershipManager.LatestMembership, lastOpId) * 1000; watch.Stop(); _csStatus = ConnectivityStatus.Connected; if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsDebugEnabled) { LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "Heartbeat sent to the CS at " + DateTime.Now.ToString() + " time taken to report heartbeat :" + watch.Elapsed.TotalSeconds); } if (_heartbeatInterval > 0 && (watch.Elapsed.TotalSeconds > _heartbeatInterval / 2)) { if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled) { LoggerManager.Instance.ShardLogger.Error("NodeToCSHeartbeatTask.Run() ", "Heartbeat sent to the CS at " + DateTime.Now.ToString() + " time taken to report heartbeat :" + watch.Elapsed.TotalSeconds + " which is greater than half of the hb interval."); } } } catch (ThreadAbortException e) { if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled && _nodeToCSThread != null) { LoggerManager.Instance.ShardLogger.Error(_nodeToCSThread.Name, "Task aborted."); } break; } //the following should only be done when a connection exception occurs. catch (ChannelException e) { if (LoggerManager.Instance.ShardLogger != null) { if (LoggerManager.Instance.ShardLogger.IsErrorEnabled) { LoggerManager.Instance.ShardLogger.Error("NodeToCSHeartbeatTask.Run() ", e.ToString()); } if (LoggerManager.Instance.ShardLogger.IsDebugEnabled) { LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "On CS disconnected process of the membership manager begins execution at " + DateTime.Now.ToString()); } } _csStatus = ConnectivityStatus.NotConnected; _membershipManager.OnCSDisconnected(); if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsDebugEnabled) { LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "The NodeToCS task paused at " + DateTime.Now.ToString()); } //foreach (var cluster in ManagementServer.s_DbmNodeConfiguration.DbmClusters.ClustersConfigurations) //{ // string csIp = cluster.ConfigServers.Nodes[0].Name; // int csPort = cluster.ConfigServers.Nodes[0].Port; // BrokenConnectionInfo info = new BrokenConnectionInfo(); // info.BrokenAddress = new Address(csIp, csPort); // info.SessionType = Common.Communication.SessionTypes.Management; // _connectionRestoration.RegisterListener(info, this,_context.LocalShardName); //} this.Pause(); } catch (Exception e) { if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled) { LoggerManager.Instance.ShardLogger.Error("NodeToCSHbTask.Run() General Exception: ", e.ToString()); } if (e.Message.Contains("No configuration server is available to process the request")) { _csStatus = ConnectivityStatus.NotConnected; _membershipManager.OnCSDisconnected(); if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsDebugEnabled) { LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "The NodeToCS task paused at " + DateTime.Now.ToString()); } this.Pause(); } } Stopwatch sleepWatch = new Stopwatch(); sleepWatch.Start(); Thread.Sleep(_heartbeatInterval); _startSignal.WaitOne(); sleepWatch.Stop(); if (sleepWatch.Elapsed.TotalMilliseconds > (_heartbeatInterval + 2000)) { if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsDebugEnabled) { LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "CS task waited for " + sleepWatch.Elapsed.TotalSeconds); } } } }
internal static ClientConnectivityChangeEventResponse GetClientConnectivityChangeEventResponse(string cacheId, Runtime.Caching.ClientInfo client, ConnectivityStatus status) { ClientConnectivityChangeEventResponse response = new ClientConnectivityChangeEventResponse(); response.cacheId = cacheId; response.status = (int)status; response.clientInfo = new Common.Protobuf.ClientInfo(); response.clientInfo.appName = client.AppName; response.clientInfo.machineName = client.MachineName; response.clientInfo.ipAddress = client.IPAddress.ToString(); response.clientInfo.clientId = client.ClientID; response.clientInfo.processId = client.ProcessID; return(response); }
/// <summary> /// Converts the <see cref="sourceValue" /> parameter to the <see cref="destinationType" /> parameter using <see cref="formatProvider" /// /> and <see cref="ignoreCase" /> /// </summary> /// <param name="sourceValue">the <see cref="System.Object"/> to convert from</param> /// <param name="destinationType">the <see cref="System.Type" /> to convert to</param> /// <param name="formatProvider">not used by this TypeConverter.</param> /// <param name="ignoreCase">when set to <c>true</c>, will ignore the case when converting.</param> /// <returns> /// an instance of <see cref="ConnectivityStatus" />, or <c>null</c> if there is no suitable conversion. /// </returns> public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConnectivityStatus.CreateFrom(sourceValue);
public static void TriggerNetConnectivityUpdate(ConnectivityStatus conStatus, NetConnectionType conType, double?wLinkSpeed, double?eLinkSpeed, NetworkInterface currEth, WlanClient.WlanInterface currWlan) { NetConnectivityArgs args = new NetConnectivityArgs(conStatus, conType, wLinkSpeed, eLinkSpeed, currEth, currWlan); NetConnectivityChanged(args); }
//tworzy obiekt z informacjami o stanie połaćzenia z blipem private TitleMessageViewModel SetConnectivityStatus(ConnectivityStatus connectivityStatus) { switch (connectivityStatus) { case ConnectivityStatus.Online: return new TitleMessageViewModel() { Title = AppMessages.OnlineTitle, Message = AppMessages.OnlineMessage }; case ConnectivityStatus.Offline: return new TitleMessageViewModel() { Title = AppMessages.OfflineTitle, Message = AppMessages.OfflineMessage }; default: return null; } }