private void TerminalOnConnectSucceededEvent(object sender, ConnectResponse connectResponse) { if (connectResponse == null) throw new ArgumentNullException(nameof(connectResponse)); CallInfo call = RemoveActiveConnectionByActor(connectResponse.ConnectRequest.Sender); if (call != null) { _activeCalls.Add(new SourseTargetPair(call.Source, call.Target), call); OnCallStartEvent(call); } }
private void OnConnectSucceededEvent(ConnectResponse response) { ConnectSucceededEvent?.Invoke(MACAddress, response); }
private void TerminalOnConnectFailedEvent(object sender, ConnectResponse connectResponse) { if (connectResponse == null) throw new ArgumentNullException(nameof(connectResponse)); CallInfo call = RemoveActiveConnectionByActor(connectResponse.ConnectRequest.Sender); if (call != null) { OnConnectionFailedEvent(call); UnbindPortsByCall(call); } }
public void ProcessRequest(object sender, IRequest request) { if (sender == null) throw new ArgumentNullException(nameof(sender)); if (request == null) throw new ArgumentNullException(nameof(request)); if (State == TerminalState.Unplagged) throw new StateException($"{this} unplagged"); var senderMac = sender as string; if (senderMac == null || senderMac != _registeredPortMAC) return; if (request is ConnectRequest) { if (State == TerminalState.Online) { var r = new ConnectResponse((ConnectRequest)request, ConnectResponse.TerminalBusy); OnSendResponseEvent(r); } else { State = TerminalState.Online; var r = new ConnectResponse((ConnectRequest)request, ConnectResponse.TerminalOk); OnSendResponseEvent(r); } return; } if (State == TerminalState.Offline) return; ProcessRequestWhenConnect(request); }