/// <summary> /// States the handle. /// State는 두개뿐이니 일단은 이렇게. /// 만약 더 추가 될게 있으면 State패턴으로 변경 /// </summary> /// <param name="state">The state.</param> public void SwitchStateHandle(TCPCommon.NETWORK_STATE state) { if (mTCPState == state) { return; } mTCPState = state; switch (mTCPState) { case TCPCommon.NETWORK_STATE.CONNECT: { mNetworkState = new NetworkConnectedState(mClientSession); } break; case TCPCommon.NETWORK_STATE.DISCONNECT: { mNetworkState = new NetworkDisconnectedState(mIp, mPort, mProtocolResolver, mClientSession); } break; case TCPCommon.NETWORK_STATE.NONE: { mNetworkState = new NetworkNoneState(); } break; default: return; } mNetworkState.Enter(this); }
public RouteNetworkEventHandler(ILoggerFactory loggerFactory, INetworkState networkState) { if (null == loggerFactory) { throw new ArgumentNullException("loggerFactory is null"); } _logger = loggerFactory.CreateLogger <RouteNetworkEventHandler>(); _networkState = networkState; }
public static XElement ToXElement(this INetworkState state, string nodeName = "HomeAutomationNetwork") { var result = new XElement(nodeName); if (!String.IsNullOrWhiteSpace(state.Address)) { result.Add(new XAttribute("Address", state.Address)); } if (!String.IsNullOrWhiteSpace(state.Name)) { result.Add(new XAttribute("Name", state.Name)); } foreach (var device in state.DeviceStates) { result.Add(device.ToXElement()); } return(result); }
/// <summary> /// Update the state of the conversation. /// </summary> /// <param name="id"></param> public void SetState(NetworkStateId id) { _state = _container.GetNetworkState(id); }
public NetworkStateContext(NetworkStateContainer container, IBspDisconnecter disconnecter) { _container = container; _disconnecter = disconnecter; _state = container.GetNetworkState(NetworkStateId.NotConnected); }