Esempio n. 1
0
 public void ReplyRequest(IPCMessage message, IPCMessage request)
 {
     if (request != null)
     {
         message.RequestGuid = request.RequestGuid;
     }
     this.Send(message);
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
 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);
         }
     }
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 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);
 }
Esempio n. 11
0
 public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback, RequestCallbackErrorDelegate errorCallback,
                         RequestCallbackDefaultDelegate defaultCallback)
 {
     SendRequest(message, callback, errorCallback, defaultCallback, RequestTimeout * 1000);
 }
Esempio n. 12
0
 public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback)
 {
     SendRequest <CommonOKMessage>(message, callback, DefaultRequestErrorCallback, RequestTimeout * 1000);
 }
Esempio n. 13
0
 private void DefaultRequestUnexpectedCallback(IPCMessage message)
 {
     logger.Error("Unexpected message {0}. Request {1}", message.GetType(), TryGetRequest(message.RequestGuid).RequestMessage.GetType());
 }
Esempio n. 14
0
 protected abstract void ProcessAnswer(IIPCRequest request, IPCMessage answer);
Esempio n. 15
0
 protected abstract void ProcessRequest(IPCMessage request);
Esempio n. 16
0
 public abstract void Send(IPCMessage message);
Esempio n. 17
0
 private void DefaultRequestUnattemptCallback(IPCMessage message)
 {
     IPCEntity.logger.Error <Type, Type>("Unattempt message {0}. Request {1}", message.GetType(), this.TryGetRequest(message.RequestGuid).RequestMessage.GetType());
 }
Esempio n. 18
0
 public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback, RequestCallbackErrorDelegate errorCallback,
                         int timeout)
 {
     SendRequest(message, callback, errorCallback, DefaultRequestUnexpectedCallback, timeout);
 }
Esempio n. 19
0
 public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback, RequestCallbackErrorDelegate errorCallback, int timeout)
 {
     this.SendRequest <CommonOKMessage>(message, callback, errorCallback, new RequestCallbackDefaultDelegate(this.DefaultRequestUnattemptCallback), timeout);
 }
Esempio n. 20
0
 public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback) where T : IPCMessage
 {
     this.SendRequest <T>(message, callback, errorCallback, this.RequestTimeout * 1000);
 }
Esempio n. 21
0
 public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback,
                             int timeout) where T : IPCMessage
 {
     SendRequest(message, callback, errorCallback, DefaultRequestUnexpectedCallback, timeout);
 }
Esempio n. 22
0
 public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback) where T : IPCMessage
 {
     this.SendRequest <T>(message, callback, new RequestCallbackErrorDelegate(this.DefaultRequestErrorCallback), this.RequestTimeout);
 }
Esempio n. 23
0
 public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback)
 {
     this.SendRequest <CommonOKMessage>(message, callback, new RequestCallbackErrorDelegate(this.DefaultRequestErrorCallback), this.RequestTimeout);
 }
Esempio n. 24
0
 public void SendRequest(IPCMessage message, RequestCallbackDelegate <CommonOKMessage> callback, RequestCallbackErrorDelegate errorCallback)
 {
     this.SendRequest <CommonOKMessage>(message, callback, errorCallback, this.RequestTimeout * 1000);
 }
Esempio n. 25
0
 public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback)
     where T : IPCMessage
 {
     SendRequest(message, callback, DefaultRequestErrorCallback, RequestTimeout * 1000);
 }