예제 #1
0
파일: IpcAccessor.cs 프로젝트: Mixi59/Stump
        protected override void ProcessAnswer(IIPCRequest request, IPCMessage answer)
        {
            if (request.TimedOut)
            {
                logger.Warn("Message {0} already timed out, message ignored", request.RequestMessage.GetType());
                return;
            }

            request.ProcessMessage(answer);
        }
예제 #2
0
        private void DefaultRequestErrorCallback(IPCErrorMessage errorMessage)
        {
            IIPCRequest iIPCRequest = this.TryGetRequest(errorMessage.RequestGuid);

            IPCEntity.logger.Error("Error received of type {0}. Request {1} Message : {2} StackTrace : {3}", new object[]
            {
                errorMessage.GetType(),
                iIPCRequest.RequestMessage.GetType(),
                errorMessage.Message,
                errorMessage.StackTrace
            });
        }
예제 #3
0
        protected override void ProcessAnswer(IIPCRequest request, IPCMessage answer)
        {
            if (request.TimedOut)
            {
                logger.Warn("Message {0} already timed out, message ignored", request.RequestMessage.GetType());
                return;
            }

            if (request.TimeoutTimer != null)
            {
                request.TimeoutTimer.Stop();
                TaskPool.RemoveTimer(request.TimeoutTimer);
            }

            request.ProcessMessage(answer);
        }
예제 #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);
            }
        }
예제 #5
0
 protected abstract void ProcessAnswer(IIPCRequest request, IPCMessage answer);
예제 #6
0
 private void RequestTimedOut(IIPCRequest request)
 {
     request.ProcessMessage(new IPCErrorTimeoutMessage(string.Format("Request {0} timed out", request.RequestMessage.GetType())));
 }
예제 #7
0
 protected override void ProcessAnswer(IIPCRequest request, IPCMessage answer)
 {
     request.TimeoutTimer.Stop();
     AuthServer.Instance.IOTaskPool.AddTimer(request.TimeoutTimer);
     request.ProcessMessage(answer);
 }
예제 #8
0
 protected override void ProcessAnswer(IIPCRequest request, IPCMessage answer)
 {
     request.TimeoutTimer.Stop();
     this.TaskPool.RemoveTimer(request.TimeoutTimer);
     request.ProcessMessage(answer);
 }