protected void DoError(int destination, int session, RPCError errorCode, string errorText) { Error.response error = new Error.response(); error.errorCode = (int)errorCode; error.errorText = errorText; PushToService(destination, "OnError", error.encode(), MessageType.Error, session); }
private void OnError(Message msg) { NetProtocol instance = NetProtocol.GetInstance(); int tag = instance.GetTag("Error"); Error.response sprotoError = (Error.response)instance.Protocol.GenResponse(tag, msg.Data); RPCResponseContext responseCallback = null; bool isExist = m_responseCallbacks.TryGetValue(msg.RPCSession, out responseCallback); if (isExist) { responseCallback.Callback(responseCallback.Context, msg.Method, Encoding.ASCII.GetBytes(sprotoError.errorText), (RPCError)sprotoError.errorCode); m_responseCallbacks.Remove(msg.RPCSession); } else { LoggerHelper.Info(m_serviceAddress, string.Format("Service:{0} session:{1} get error:{2}; error text is {3}", m_serviceAddress, msg.RPCSession, sprotoError.errorCode, sprotoError.errorText)); } }