Microsoft.AspNetCore.Server.Kestrel.xml
44.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.AspNetCore.Server.Kestrel</name>
</assembly>
<members>
<member name="F:Microsoft.Extensions.Internal.TaskCache.CompletedTask">
<summary>
A <see cref="T:System.Threading.Tasks.Task"/> that's already completed successfully.
</summary>
<remarks>
We're caching this in a static readonly field to make it more inlinable and avoid the volatile lookup done
by <c>Task.CompletedTask</c>.
</remarks>
</member>
<member name="P:Microsoft.Extensions.Internal.TaskCache`1.DefaultCompletedTask">
<summary>
Gets a completed <see cref="T:System.Threading.Tasks.Task"/> with the value of <c>default(T)</c>.
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerLimits.MaxResponseBufferSize">
<summary>
Gets or sets the maximum size of the response buffer before write
calls begin to block or return tasks that don't complete until the
buffer size drops below the configured limit.
</summary>
<remarks>
When set to null, the size of the response buffer is unlimited.
When set to zero, all write calls will block or return tasks that
don't complete until the entire response buffer is flushed.
Defaults to 65,536 bytes (64 KB).
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerLimits.MaxRequestBufferSize">
<summary>
Gets or sets the maximum size of the request buffer.
</summary>
<remarks>
When set to null, the size of the request buffer is unlimited.
Defaults to 1,048,576 bytes (1 MB).
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerLimits.MaxRequestLineSize">
<summary>
Gets or sets the maximum allowed size for the HTTP request line.
</summary>
<remarks>
Defaults to 8,192 bytes (8 KB).
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerLimits.MaxRequestHeadersTotalSize">
<summary>
Gets or sets the maximum allowed size for the HTTP request headers.
</summary>
<remarks>
Defaults to 32,768 bytes (32 KB).
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerLimits.MaxRequestHeaderCount">
<summary>
Gets or sets the maximum allowed number of headers per HTTP request.
</summary>
<remarks>
Defaults to 100.
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerLimits.KeepAliveTimeout">
<summary>
Gets or sets the keep-alive timeout.
</summary>
<remarks>
Defaults to 2 minutes.
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerLimits.RequestHeadersTimeout">
<summary>
Gets or sets the maximum amount of time the server will spend receiving request headers.
</summary>
<remarks>
Defaults to 30 seconds.
</remarks>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions">
<summary>
Provides programmatic configuration of Kestrel-specific features.
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.AddServerHeader">
<summary>
Gets or sets whether the <c>Server</c> header should be included in each response.
</summary>
<remarks>
Defaults to true.
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.ApplicationServices">
<summary>
Enables the UseKestrel options callback to resolve and use services registered by the application during startup.
Typically initialized by <see cref="M:Microsoft.AspNetCore.Hosting.WebHostBuilderKestrelExtensions.UseKestrel(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action{Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions})"/>.
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.ConnectionFilter">
<summary>
Gets or sets an <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Filter.IConnectionFilter"/> that allows each connection <see cref="T:System.IO.Stream"/>
to be intercepted and transformed.
Configured by the <c>UseHttps()</c> and <see cref="M:Microsoft.AspNetCore.Hosting.KestrelServerOptionsConnectionLoggingExtensions.UseConnectionLogging(Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions)"/>
extension methods.
</summary>
<remarks>
Defaults to null.
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.MaxRequestBufferSize">
<summary>
<para>
This property is obsolete and will be removed in a future version.
Use <c>Limits.MaxRequestBufferSize</c> instead.
</para>
<para>
Gets or sets the maximum size of the request buffer.
</para>
</summary>
<remarks>
When set to null, the size of the request buffer is unlimited.
Defaults to 1,048,576 bytes (1 MB).
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.Limits">
<summary>
Provides access to request limit options.
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.NoDelay">
<summary>
Set to false to enable Nagle's algorithm for all connections.
</summary>
<remarks>
Defaults to true.
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.ShutdownTimeout">
<summary>
The amount of time after the server begins shutting down before connections will be forcefully closed.
Kestrel will wait for the duration of the timeout for any ongoing request processing to complete before
terminating the connection. No new connections or requests will be accepted during this time.
</summary>
<remarks>
Defaults to 5 seconds.
</remarks>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.ThreadCount">
<summary>
The number of libuv I/O threads used to process requests.
</summary>
<remarks>
Defaults to half of <see cref="P:System.Environment.ProcessorCount" /> rounded down and clamped between 1 and 16.
</remarks>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager">
<summary>
Manages the generation of the date header value.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager"/> class.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager.GetDateHeaderValues">
<summary>
Returns a value representing the current server date/time for use in the HTTP "Date" response header
in accordance with http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18
</summary>
<returns>The value in string and byte[] format.</returns>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager.Dispose">
<summary>
Releases all resources used by the current instance of <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager"/>.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager.StartTimer">
<summary>
Starts the timer
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager.StopTimer">
<summary>
Stops the timer
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.DateHeaderValueManager.SetDateValues(System.DateTimeOffset)">
<summary>
Sets date values from a provided ticks value
</summary>
<param name="value">A DateTimeOffset value</param>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.Start">
<summary>
Called once by Connection class to begin the RequestProcessingAsync loop.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.StopAsync">
<summary>
Should be called when the server wants to initiate a shutdown. The Task returned will
become complete when the RequestProcessingAsync function has exited. It is expected that
Stop will be called on all active connections, and Task.WaitAll() will be called on every
return value.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.Abort(System.Exception)">
<summary>
Immediate kill the connection and poison the request and response streams.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.RequestProcessingAsync">
<summary>
Primary loop which consumes socket input, parses it for protocol framing, and invokes the
application delegate for as long as the socket is intended to remain open.
The resulting Task from this loop is preserved in a field which is used when the server needs
to drain and close all currently active connections.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.RequestProcessingAsync">
<summary>
Primary loop which consumes socket input, parses it for protocol framing, and invokes the
application delegate for as long as the socket is intended to remain open.
The resulting Task from this loop is preserved in a field which is used when the server needs
to drain and close all currently active connections.
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ISocketOutput">
<summary>
Operations performed for buffered socket output
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ISocketOutput.ProducingStart">
<summary>
Returns an iterator pointing to the tail of the response buffer. Response data can be appended
manually or by using <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator.CopyFrom(System.ArraySegment{System.Byte})"/>.
Be careful to ensure all appended blocks are backed by a <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolSlab"/>.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ISocketOutput.ProducingComplete(Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator)">
<summary>
Commits the response data appended to the iterator returned from <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ISocketOutput.ProducingStart"/>.
All the data up to <paramref name="end"/> will be included in the response.
A write operation isn't guaranteed to be scheduled unless <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ISocketOutput.Write(System.ArraySegment{System.Byte},System.Boolean)"/>
or <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ISocketOutput.WriteAsync(System.ArraySegment{System.Byte},System.Boolean,System.Threading.CancellationToken)"/> is called afterwards.
</summary>
<param name="end">Points to the end of the committed data.</param>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener">
<summary>
Base class for listeners in Kestrel. Listens for incoming connections
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener.CreateListenSocket">
<summary>
Creates the socket used to listen for incoming connections
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener.OnConnection(Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvStreamHandle,System.Int32)">
<summary>
Handles an incoming connection
</summary>
<param name="listenSocket">Socket being used to listen on</param>
<param name="status">Connection status</param>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerPrimary">
<summary>
A primary listener waits for incoming connections on a specified socket. Incoming
connections may be passed to a secondary listener to handle.
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerSecondary">
<summary>
A secondary listener is delegated requests from a primary listener via a named pipe or
UNIX domain socket.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerSecondary.CreateAcceptSocket">
<summary>
Creates a socket which can be used to accept an incoming connection
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.MessageBody.ForChunkedEncoding">
<summary>
http://tools.ietf.org/html/rfc2616#section-3.6.1
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.PipeListener">
<summary>
Implementation of <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener"/> that uses UNIX domain sockets as its transport.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.PipeListener.CreateListenSocket">
<summary>
Creates the socket used to listen for incoming connections
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.PipeListener.OnConnection(Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvStreamHandle,System.Int32)">
<summary>
Handles an incoming connection
</summary>
<param name="listenSocket">Socket being used to listen on</param>
<param name="status">Connection status</param>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.PipeListenerPrimary">
<summary>
An implementation of <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerPrimary"/> using UNIX sockets.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.PipeListenerPrimary.CreateListenSocket">
<summary>
Creates the socket used to listen for incoming connections
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.PipeListenerPrimary.OnConnection(Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvStreamHandle,System.Int32)">
<summary>
Handles an incoming connection
</summary>
<param name="listenSocket">Socket being used to listen on</param>
<param name="status">Connection status</param>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.PipeListenerSecondary">
<summary>
An implementation of <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerSecondary"/> using UNIX sockets.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.PipeListenerSecondary.CreateAcceptSocket">
<summary>
Creates a socket which can be used to accept an incoming connection
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.SocketOutput.WriteContext.DoWriteIfNeeded">
<summary>
First step: initiate async write if needed, otherwise go to next step
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.SocketOutput.WriteContext.DoShutdownIfNeeded">
<summary>
Second step: initiate async shutdown if needed, otherwise go to next step
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.SocketOutput.WriteContext.DoDisconnectIfNeeded">
<summary>
Third step: disconnect socket if needed, otherwise this work item is complete
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListener">
<summary>
Implementation of <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener"/> that uses TCP sockets as its transport.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListener.CreateListenSocket">
<summary>
Creates the socket used to listen for incoming connections
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListener.OnConnection(Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvStreamHandle,System.Int32)">
<summary>
Handle an incoming connection
</summary>
<param name="listenSocket">Socket being used to listen on</param>
<param name="status">Connection status</param>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListenerPrimary">
<summary>
An implementation of <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerPrimary"/> using TCP sockets.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListenerPrimary.CreateListenSocket">
<summary>
Creates the socket used to listen for incoming connections
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListenerPrimary.OnConnection(Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvStreamHandle,System.Int32)">
<summary>
Handles an incoming connection
</summary>
<param name="listenSocket">Socket being used to listen on</param>
<param name="status">Connection status</param>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListenerSecondary">
<summary>
An implementation of <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerSecondary"/> using TCP sockets.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListenerSecondary.CreateAcceptSocket">
<summary>
Creates a socket which can be used to accept an incoming connection
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.UrlPathDecoder.Unescape(Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator,Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator)">
<summary>
Unescapes the string between given memory iterators in place.
</summary>
<param name="start">The iterator points to the beginning of the sequence.</param>
<param name="end">The iterator points to the byte behind the end of the sequence.</param>
<returns>The iterator points to the byte behind the end of the processed sequence.</returns>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.UrlPathDecoder.DecodeCore(Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator@,Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator@,Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator)">
<summary>
Unescape the percent-encodings
</summary>
<param name="reader">The iterator point to the first % char</param>
<param name="writer">The place to write to</param>
<param name="end">The end of the sequence</param>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.UrlPathDecoder.UnescapePercentEncoding(Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator@,Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator)">
<summary>
Read the percent-encoding and try unescape it.
The operation first peek at the character the <paramref name="scan"/>
iterator points at. If it is % the <paramref name="scan"/> is then
moved on to scan the following to characters. If the two following
characters are hexadecimal literals they will be unescaped and the
value will be returned.
If the first character is not % the <paramref name="scan"/> iterator
will be removed beyond the location of % and -1 will be returned.
If the following two characters can't be successfully unescaped the
<paramref name="scan"/> iterator will be move behind the % and -1
will be returned.
</summary>
<param name="scan">The value to read</param>
<param name="end">The end of the sequence</param>
<returns>The unescaped byte if success. Otherwise return -1.</returns>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Http.UrlPathDecoder.ReadHex(Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator@,Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator)">
<summary>
Read the next char and convert it into hexadecimal value.
The <paramref name="scan"/> iterator will be moved to the next
byte no matter no matter whether the operation successes.
</summary>
<param name="scan">The value to read</param>
<param name="end">The end of the sequence</param>
<returns>The hexadecimal value if successes, otherwise -1.</returns>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.Constants.UnixPipeHostPrefix">
<summary>
Prefix of host name used to specify Unix sockets in the configuration.
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.ISystemClock">
<summary>
Abstracts the system clock to facilitate testing.
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.ISystemClock.UtcNow">
<summary>
Retrieves the current system time in UTC.
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool">
<summary>
Used to allocate and distribute re-usable blocks of memory.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool._blockStride">
<summary>
The gap between blocks' starting address. 4096 is chosen because most operating systems are 4k pages in size and alignment.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool._blockUnused">
<summary>
The last 64 bytes of a block are unused to prevent CPU from pre-fetching the next 64 byte into it's memory cache.
See https://github.com/aspnet/KestrelHttpServer/issues/117 and https://www.youtube.com/watch?v=L7zSU9HI-6I
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool._blockCount">
<summary>
Allocating 32 contiguous blocks per slab makes the slab size 128k. This is larger than the 85k size which will place the memory
in the large object heap. This means the GC will not try to relocate this array, so the fact it remains pinned does not negatively
affect memory management's compactification.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool._blockLength">
<summary>
4096 - 64 gives you a blockLength of 4032 usable bytes per block.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool.MaxPooledBlockLength">
<summary>
Max allocation block size for pooled blocks,
larger values can be leased but they will be disposed after use rather than returned to the pool.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool._slabLength">
<summary>
4096 * 32 gives you a slabLength of 128k contiguous bytes allocated per slab
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool._blocks">
<summary>
Thread-safe collection of blocks which are currently in the pool. A slab will pre-allocate all of the block tracking objects
and add them to this collection. When memory is requested it is taken from here first, and when it is returned it is re-added.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool._slabs">
<summary>
Thread-safe collection of slabs which have been allocated by this pool. As long as a slab is in this collection and slab.IsActive,
the blocks will be added to _blocks when returned.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool._disposedValue">
<summary>
This is part of implementing the IDisposable pattern.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool.Lease">
<summary>
Called to take a block from the pool.
</summary>
<returns>The block that is reserved for the called. It must be passed to Return when it is no longer being used.</returns>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool.AllocateSlab">
<summary>
Internal method called when a block is requested and the pool is empty. It allocates one additional slab, creates all of the
block tracking objects, and adds them all to the pool.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPool.Return(Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock)">
<summary>
Called to return a block to the pool. Once Return has been called the memory no longer belongs to the caller, and
Very Bad Things will happen if the memory is read of modified subsequently. If a caller fails to call Return and the
block tracking object is garbage collected, the block tracking object's finalizer will automatically re-create and return
a new tracking object into the pool. This will only happen if there is a bug in the server, however it is necessary to avoid
leaving "dead zones" in the slab due to lost block tracking objects.
</summary>
<param name="block">The block to return. It must have been acquired by calling Lease on the same memory pool instance.</param>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock">
<summary>
Block tracking object used by the byte buffer memory pool. A slab is a large allocation which is divided into smaller blocks. The
individual blocks are then treated as independent array segments.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.DataArrayPtr">
<summary>
Native address of the first byte of this block's Data memory. It is null for one-time-use memory, or copied from
the Slab's ArrayPtr for a slab-block segment. The byte it points to corresponds to Data.Array[0], and in practice you will always
use the DataArrayPtr + Start or DataArrayPtr + End, which point to the start of "active" bytes, or point to just after the "active" bytes.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.Data">
<summary>
The array segment describing the range of memory this block is tracking. The caller which has leased this block may only read and
modify the memory in this range.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.#ctor(System.IntPtr)">
<summary>
This object cannot be instantiated outside of the static Create method
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.Pool">
<summary>
Back-reference to the memory pool which this block was allocated from. It may only be returned to this pool.
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.Slab">
<summary>
Back-reference to the slab from which this block was taken, or null if it is one-time-use memory.
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.Array">
<summary>
Convenience accessor
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.Start">
<summary>
The Start represents the offset into Array where the range of "active" bytes begins. At the point when the block is leased
the Start is guaranteed to be equal to Array.Offset. The value of Start may be assigned anywhere between Data.Offset and
Data.Offset + Data.Count, and must be equal to or less than End.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.End">
<summary>
The End represents the offset into Array where the range of "active" bytes ends. At the point when the block is leased
the End is guaranteed to be equal to Array.Offset. The value of Start may be assigned anywhere between Data.Offset and
Data.Offset + Data.Count, and must be equal to or less than End.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.Next">
<summary>
Reference to the next block of data when the overall "active" bytes spans multiple blocks. At the point when the block is
leased Next is guaranteed to be null. Start, End, and Next are used together in order to create a linked-list of discontiguous
working memory. The "active" memory is grown when bytes are copied in, End is increased, and Next is assigned. The "active"
memory is shrunk when bytes are consumed, Start is increased, and blocks are returned to the pool.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.Reset">
<summary>
called when the block is returned to the pool. mutable values are re-assigned to their guaranteed initialized state.
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.ToString">
<summary>
ToString overridden for debugger convenience. This displays the "active" byte information in this block as ASCII characters.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolBlock.GetIterator">
<summary>
acquires a cursor pointing into this block at the Start of "active" byte information
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator.FindFirstEqualByte(System.Numerics.Vector{System.Byte}@)">
<summary>
Find first byte
</summary>
<param name="byteEquals"></param >
<returns>The first index of the result vector</returns>
<exception cref="T:System.InvalidOperationException">byteEquals = 0</exception>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator.Put(System.Byte)">
<summary>
Save the data at the current location then move to the next available space.
</summary>
<param name="data">The byte to be saved.</param>
<returns>true if the operation successes. false if can't find available space.</returns>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownMethod(Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator,System.String@)">
<summary>
Checks that up to 8 bytes from <paramref name="begin"/> correspond to a known HTTP method.
</summary>
<remarks>
A "known HTTP method" can be an HTTP method name defined in the HTTP/1.1 RFC.
Since all of those fit in at most 8 bytes, they can be optimally looked up by reading those bytes as a long. Once
in that format, it can be checked against the known method.
The Known Methods (CONNECT, DELETE, GET, HEAD, PATCH, POST, PUT, OPTIONS, TRACE) are all less than 8 bytes
and will be compared with the required space. A mask is used if the Known method is less than 8 bytes.
To optimize performance the GET method will be checked first.
</remarks>
<param name="begin">The iterator from which to start the known string lookup.</param>
<param name="knownMethod">A reference to a pre-allocated known string, if the input matches any.</param>
<returns><c>true</c> if the input matches a known string, <c>false</c> otherwise.</returns>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIterator,System.String@)">
<summary>
Checks 9 bytes from <paramref name="begin"/> correspond to a known HTTP version.
</summary>
<remarks>
A "known HTTP version" Is is either HTTP/1.0 or HTTP/1.1.
Since those fit in 8 bytes, they can be optimally looked up by reading those bytes as a long. Once
in that format, it can be checked against the known versions.
The Known versions will be checked with the required '\r'.
To optimize performance the HTTP/1.1 will be checked first.
</remarks>
<param name="begin">The iterator from which to start the known string lookup.</param>
<param name="knownVersion">A reference to a pre-allocated known string, if the input matches any.</param>
<returns><c>true</c> if the input matches a known string, <c>false</c> otherwise.</returns>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolSlab">
<summary>
Slab tracking object used by the byte buffer memory pool. A slab is a large allocation which is divided into smaller blocks. The
individual blocks are then treated as independent array segments.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolSlab._gcHandle">
<summary>
This handle pins the managed array in memory until the slab is disposed. This prevents it from being
relocated and enables any subsections of the array to be used as native memory pointers to P/Invoked API calls.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolSlab.Array">
<summary>
The managed memory allocated in the large object heap.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolSlab.ArrayPtr">
<summary>
The native memory pointer of the pinned Array. All block native addresses are pointers into the memory
ranging from ArrayPtr to ArrayPtr + Array.Length
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolSlab.IsActive">
<summary>
True as long as the blocks from this slab are to be considered returnable to the pool. In order to shrink the
memory pool size an entire slab must be removed. That is done by (1) setting IsActive to false and removing the
slab from the pool's _slabs collection, (2) as each block currently in use is Return()ed to the pool it will
be allowed to be garbage collected rather than re-pooled, and (3) when all block tracking objects are garbage
collected and the slab is no longer references the slab will be garbage collected and the memory unpinned will
be unpinned by the slab's Dispose.
</summary>
</member>
<member name="F:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolSlab._disposedValue">
<summary>
Part of the IDisposable implementation
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.SystemClock">
<summary>
Provides access to the normal system clock.
</summary>
</member>
<member name="P:Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.SystemClock.UtcNow">
<summary>
Retrieves the current system time in UTC.
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Disposable">
<summary>
Summary description for Disposable
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelThread">
<summary>
Summary description for KestrelThread
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelTrace">
<summary>
Summary description for KestrelTrace
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvConnectRequest">
<summary>
Summary description for UvWriteRequest
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvMemory">
<summary>
Summary description for UvMemory
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvShutdownReq">
<summary>
Summary description for UvShutdownRequest
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle.CreateIPEndpoint(Microsoft.AspNetCore.Server.Kestrel.ServerAddress)">
<summary>
Returns an <see cref="T:System.Net.IPEndPoint"/> for the given host an port.
If the host parameter isn't "localhost" or an IP address, use IPAddress.Any.
</summary>
</member>
<member name="T:Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvWriteReq">
<summary>
Summary description for UvWriteRequest
</summary>
</member>
<member name="M:Microsoft.AspNetCore.Hosting.WebHostBuilderKestrelExtensions.UseKestrel(Microsoft.AspNetCore.Hosting.IWebHostBuilder)">
<summary>
Specify Kestrel as the server to be used by the web host.
</summary>
<param name="hostBuilder">
The Microsoft.AspNetCore.Hosting.IWebHostBuilder to configure.
</param>
<returns>
The Microsoft.AspNetCore.Hosting.IWebHostBuilder.
</returns>
</member>
<member name="M:Microsoft.AspNetCore.Hosting.WebHostBuilderKestrelExtensions.UseKestrel(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action{Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions})">
<summary>
Specify Kestrel as the server to be used by the web host.
</summary>
<param name="hostBuilder">
The Microsoft.AspNetCore.Hosting.IWebHostBuilder to configure.
</param>
<param name="options">
A callback to configure Kestrel options.
</param>
<returns>
The Microsoft.AspNetCore.Hosting.IWebHostBuilder.
</returns>
</member>
<member name="M:Microsoft.AspNetCore.Hosting.KestrelServerOptionsConnectionLoggingExtensions.UseConnectionLogging(Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions)">
<summary>
Emits verbose logs for bytes read from and written to the connection.
</summary>
<returns>
The Microsoft.AspNetCore.Server.KestrelServerOptions.
</returns>
</member>
<member name="M:Microsoft.AspNetCore.Hosting.KestrelServerOptionsConnectionLoggingExtensions.UseConnectionLogging(Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions,System.String)">
<summary>
Emits verbose logs for bytes read from and written to the connection.
</summary>
<returns>
The Microsoft.AspNetCore.Server.KestrelServerOptions.
</returns>
</member>
</members>
</doc>