public void ReplyRequest(IPCMessage message, IPCMessage request) { if (request != null) { message.RequestGuid = request.RequestGuid; } this.Send(message); }
public IPCRequest(IPCMessage requestMessage, Guid guid, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback, RequestCallbackDefaultDelegate defaultCallback, TimerEntry timeoutTimer) { this.RequestMessage = requestMessage; this.Guid = guid; this.Callback = callback; this.ErrorCallback = errorCallback; this.DefaultCallback = defaultCallback; this.TimeoutTimer = timeoutTimer; }
public IPCRequest(IPCMessage requestMessage, Guid guid, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback, RequestCallbackDefaultDelegate defaultCallback, TimedTimerEntry timeoutTimer) { RequestMessage = requestMessage; Guid = guid; Callback = callback; ErrorCallback = errorCallback; DefaultCallback = defaultCallback; TimeoutTimer = timeoutTimer; }
protected virtual void ProcessMessage(IPCMessage message) { if (message.RequestGuid == Guid.Empty) { this.ProcessRequest(message); } IIPCRequest iIPCRequest = this.TryGetRequest(message.RequestGuid); if (iIPCRequest != null) { this.ProcessAnswer(iIPCRequest, message); } else { this.ProcessRequest(message); } }
public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback, RequestCallbackDefaultDelegate defaultCallback, int timeout) where T : IPCMessage { Guid guid = Guid.NewGuid(); message.RequestGuid = guid; IPCRequest <T> request = null; TimerEntry timeoutTimer = this.RegisterTimer(delegate(int param0) { this.RequestTimedOut(request); }, timeout); request = new IPCRequest <T>(message, guid, callback, errorCallback, defaultCallback, timeoutTimer); lock (this.m_requests) { this.m_requests.Add(guid, request); } this.Send(message); }
public bool ProcessMessage(IPCMessage message) { this.TimeoutTimer.Stop(); if (message is T) { this.Callback(message as T); } else { if (message is IPCErrorMessage) { this.ErrorCallback(message as IPCErrorMessage); } else { this.DefaultCallback(message); } } return(true); }
protected virtual void ProcessMessage(IPCMessage message) { if (message.RequestGuid == Guid.Empty) { ProcessRequest(message); } else { var request = TryGetRequest(message.RequestGuid); if (request != null) { ProcessAnswer(request, message); lock (m_requests) m_requests.Remove(message.RequestGuid); } else { ProcessRequest(message); } } }
public bool ProcessMessage(IPCMessage message) { if (TimeoutTimer != null) { TimeoutTimer.Dispose(); } if (message is T) { Callback(message as T); } else if (message is IIPCErrorMessage) { logger.Warn("IPC Error on message recv {0}", message); ErrorCallback(message as IIPCErrorMessage); } else { DefaultCallback(message); } return(true); }
public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback, RequestCallbackDefaultDelegate defaultCallback, int timeout) where T : IPCMessage { var guid = Guid.NewGuid(); message.RequestGuid = guid; IPCRequest <T> request = null; if (timeout > 0) { var timer = RegisterTimer(delegate { RequestTimedOut(request); }, timeout); request = new IPCRequest <T>(message, guid, callback, errorCallback, defaultCallback, timer); } else { request = new IPCRequest <T>(message, guid, callback, errorCallback, defaultCallback, null); } lock (m_requests) m_requests.Add(guid, request); Send(message); }
public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback, int timeout) where T : IPCMessage { this.SendRequest <T>(message, callback, errorCallback, new RequestCallbackDefaultDelegate(this.DefaultRequestUnattemptCallback), timeout); }
public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback, RequestCallbackErrorDelegate errorCallback, RequestCallbackDefaultDelegate defaultCallback) { SendRequest(message, callback, errorCallback, defaultCallback, RequestTimeout * 1000); }
public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback) { SendRequest <CommonOKMessage>(message, callback, DefaultRequestErrorCallback, RequestTimeout * 1000); }
private void DefaultRequestUnexpectedCallback(IPCMessage message) { logger.Error("Unexpected message {0}. Request {1}", message.GetType(), TryGetRequest(message.RequestGuid).RequestMessage.GetType()); }
protected abstract void ProcessAnswer(IIPCRequest request, IPCMessage answer);
protected abstract void ProcessRequest(IPCMessage request);
public abstract void Send(IPCMessage message);
private void DefaultRequestUnattemptCallback(IPCMessage message) { IPCEntity.logger.Error <Type, Type>("Unattempt message {0}. Request {1}", message.GetType(), this.TryGetRequest(message.RequestGuid).RequestMessage.GetType()); }
public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback, RequestCallbackErrorDelegate errorCallback, int timeout) { SendRequest(message, callback, errorCallback, DefaultRequestUnexpectedCallback, timeout); }
public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback, RequestCallbackErrorDelegate errorCallback, int timeout) { this.SendRequest <CommonOKMessage>(message, callback, errorCallback, new RequestCallbackDefaultDelegate(this.DefaultRequestUnattemptCallback), timeout); }
public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback) where T : IPCMessage { this.SendRequest <T>(message, callback, errorCallback, this.RequestTimeout * 1000); }
public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback, int timeout) where T : IPCMessage { SendRequest(message, callback, errorCallback, DefaultRequestUnexpectedCallback, timeout); }
public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback) where T : IPCMessage { this.SendRequest <T>(message, callback, new RequestCallbackErrorDelegate(this.DefaultRequestErrorCallback), this.RequestTimeout); }
public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback) { this.SendRequest <CommonOKMessage>(message, callback, new RequestCallbackErrorDelegate(this.DefaultRequestErrorCallback), this.RequestTimeout); }
public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback, RequestCallbackErrorDelegate errorCallback) { this.SendRequest <CommonOKMessage>(message, callback, errorCallback, this.RequestTimeout * 1000); }
public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback) where T : IPCMessage { SendRequest(message, callback, DefaultRequestErrorCallback, RequestTimeout * 1000); }