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(); } }
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(); } }
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(); } }