<?xml version="1.0"?>
<doc>
    <assembly>
        <name>DotNetty.Handlers</name>
    </assembly>
    <members>
        <member name="T:DotNetty.Handlers.Flow.FlowControlHandler">
             The {@link FlowControlHandler} ensures that only one message per {@code read()} is sent downstream.
            
             Classes such as {@link ByteToMessageDecoder} or {@link MessageToByteEncoder} are free to emit as
             many events as they like for any given input. A channel's auto reading configuration doesn't usually
             apply in these scenarios. This is causing problems in downstream {@link ChannelHandler}s that would
             like to hold subsequent events while they're processing one event. It's a common problem with the
             {@code HttpObjectDecoder} that will very often fire a {@code HttpRequest} that is immediately followed
             by a {@code LastHttpContent} event.
            
             <pre>{@code
             ChannelPipeline pipeline = ...;
            
             pipeline.addLast(new HttpServerCodec());
             pipeline.addLast(new FlowControlHandler());
            
             pipeline.addLast(new MyExampleHandler());
            
             class MyExampleHandler extends ChannelInboundHandlerAdapter {
               @Override
               public void channelRead(IChannelHandlerContext ctx, Object msg) {
                 if (msg instanceof HttpRequest) {
                   ctx.channel().config().setAutoRead(false);
            
                   // The FlowControlHandler will hold any subsequent events that
                   // were emitted by HttpObjectDecoder until auto reading is turned
                   // back on or Channel#read() is being called.
                 }
               }
             }
             }</pre>
            
             @see ChannelConfig#setAutoRead(bool)
        </member>
        <member name="P:DotNetty.Handlers.Flow.FlowControlHandler.IsQueueEmpty">
            Determine if the underlying {@link Queue} is empty. This method exists for
            testing, debugging and inspection purposes and it is not Thread safe!
        </member>
        <member name="M:DotNetty.Handlers.Flow.FlowControlHandler.Destroy">
            Releases all messages and destroys the {@link Queue}.
        </member>
        <member name="M:DotNetty.Handlers.Flow.FlowControlHandler.Dequeue(DotNetty.Transport.Channels.IChannelHandlerContext,System.Int32)">
             Dequeues one or many (or none) messages depending on the channel's auto
             reading state and returns the number of messages that were consumed from
             the internal queue.
            
             The {@code minConsume} argument is used to force {@code dequeue()} into
             consuming that number of messages regardless of the channel's auto
             reading configuration.
            
             @see #read(ChannelHandlerContext)
             @see #channelRead(ChannelHandlerContext, Object)
        </member>
        <member name="T:DotNetty.Handlers.Logging.LoggingHandler">
            <summary>
                A <see cref="T:DotNetty.Transport.Channels.IChannelHandler" /> that logs all events using a logging framework.
                By default, all events are logged at <tt>DEBUG</tt> level.
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor">
            <summary>
                Creates a new instance whose logger name is the fully qualified class
                name of the instance with hex dump enabled.
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(DotNetty.Handlers.Logging.LogLevel)">
            <summary>
                Creates a new instance whose logger name is the fully qualified class
                name of the instance
            </summary>
            <param name="level">the log level</param>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.Type)">
            <summary>
                Creates a new instance with the specified logger name and with hex dump
                enabled
            </summary>
            <param name="type">the class type to generate the logger for</param>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.Type,DotNetty.Handlers.Logging.LogLevel)">
            <summary>
                Creates a new instance with the specified logger name.
            </summary>
            <param name="type">the class type to generate the logger for</param>
            <param name="level">the log level</param>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.String)">
            <summary>
                Creates a new instance with the specified logger name using the default log level.
            </summary>
            <param name="name">the name of the class to use for the logger</param>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.String,DotNetty.Handlers.Logging.LogLevel)">
            <summary>
                Creates a new instance with the specified logger name.
            </summary>
            <param name="name">the name of the class to use for the logger</param>
            <param name="level">the log level</param>
        </member>
        <member name="P:DotNetty.Handlers.Logging.LoggingHandler.Level">
            <summary>
                Returns the <see cref="T:DotNetty.Handlers.Logging.LogLevel" /> that this handler uses to log
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String)">
            <summary>
                Formats an event and returns the formatted message
            </summary>
            <param name="eventName">the name of the event</param>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object)">
            <summary>
                Formats an event and returns the formatted message.
            </summary>
            <param name="eventName">the name of the event</param>
            <param name="arg">the argument of the event</param>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object,System.Object)">
            <summary>
                Formats an event and returns the formatted message.  This method is currently only used for formatting
                <see cref="M:DotNetty.Transport.Channels.IChannelHandler.ConnectAsync(DotNetty.Transport.Channels.IChannelHandlerContext,System.Net.EndPoint,System.Net.EndPoint)" />
            </summary>
            <param name="eventName">the name of the event</param>
            <param name="firstArg">the first argument of the event</param>
            <param name="secondArg">the second argument of the event</param>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatByteBuffer(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,DotNetty.Buffers.IByteBuffer)">
            <summary>
                Generates the default log message of the specified event whose argument is a  <see cref="T:DotNetty.Buffers.IByteBuffer" />.
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatByteBufferHolder(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,DotNetty.Buffers.IByteBufferHolder)">
            <summary>
                Generates the default log message of the specified event whose argument is a <see cref="T:DotNetty.Buffers.IByteBufferHolder" />.
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatSimple(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object)">
            <summary>
                Generates the default log message of the specified event whose argument is an arbitrary object.
            </summary>
        </member>
        <member name="T:DotNetty.Handlers.Timeout.IdleState">
            <summary>
            An <see cref="T:System.Enum"/> that represents the idle state of a <see cref="T:DotNetty.Transport.Channels.IChannel"/>.
            </summary>
        </member>
        <member name="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle">
            <summary>
            No data was received for a while.
            </summary>
        </member>
        <member name="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle">
            <summary>
            No data was sent for a while.
            </summary>
        </member>
        <member name="F:DotNetty.Handlers.Timeout.IdleState.AllIdle">
            <summary>
            No data was either received or sent for a while.
            </summary>
        </member>
        <member name="T:DotNetty.Handlers.Timeout.IdleStateEvent">
            <summary>
            A user event triggered by <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/> when a <see cref="T:DotNetty.Transport.Channels.IChannel"/> is idle.
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateEvent.#ctor(DotNetty.Handlers.Timeout.IdleState,System.Boolean)">
            <summary>
            Constructor for sub-classes.
            </summary>
            <param name="state">the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> which triggered the event.</param>
            <param name="first"><code>true</code> if its the first idle event for the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>.</param>
        </member>
        <member name="P:DotNetty.Handlers.Timeout.IdleStateEvent.State">
            <summary>
            Returns the idle state.
            </summary>
            <value>The state.</value>
        </member>
        <member name="P:DotNetty.Handlers.Timeout.IdleStateEvent.First">
            <summary>
            Returns <code>true</code> if this was the first event for the <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>
            </summary>
            <returns><code>true</code> if first; otherwise, <code>false</code>.</returns>
        </member>
        <member name="T:DotNetty.Handlers.Timeout.IdleStateHandler">
             <summary>
             Triggers an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> when a <see cref="T:DotNetty.Transport.Channels.IChannel"/> has not performed
             read, write, or both operation for a while.
             
             <para>
             
             <h3>Supported idle states</h3>
             <table border="1">
                 <tr>
                     <th>Property</th><th>Meaning</th>
                 </tr>
                 <tr>
                     <td><code>readerIdleTime</code></td>
                     <td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
                         will be triggered when no read was performed for the specified period of
                         time.  Specify <code>0</code> to disable.
                     </td>
                 </tr>
                 <tr>
                     <td><code>writerIdleTime</code></td>
                     <td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
                         will be triggered when no write was performed for the specified period of
                         time.  Specify <code>0</code> to disable.</td>
                 </tr>
                 <tr>
                     <td><code>allIdleTime</code></td>
                     <td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
                         will be triggered when neither read nor write was performed for the
                         specified period of time.  Specify <code>0</code> to disable.</td>
                 </tr>
             </table>
             </para>
             
             <para>
             
             <example>
            
             An example that sends a ping message when there is no outbound traffic
             for 30 seconds.  The connection is closed when there is no inbound traffic
             for 60 seconds.
            
             <c>
             var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
            
             bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
             {
                 IChannelPipeline pipeline = channel.Pipeline;
                 
                 pipeline.AddLast("idleStateHandler", new <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>(60, 30, 0);
                 pipeline.AddLast("myHandler", new MyHandler());
             }    
             </c>
             
             Handler should handle the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>  triggered by <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>.
             
             <c>
             public class MyHandler : ChannelDuplexHandler 
             {
                 public override void UserEventTriggered(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Object"/> evt)
                 {
                     if(evt is <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>) 
                     {
                         <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> e = (<see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>) evt;
                         if (e.State == <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>.ReaderIdle) 
                         {
                             ctx.close();
                         } 
                         else if(e.State == <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>.WriterIdle) 
                         {
                             ctx.writeAndFlush(new PingMessage());
                         }
                      }
                  }
             }
             </c>
             </example>
             </para>
             
             <seealso cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>
             <seealso cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>
             </summary>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance firing <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>s.
            </summary>
            <param name="readerIdleTimeSeconds">
                an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
                will be triggered when no read was performed for the specified
                period of time.  Specify <code>0</code> to disable.
            </param>
            <param name="writerIdleTimeSeconds">
                an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
                will be triggered when no write was performed for the specified
                period of time.  Specify <code>0</code> to disable.
            </param>
            <param name="allIdleTimeSeconds">
                an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
                will be triggered when neither read nor write was performed for
                the specified period of time.  Specify <code>0</code> to disable.
            </param>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.TimeSpan,System.TimeSpan,System.TimeSpan)">
            <summary>
            <see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)"/>
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance firing <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>s.
            </summary>
            <param name="observeOutput">
                whether or not the consumption of <code>bytes</code> should be taken into
                consideration when assessing write idleness. The default is <code>false</code>.
            </param>
            <param name="readerIdleTime">
                an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
                will be triggered when no read was performed for the specified
                period of time.  Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
            </param>
            <param name="writerIdleTime">
                an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
                will be triggered when no write was performed for the specified
                period of time.  Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
            </param>
            <param name="allIdleTime">
                an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
                will be triggered when neither read nor write was performed for
                the specified period of time.  Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
            </param>
        </member>
        <member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.ReaderIdleTime">
            <summary>
            Return the readerIdleTime that was given when instance this class in milliseconds.
            </summary>
            <returns>The reader idle time in millis.</returns>
        </member>
        <member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.WriterIdleTime">
            <summary>
            Return the writerIdleTime that was given when instance this class in milliseconds.
            </summary>
            <returns>The writer idle time in millis.</returns>
        </member>
        <member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.AllIdleTime">
            <summary>
            Return the allIdleTime that was given when instance this class in milliseconds.
            </summary>
            <returns>The all idle time in millis.</returns>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.Ticks">
            <summary>
            This method is visible for testing!
            </summary>
            <returns></returns>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.Schedule(DotNetty.Transport.Channels.IChannelHandlerContext,System.Action{System.Object,System.Object},System.Object,System.Object,System.TimeSpan)">
            <summary>
            This method is visible for testing!
            </summary>
            <param name="ctx"></param>
            <param name="task"></param>
            <param name="context"></param>
            <param name="state"></param>
            <param name="delay"></param>
            <returns></returns>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.ChannelIdle(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Handlers.Timeout.IdleStateEvent)">
            <summary>
            Is called when an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> should be fired. This implementation calls
            <see cref="M:DotNetty.Transport.Channels.IChannelHandlerContext.FireUserEventTriggered(System.Object)"/>.
            </summary>
            <param name="context">Context.</param>
            <param name="stateEvent">Evt.</param>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.NewIdleStateEvent(DotNetty.Handlers.Timeout.IdleState,System.Boolean)">
            <summary>
            Returns a <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>.
            </summary>
            <param name="state"></param>
            <param name="first"></param>
            <returns></returns>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.InitOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext)">
            <summary>
            <see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.HasOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext,System.Boolean)"/>
            </summary>
            <param name="ctx"></param>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.HasOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext,System.Boolean)">
            <summary>
            Returns <code>true</code> if and only if the <see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)"/>
            was constructed
            with <code>observeOutput</code> enabled and there has been an observed change in the
            <see cref="T:DotNetty.Transport.Channels.ChannelOutboundBuffer"/> between two consecutive calls of this method.
            https://github.com/netty/netty/issues/6150
            </summary>
            <param name="ctx"></param>
            <param name="first"></param>
            <returns></returns>
        </member>
        <member name="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler">
             <summary>
             Raises a <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutException"/> when no data was read within a certain
             period of time.
            
             <pre>
             The connection is closed when there is no inbound traffic
             for 30 seconds.
            
             <example>
             <c>
             var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
            
             bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
             {
                 IChannelPipeline pipeline = channel.Pipeline;
                 
                 pipeline.AddLast("readTimeoutHandler", new <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>(30);
                 pipeline.AddLast("myHandler", new MyHandler());
             } 
             </c>
                        
             <c>
             public class MyHandler : ChannelDuplexHandler 
             {
                 public override void ExceptionCaught(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Exception"/> exception)
                 {
                     if(exception is <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutException"/>) 
                     {
                         // do somethind
                     }
                     else
                     {
                         base.ExceptionCaught(context, cause);
                     }
                  }
             }
             </c>
             </example>
             </pre>
             
             <seealso cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>
             <seealso cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>
             </summary>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
            </summary>
            <param name="timeoutSeconds">Timeout in seconds.</param>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.#ctor(System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
            </summary>
            <param name="timeout">Timeout.</param>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.ReadTimedOut(DotNetty.Transport.Channels.IChannelHandlerContext)">
            <summary>
            Is called when a read timeout was detected.
            </summary>
            <param name="context">Context.</param>
        </member>
        <member name="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler">
             <summary>
             Raises a <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutException"/> when a write operation cannot finish in a certain period of time.
             
             <para>
             <example>
             
             The connection is closed when a write operation cannot finish in 30 seconds.
            
             <c>
             var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
            
             bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
             {
                 IChannelPipeline pipeline = channel.Pipeline;
                 
                 pipeline.AddLast("writeTimeoutHandler", new <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>(30);
                 pipeline.AddLast("myHandler", new MyHandler());
             }    
             </c>
             
             <c>
             public class MyHandler : ChannelDuplexHandler 
             {
                 public override void ExceptionCaught(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Exception"/> exception)
                 {
                     if(exception is <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutException"/>) 
                     {
                         // do somethind
                     }
                     else
                     {
                         base.ExceptionCaught(context, cause);
                     }
                  }
             }
             </c>
             
             </example>
             </para>
             <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>
             <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>
             </summary>
        </member>
        <member name="F:DotNetty.Handlers.Timeout.WriteTimeoutHandler.tasks">
            <summary>
            A doubly-linked list to track all WriteTimeoutTasks.
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
            </summary>
            <param name="timeoutSeconds">Timeout in seconds.</param>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.#ctor(System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
            </summary>
            <param name="timeout">Timeout.</param>
        </member>
        <member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.WriteTimedOut(DotNetty.Transport.Channels.IChannelHandlerContext)">
            <summary>
            Is called when a write timeout was detected
            </summary>
            <param name="context">Context.</param>
        </member>
        <member name="T:DotNetty.Handlers.Tls.NotSslRecordException">
            <summary>
                Special exception which will get thrown if a packet is
                received that not looks like a TLS/SSL record. A user can check for
                this <see cref="T:DotNetty.Handlers.Tls.NotSslRecordException" /> and so detect if one peer tries to
                use secure and the other plain connection.
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Tls.TlsHandler.Unwrap(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Buffers.IByteBuffer,System.Int32,System.Int32,System.Collections.Generic.List{System.ValueTuple{System.Int32,System.Byte}},System.Collections.Generic.List{System.Object})">
            <summary>Unwraps inbound SSL records.</summary>
        </member>
        <member name="M:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.#ctor">
            <summary>
                Creates a new event that indicates a successful handshake.
            </summary>
        </member>
        <member name="M:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.#ctor(System.Exception)">
            <summary>
                Creates a new event that indicates an unsuccessful handshake.
                Use {@link #SUCCESS} to indicate a successful handshake.
            </summary>
        </member>
        <member name="P:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.IsSuccessful">
            <summary>
                Return {@code true} if the handshake was successful
            </summary>
        </member>
        <member name="P:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.Exception">
            <summary>
                Return the {@link Throwable} if {@link #isSuccess()} returns {@code false}
                and so the handshake failed.
            </summary>
        </member>
        <member name="T:DotNetty.Handlers.Tls.TlsUtils">
            Utilities for TLS packets.
        </member>
        <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_CHANGE_CIPHER_SPEC">
            change cipher spec
        </member>
        <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_ALERT">
            alert
        </member>
        <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_HANDSHAKE">
            handshake
        </member>
        <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_APPLICATION_DATA">
            application data
        </member>
        <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_RECORD_HEADER_LENGTH">
            the length of the ssl record header (in bytes)
        </member>
        <member name="M:DotNetty.Handlers.Tls.TlsUtils.GetEncryptedPacketLength(DotNetty.Buffers.IByteBuffer,System.Int32,System.Byte@)">
            <summary>
                Return how much bytes can be read out of the encrypted data. Be aware that this method will not increase
                the readerIndex of the given <see cref="T:DotNetty.Buffers.IByteBuffer"/>.
            </summary>
            <param name="buffer">
                The <see cref="T:DotNetty.Buffers.IByteBuffer"/> to read from. Be aware that it must have at least
                <see cref="F:DotNetty.Handlers.Tls.TlsUtils.SSL_RECORD_HEADER_LENGTH"/> bytes to read,
                otherwise it will throw an <see cref="T:System.ArgumentException"/>.
            </param>
            <param name="offset">Offset to record start.</param>
            <returns>
                The length of the encrypted packet that is included in the buffer. This will
                return <c>-1</c> if the given <see cref="T:DotNetty.Buffers.IByteBuffer"/> is not encrypted at all.
            </returns>
        </member>
    </members>
</doc>
