예제 #1
0
        public static void RequestEndedCallBack(CIRequest request, string response)
        {
            JSON js = new JSON();

            js.serialized = response;

            if (string.IsNullOrEmpty(js.serialized))
            {
                js.serialized = "{\"error\":{\"code\":-4,\"name\":\"NotJsonResponse\",\"message\":\"Response is invalid!!!\"}}";
                response      = js.serialized;
            }

            if (request.requestType == RequestType.Init)
            {
                if (js.fields.ContainsKey("token") && js["token"] != null)
                {
                    token       = js.ToString("token");
                    js["token"] = "";
                    response    = js.serialized;
                }
            }

            //удалим пользователя
            if (request.requestType == RequestType.Del)
            {
                token = null;
            }

            if (RequestEndedCallBackEditor != null)
            {
                RequestEndedCallBackEditor(request, response);
            }


            //возможно это поток из очереди
            if (request.queued)
            {
                if (RequestQueue.Count == 0)
                {
                    request.WaitForQueue = true;
                }
                else
                {
                    //в очереди есть ещё задачи на выполнение
                    MakeFromQueue();
                }
            }
            else
            {
                request.DestroyGameObject();
            }
        }
예제 #2
0
        public static void MakeFromQueue()
        {
            if (RequestQueue.Count > 0)
            {
                queueMaker.WaitForQueue = false;
                CIRequest vspMaker = queueMaker;
                vspMaker.DestroyGameObject();
                //выполняем следующий запрос
                queueMaker = RequestQueue[0] as CIRequest;
                RequestQueue.RemoveAt(0);

                queueMaker.MakeFromQueue = MakeFromQueue;
                queueMaker.StartRequest();
            }
        }
예제 #3
0
        public static void ForceResetQueue()
        {
            if (queueMaker != null)
            {
                queueMaker.DestroyGameObject();
                queueMaker = null;
            }

            CIRequest request;

            //clear queue
            while (RequestQueue.Count != 0)
            {
                request = RequestQueue[0] as CIRequest;
                RequestQueue.RemoveAt(0);
                request.DestroyGameObject();
            }
        }