Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MessageProcessingHandler.cs
Go to the documentation of this file.
4
5namespace System.Net.Http;
6
8{
9 private sealed class SendState : TaskCompletionSource<HttpResponseMessage>
10 {
12
13 internal readonly CancellationToken _token;
14
16 {
17 _handler = handler;
18 _token = token;
19 }
20 }
21
23 {
24 }
25
27 : base(innerHandler)
28 {
29 }
30
32
34
36 {
37 if (request == null)
38 {
40 }
42 HttpResponseMessage response = base.Send(request2, cancellationToken);
43 return ProcessResponse(response, cancellationToken);
44 }
45
47 {
48 if (request == null)
49 {
51 }
52 SendState sendState = new SendState(this, cancellationToken);
53 try
54 {
56 Task<HttpResponseMessage> task2 = base.SendAsync(request2, cancellationToken);
57 task2.ContinueWith(delegate(Task<HttpResponseMessage> task, object state)
58 {
59 SendState sendState2 = (SendState)state;
60 MessageProcessingHandler handler = sendState2._handler;
61 CancellationToken token = sendState2._token;
62 if (task.IsFaulted)
63 {
64 sendState2.TrySetException(task.Exception.GetBaseException());
65 }
66 else if (task.IsCanceled)
67 {
68 sendState2.TrySetCanceled(token);
69 }
70 else
71 {
72 if (task.Result != null)
73 {
74 try
75 {
76 HttpResponseMessage result = handler.ProcessResponse(task.Result, token);
77 sendState2.TrySetResult(result);
78 return;
79 }
81 {
82 HandleCanceledOperations(token, sendState2, e2);
83 return;
84 }
85 catch (Exception exception2)
86 {
87 sendState2.TrySetException(exception2);
88 return;
89 }
90 }
92 }
93 }, sendState, CancellationToken.None, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
94 }
96 {
98 }
99 catch (Exception exception)
100 {
101 sendState.TrySetException(exception);
102 }
103 return sendState.Task;
104 }
105
117}
SendState(MessageProcessingHandler handler, CancellationToken token)
HttpRequestMessage ProcessRequest(HttpRequestMessage request, CancellationToken cancellationToken)
static void HandleCanceledOperations(CancellationToken cancellationToken, TaskCompletionSource< HttpResponseMessage > tcs, OperationCanceledException e)
MessageProcessingHandler(HttpMessageHandler innerHandler)
override Task< HttpResponseMessage > SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken)
HttpResponseMessage ProcessResponse(HttpResponseMessage response, CancellationToken cancellationToken)
static string net_http_handler_noresponse
Definition SR.cs:68
static string net_http_handler_norequest
Definition SR.cs:70
Definition SR.cs:7
Task ContinueWith(Action< Task< TResult > > continuationAction)
Definition Task.cs:263