Example #1
0
 /// <inheritdoc cref="RequestChannel.OnAfterSendRequest"/>
 protected override IEnumerator OnAfterSendRequest(RequestTask request)
 {
     foreach (var listener in this.registeredResponseListeners)
     {
         yield return(listener.OnResponse(this, request));
     }
 }
Example #2
0
        public static string GetBodyString(this RequestTask requestTask)
        {
            var currentWebRequest = requestTask.UnityWebRequest;
            var downloadHandler   = currentWebRequest.downloadHandler;

            return(downloadHandler.text);
        }
Example #3
0
        /// <inheritdoc cref="IQueueRequestChannel.EnqueueRequest"/>
        public IEnumerator EnqueueRequest(RequestTask request)
        {
            if (this.currentRequest != null)
            {
                this.pendingRequests.Enqueue(request);
                yield return(new WaitWhile(request.IsPending));

                if (!request.IsProcessing())
                {
                    yield break;
                }
            }

            this.currentRequest = request;
            yield return(this.SendRequest(request));

            request.SetFinished();
            if (this.pendingRequests.IsNotEmpty())
            {
                var nextRequest = this.pendingRequests.Dequeue();
                nextRequest.SetProcessing();
            }
            else
            {
                this.currentRequest = null;
            }
        }
Example #4
0
        /// <inheritdoc cref="IRequestChannel.SendRequest"/>
        public IEnumerator SendRequest(RequestTask request)
        {
            yield return(OnBeforeSendRequest(request));

            yield return(request.UnityWebRequest.SendWebRequest());

            yield return(this.OnAfterSendRequest(request));
        }
Example #5
0
 public static bool DeserializeBody <T>(this RequestTask requestTask, out T result)
 {
     try
     {
         var bodyString = requestTask.GetBodyString();
         result = JsonUtility.FromJson <T>(bodyString);
         return(true);
     }
     catch (Exception)
     {
         result = default;
         return(false);
     }
 }
Example #6
0
        private void CancelAllRequests()
        {
            if (this.currentRequest == null)
            {
                return;
            }

            this.currentRequest.SetCanceled();
            while (this.pendingRequests.IsNotEmpty())
            {
                var request = this.pendingRequests.Dequeue();
                request.SetCanceled();
            }

            this.currentRequest = null;
        }
Example #7
0
 public static void SetFinished(this RequestTask requestTask)
 {
     requestTask.State = RequestState.FINISHED;
 }
Example #8
0
 /// <summary>
 ///     <para>Called after a request has sent.</para>
 /// </summary>
 protected virtual IEnumerator OnAfterSendRequest(RequestTask request)
 {
     yield break;
 }
Example #9
0
        /// <summary>
        ///     <para>Send unity web request via channel asynchronously.</para>
        /// </summary>
        protected IEnumerator SendRequest(UnityWebRequest webRequest)
        {
            var requestTask = new RequestTask(webRequest);

            yield return(this.Channel.SendRequest(requestTask));
        }
Example #10
0
        /// <summary>
        ///     <para>Send unity web request asynchronously via queue channel.</para>
        /// </summary>
        protected IEnumerator EnqueueRequest(UnityWebRequest request)
        {
            var requestTask = new RequestTask(request);

            yield return(this.Channel.EnqueueRequest(requestTask));
        }
Example #11
0
 public static bool IsFinished(this RequestTask request)
 {
     return(request.State == RequestState.FINISHED);
 }
Example #12
0
        public static long GetResponseCode(this RequestTask requestTask)
        {
            var currentWebRequest = requestTask.UnityWebRequest;

            return(currentWebRequest.responseCode);
        }
Example #13
0
 public static bool IsCanceled(this RequestTask request)
 {
     return(request.State == RequestState.CANCELED);
 }
Example #14
0
 public static void SetCanceled(this RequestTask requestTask)
 {
     requestTask.State = RequestState.CANCELED;
 }
Example #15
0
 public static bool IsProcessing(this RequestTask request)
 {
     return(request.State == RequestState.PROCESSING);
 }
Example #16
0
 public static void SetProcessing(this RequestTask requestTask)
 {
     requestTask.State = RequestState.PROCESSING;
 }
Example #17
0
 public static bool IsPending(this RequestTask requestTask)
 {
     return(requestTask.State == RequestState.PENDING);
 }
Example #18
0
 public static void SetPending(this RequestTask requestTask)
 {
     requestTask.State = RequestState.PENDING;
 }