592 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			XML
		
	
	
			
		
		
	
	
			592 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			XML
		
	
	
<?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<ISocketChannel>(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<ISocketChannel>(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<ISocketChannel>(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>
 |