private void process(IGSMRequest request) { IGRequestProcessing.Add(request, this); IGAnswer answer = request.CreateAnswer(); int nRes = IGSMAnswer.IGSMANSWER_ERROR_NONE; if (answer != null) { answer.Init(request.GetGuid(), request.GetTitle()); if (answer.Execute()) request.SetResult(answer.GetXml()); else nRes = (int)IGSMAnswer.IGSMANSWER_ERROR_CODE.IGSMANSWER_ERROR_ANSWEREXECUTION; } if (IGSMAnswer.IsSMError(nRes)) { IGSMAnswerError answerFailure = new IGSMAnswerError(request, (IGSMAnswer.IGSMANSWER_ERROR_CODE)nRes); request.SetId(nRes); request.SetResult(answerFailure.GetXml()); } }
public IGRequest ProcessRequest(string sText, AutoResetEvent stopWaitHandle) { IGRequest request = CreateRequest(sText, stopWaitHandle); if (m_processedRequests.ContainsKey(request.GetGuid())) { m_processedRequests[request.GetGuid()].Key.Execute(); return request; } if (IGRequestProcessing.GetRequest(request.GetGuid()) != null) return request; if (!request.Valid) { IGSMAnswer.IGSMANSWER_ERROR_CODE errCode = IGSMAnswer.IGSMANSWER_ERROR_CODE.IGSMANSWER_ERROR_CORRUPTEDREQUEST; IGSMAnswerError answerFailure = new IGSMAnswerError(request, errCode); request.SetId((int)errCode); request.SetResult(answerFailure.GetXml()); return request; } switch (request.GetTypeId()) { case IGRequest.IGREQUEST_SERVER: process((IGSMRequest)request); break; // Local application request case IGRequest.IGREQUEST_FRAME: case IGRequest.IGREQUEST_WORKSPACE: int nRes = process(request); if (nRes != IGSMAnswer.IGSMANSWER_ERROR_NONE) { IGSMAnswer.IGSMANSWER_ERROR_CODE errCode = (IGSMAnswer.IGSMANSWER_ERROR_CODE)nRes; IGSMAnswerError answerFailure = new IGSMAnswerError(request, errCode); request.SetId((int)errCode); request.SetResult(answerFailure.GetXml()); } break; } return request; }