<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets</name>
    </assembly>
    <members>
        <member name="T:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionContextFactory">
            <summary>
            A factory for socket based connections contexts.
            </summary>
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionContextFactory.#ctor(Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions,Microsoft.Extensions.Logging.ILogger)">
            <summary>
            Creates the <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionContextFactory"/>.
            </summary>
            <param name="options">The options.</param>
            <param name="logger">The logger.</param>
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionContextFactory.Create(System.Net.Sockets.Socket)">
            <summary>
            Create a <see cref="T:Microsoft.AspNetCore.Connections.ConnectionContext"/> for a socket.
            </summary>
            <param name="socket">The socket for the connection.</param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionContextFactory.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions">
            <summary>
            Options for <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionContextFactory"/>.
            </summary>
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions.#ctor">
            <summary>
            Create a new instance.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions.IOQueueCount">
            <summary>
            The number of I/O queues used to process requests. Set to 0 to directly schedule I/O to the ThreadPool.
            </summary>
            <remarks>
            Defaults to a value based on and limited to <see cref="P:System.Environment.ProcessorCount" />.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions.WaitForDataBeforeAllocatingBuffer">
            <summary>
            Wait until there is data available to allocate a buffer. Setting this to false can increase throughput at the cost of increased memory usage.
            </summary>
            <remarks>
            Defaults to true.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions.MaxReadBufferSize">
            <summary>
            Gets or sets the maximum unconsumed incoming bytes the transport will buffer.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions.MaxWriteBufferSize">
            <summary>
            Gets or sets the maximum outgoing bytes the transport will buffer before applying write backpressure.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions.UnsafePreferInlineScheduling">
            <summary>
            Inline application and transport continuations instead of dispatching to the threadpool.
            </summary>
            <remarks>
            This will run application code on the IO thread which is why this is unsafe.
            It is recommended to set the DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS environment variable to '1' when using this setting to also inline the completions
            at the runtime layer as well.
            This setting can make performance worse if there is expensive work that will end up holding onto the IO thread for longer than needed.
            Test to make sure this setting helps performance.
            </remarks>
        </member>
        <member name="T:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory">
            <summary>
            A factory for socket based connections.
            </summary>
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.#ctor(Microsoft.Extensions.Options.IOptions{Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions},Microsoft.Extensions.Logging.ILoggerFactory)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory"/> class.
            </summary>
            <param name="options">The transport options.</param>
            <param name="loggerFactory">The logger factory.</param>
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(System.Net.EndPoint,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.CanBind(System.Net.EndPoint)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions">
            <summary>
            Options for socket based transports.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.IOQueueCount">
            <summary>
            The number of I/O queues used to process requests. Set to 0 to directly schedule I/O to the ThreadPool.
            </summary>
            <remarks>
            Defaults to a value based on and limited to <see cref="P:System.Environment.ProcessorCount" />.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.WaitForDataBeforeAllocatingBuffer">
            <summary>
            Wait until there is data available to allocate a buffer. Setting this to false can increase throughput at the cost of increased memory usage.
            </summary>
            <remarks>
            Defaults to true.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.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.Transport.Sockets.SocketTransportOptions.Backlog">
            <summary>
            The maximum length of the pending connection queue.
            </summary>
            <remarks>
            Defaults to 512 pending connections.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.MaxReadBufferSize">
            <summary>
            Gets or sets the maximum unconsumed incoming bytes the transport will buffer.
            <para>
            A value of <see langword="null"/> or 0 disables backpressure entirely allowing unlimited buffering.
            Unlimited server buffering is a security risk given untrusted clients.
            </para>
            </summary>
            <remarks>
            Defaults to 1 MiB.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.MaxWriteBufferSize">
            <summary>
            Gets or sets the maximum outgoing bytes the transport will buffer before applying write backpressure.
            <para>
            A value of <see langword="null"/> or 0 disables backpressure entirely allowing unlimited buffering.
            Unlimited server buffering is a security risk given untrusted clients.
            </para>
            </summary>
            <remarks>
            Defaults to 64 KiB.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.UnsafePreferInlineScheduling">
            <summary>
            Inline application and transport continuations instead of dispatching to the threadpool.
            </summary>
            <remarks>
            This will run application code on the IO thread which is why this is unsafe.
            It is recommended to set the DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS environment variable to '1' when using this setting to also inline the completions
            at the runtime layer as well.
            This setting can make performance worse if there is expensive work that will end up holding onto the IO thread for longer than needed.
            Test to make sure this setting helps performance.
            </remarks>
            <remarks>
            Defaults to false.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateBoundListenSocket">
            <summary>
            A function used to create a new <see cref="T:System.Net.Sockets.Socket"/> to listen with. If
            not set, <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(System.Net.EndPoint)" /> is used.
            </summary>
            <remarks>
            Implementors are expected to call <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)"/> on the
            <see cref="T:System.Net.Sockets.Socket"/>. Please note that <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(System.Net.EndPoint)"/>
            calls <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)"/> as part of its implementation, so implementors
            using this method do not need to call it again.
            </remarks>
            <remarks>
            Defaults to <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(System.Net.EndPoint)"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(System.Net.EndPoint)">
            <summary>
            Creates a default instance of <see cref="T:System.Net.Sockets.Socket"/> for the given <see cref="T:System.Net.EndPoint"/>
            that can be used by a connection listener to listen for inbound requests. <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)"/>
            is called by this method.
            </summary>
            <param name="endpoint">
            An <see cref="T:System.Net.EndPoint"/>.
            </param>
            <returns>
            A <see cref="T:System.Net.Sockets.Socket"/> instance.
            </returns>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketsStrings.OnlyIPEndPointsSupported">
            <summary>Only ListenType.IPEndPoint is supported by the Socket Transport. https://go.microsoft.com/fwlink/?linkid=874850</summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketsStrings.TransportAlreadyBound">
            <summary>Transport is already bound.</summary>
        </member>
        <member name="T:Microsoft.AspNetCore.Hosting.WebHostBuilderSocketExtensions">
            <summary>
            <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> extension methods to configure the Socket transport to be used by Kestrel.
            </summary>
        </member>
        <member name="M:Microsoft.AspNetCore.Hosting.WebHostBuilderSocketExtensions.UseSockets(Microsoft.AspNetCore.Hosting.IWebHostBuilder)">
            <summary>
            Specify Sockets as the transport to be used by Kestrel.
            </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.WebHostBuilderSocketExtensions.UseSockets(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action{Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions})">
            <summary>
            Specify Sockets as the transport to be used by Kestrel.
            </summary>
            <param name="hostBuilder">
            The Microsoft.AspNetCore.Hosting.IWebHostBuilder to configure.
            </param>
            <param name="configureOptions">
            A callback to configure transport options.
            </param>
            <returns>
            The Microsoft.AspNetCore.Hosting.IWebHostBuilder.
            </returns>
        </member>
        <member name="T:System.IO.Pipelines.DuplexPipe">
             <remarks>
             A <see cref="T:System.IO.Pipelines.Pipe"/> is a reader-writer pair, where content written to the writer can be read from the reader.
            
             An <see cref="T:System.IO.Pipelines.IDuplexPipe"/> is *not* a pipe.  It is also a reader-writer pair, but the reader and writer are not
             connected.  Rather, it can be regarded as *one end* of a two-way (i.e. duplex) communication channel, where content
             written to the writer is sent to the counterparty and content received from the counterparty is readable from the
             reader.
            
             A <see cref="T:System.IO.Pipelines.DuplexPipe.DuplexPipePair"/> is a pair of <see cref="T:System.IO.Pipelines.IDuplexPipe"/> instances, each of which represents one end of
             a two-way communication channel.  (In a sense, this makes it a "duplex pipe".)  It can also be viewed as a pair of
             <see cref="T:System.IO.Pipelines.Pipe"/>s, as these underlie the <see cref="T:System.IO.Pipelines.IDuplexPipe"/> instances.  In either view, it is composed of
             two <see cref="T:System.IO.Pipelines.PipeReader"/>s and two <see cref="T:System.IO.Pipelines.PipeWriter"/>s - it is only how they are grouped that differs.
             </remarks>
        </member>
    </members>
</doc>
