DotNetty.Handlers.xml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591
  1. <?xml version="1.0"?>
  2. <doc>
  3. <assembly>
  4. <name>DotNetty.Handlers</name>
  5. </assembly>
  6. <members>
  7. <member name="T:DotNetty.Handlers.Flow.FlowControlHandler">
  8. The {@link FlowControlHandler} ensures that only one message per {@code read()} is sent downstream.
  9. Classes such as {@link ByteToMessageDecoder} or {@link MessageToByteEncoder} are free to emit as
  10. many events as they like for any given input. A channel's auto reading configuration doesn't usually
  11. apply in these scenarios. This is causing problems in downstream {@link ChannelHandler}s that would
  12. like to hold subsequent events while they're processing one event. It's a common problem with the
  13. {@code HttpObjectDecoder} that will very often fire a {@code HttpRequest} that is immediately followed
  14. by a {@code LastHttpContent} event.
  15. <pre>{@code
  16. ChannelPipeline pipeline = ...;
  17. pipeline.addLast(new HttpServerCodec());
  18. pipeline.addLast(new FlowControlHandler());
  19. pipeline.addLast(new MyExampleHandler());
  20. class MyExampleHandler extends ChannelInboundHandlerAdapter {
  21. @Override
  22. public void channelRead(IChannelHandlerContext ctx, Object msg) {
  23. if (msg instanceof HttpRequest) {
  24. ctx.channel().config().setAutoRead(false);
  25. // The FlowControlHandler will hold any subsequent events that
  26. // were emitted by HttpObjectDecoder until auto reading is turned
  27. // back on or Channel#read() is being called.
  28. }
  29. }
  30. }
  31. }</pre>
  32. @see ChannelConfig#setAutoRead(bool)
  33. </member>
  34. <member name="P:DotNetty.Handlers.Flow.FlowControlHandler.IsQueueEmpty">
  35. Determine if the underlying {@link Queue} is empty. This method exists for
  36. testing, debugging and inspection purposes and it is not Thread safe!
  37. </member>
  38. <member name="M:DotNetty.Handlers.Flow.FlowControlHandler.Destroy">
  39. Releases all messages and destroys the {@link Queue}.
  40. </member>
  41. <member name="M:DotNetty.Handlers.Flow.FlowControlHandler.Dequeue(DotNetty.Transport.Channels.IChannelHandlerContext,System.Int32)">
  42. Dequeues one or many (or none) messages depending on the channel's auto
  43. reading state and returns the number of messages that were consumed from
  44. the internal queue.
  45. The {@code minConsume} argument is used to force {@code dequeue()} into
  46. consuming that number of messages regardless of the channel's auto
  47. reading configuration.
  48. @see #read(ChannelHandlerContext)
  49. @see #channelRead(ChannelHandlerContext, Object)
  50. </member>
  51. <member name="T:DotNetty.Handlers.Logging.LoggingHandler">
  52. <summary>
  53. A <see cref="T:DotNetty.Transport.Channels.IChannelHandler" /> that logs all events using a logging framework.
  54. By default, all events are logged at <tt>DEBUG</tt> level.
  55. </summary>
  56. </member>
  57. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor">
  58. <summary>
  59. Creates a new instance whose logger name is the fully qualified class
  60. name of the instance with hex dump enabled.
  61. </summary>
  62. </member>
  63. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(DotNetty.Handlers.Logging.LogLevel)">
  64. <summary>
  65. Creates a new instance whose logger name is the fully qualified class
  66. name of the instance
  67. </summary>
  68. <param name="level">the log level</param>
  69. </member>
  70. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.Type)">
  71. <summary>
  72. Creates a new instance with the specified logger name and with hex dump
  73. enabled
  74. </summary>
  75. <param name="type">the class type to generate the logger for</param>
  76. </member>
  77. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.Type,DotNetty.Handlers.Logging.LogLevel)">
  78. <summary>
  79. Creates a new instance with the specified logger name.
  80. </summary>
  81. <param name="type">the class type to generate the logger for</param>
  82. <param name="level">the log level</param>
  83. </member>
  84. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.String)">
  85. <summary>
  86. Creates a new instance with the specified logger name using the default log level.
  87. </summary>
  88. <param name="name">the name of the class to use for the logger</param>
  89. </member>
  90. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.String,DotNetty.Handlers.Logging.LogLevel)">
  91. <summary>
  92. Creates a new instance with the specified logger name.
  93. </summary>
  94. <param name="name">the name of the class to use for the logger</param>
  95. <param name="level">the log level</param>
  96. </member>
  97. <member name="P:DotNetty.Handlers.Logging.LoggingHandler.Level">
  98. <summary>
  99. Returns the <see cref="T:DotNetty.Handlers.Logging.LogLevel" /> that this handler uses to log
  100. </summary>
  101. </member>
  102. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String)">
  103. <summary>
  104. Formats an event and returns the formatted message
  105. </summary>
  106. <param name="eventName">the name of the event</param>
  107. </member>
  108. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object)">
  109. <summary>
  110. Formats an event and returns the formatted message.
  111. </summary>
  112. <param name="eventName">the name of the event</param>
  113. <param name="arg">the argument of the event</param>
  114. </member>
  115. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object,System.Object)">
  116. <summary>
  117. Formats an event and returns the formatted message. This method is currently only used for formatting
  118. <see cref="M:DotNetty.Transport.Channels.IChannelHandler.ConnectAsync(DotNetty.Transport.Channels.IChannelHandlerContext,System.Net.EndPoint,System.Net.EndPoint)" />
  119. </summary>
  120. <param name="eventName">the name of the event</param>
  121. <param name="firstArg">the first argument of the event</param>
  122. <param name="secondArg">the second argument of the event</param>
  123. </member>
  124. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatByteBuffer(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,DotNetty.Buffers.IByteBuffer)">
  125. <summary>
  126. Generates the default log message of the specified event whose argument is a <see cref="T:DotNetty.Buffers.IByteBuffer" />.
  127. </summary>
  128. </member>
  129. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatByteBufferHolder(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,DotNetty.Buffers.IByteBufferHolder)">
  130. <summary>
  131. Generates the default log message of the specified event whose argument is a <see cref="T:DotNetty.Buffers.IByteBufferHolder" />.
  132. </summary>
  133. </member>
  134. <member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatSimple(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object)">
  135. <summary>
  136. Generates the default log message of the specified event whose argument is an arbitrary object.
  137. </summary>
  138. </member>
  139. <member name="T:DotNetty.Handlers.Timeout.IdleState">
  140. <summary>
  141. An <see cref="T:System.Enum"/> that represents the idle state of a <see cref="T:DotNetty.Transport.Channels.IChannel"/>.
  142. </summary>
  143. </member>
  144. <member name="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle">
  145. <summary>
  146. No data was received for a while.
  147. </summary>
  148. </member>
  149. <member name="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle">
  150. <summary>
  151. No data was sent for a while.
  152. </summary>
  153. </member>
  154. <member name="F:DotNetty.Handlers.Timeout.IdleState.AllIdle">
  155. <summary>
  156. No data was either received or sent for a while.
  157. </summary>
  158. </member>
  159. <member name="T:DotNetty.Handlers.Timeout.IdleStateEvent">
  160. <summary>
  161. A user event triggered by <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/> when a <see cref="T:DotNetty.Transport.Channels.IChannel"/> is idle.
  162. </summary>
  163. </member>
  164. <member name="M:DotNetty.Handlers.Timeout.IdleStateEvent.#ctor(DotNetty.Handlers.Timeout.IdleState,System.Boolean)">
  165. <summary>
  166. Constructor for sub-classes.
  167. </summary>
  168. <param name="state">the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> which triggered the event.</param>
  169. <param name="first"><code>true</code> if its the first idle event for the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>.</param>
  170. </member>
  171. <member name="P:DotNetty.Handlers.Timeout.IdleStateEvent.State">
  172. <summary>
  173. Returns the idle state.
  174. </summary>
  175. <value>The state.</value>
  176. </member>
  177. <member name="P:DotNetty.Handlers.Timeout.IdleStateEvent.First">
  178. <summary>
  179. Returns <code>true</code> if this was the first event for the <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>
  180. </summary>
  181. <returns><code>true</code> if first; otherwise, <code>false</code>.</returns>
  182. </member>
  183. <member name="T:DotNetty.Handlers.Timeout.IdleStateHandler">
  184. <summary>
  185. Triggers an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> when a <see cref="T:DotNetty.Transport.Channels.IChannel"/> has not performed
  186. read, write, or both operation for a while.
  187. <para>
  188. <h3>Supported idle states</h3>
  189. <table border="1">
  190. <tr>
  191. <th>Property</th><th>Meaning</th>
  192. </tr>
  193. <tr>
  194. <td><code>readerIdleTime</code></td>
  195. <td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
  196. will be triggered when no read was performed for the specified period of
  197. time. Specify <code>0</code> to disable.
  198. </td>
  199. </tr>
  200. <tr>
  201. <td><code>writerIdleTime</code></td>
  202. <td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
  203. will be triggered when no write was performed for the specified period of
  204. time. Specify <code>0</code> to disable.</td>
  205. </tr>
  206. <tr>
  207. <td><code>allIdleTime</code></td>
  208. <td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
  209. will be triggered when neither read nor write was performed for the
  210. specified period of time. Specify <code>0</code> to disable.</td>
  211. </tr>
  212. </table>
  213. </para>
  214. <para>
  215. <example>
  216. An example that sends a ping message when there is no outbound traffic
  217. for 30 seconds. The connection is closed when there is no inbound traffic
  218. for 60 seconds.
  219. <c>
  220. var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
  221. bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
  222. {
  223. IChannelPipeline pipeline = channel.Pipeline;
  224. pipeline.AddLast("idleStateHandler", new <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>(60, 30, 0);
  225. pipeline.AddLast("myHandler", new MyHandler());
  226. }
  227. </c>
  228. Handler should handle the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> triggered by <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>.
  229. <c>
  230. public class MyHandler : ChannelDuplexHandler
  231. {
  232. public override void UserEventTriggered(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Object"/> evt)
  233. {
  234. if(evt is <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>)
  235. {
  236. <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> e = (<see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>) evt;
  237. if (e.State == <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>.ReaderIdle)
  238. {
  239. ctx.close();
  240. }
  241. else if(e.State == <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>.WriterIdle)
  242. {
  243. ctx.writeAndFlush(new PingMessage());
  244. }
  245. }
  246. }
  247. }
  248. </c>
  249. </example>
  250. </para>
  251. <seealso cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>
  252. <seealso cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>
  253. </summary>
  254. </member>
  255. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Int32,System.Int32,System.Int32)">
  256. <summary>
  257. Initializes a new instance firing <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>s.
  258. </summary>
  259. <param name="readerIdleTimeSeconds">
  260. an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
  261. will be triggered when no read was performed for the specified
  262. period of time. Specify <code>0</code> to disable.
  263. </param>
  264. <param name="writerIdleTimeSeconds">
  265. an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
  266. will be triggered when no write was performed for the specified
  267. period of time. Specify <code>0</code> to disable.
  268. </param>
  269. <param name="allIdleTimeSeconds">
  270. an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
  271. will be triggered when neither read nor write was performed for
  272. the specified period of time. Specify <code>0</code> to disable.
  273. </param>
  274. </member>
  275. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.TimeSpan,System.TimeSpan,System.TimeSpan)">
  276. <summary>
  277. <see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)"/>
  278. </summary>
  279. </member>
  280. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
  281. <summary>
  282. Initializes a new instance firing <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>s.
  283. </summary>
  284. <param name="observeOutput">
  285. whether or not the consumption of <code>bytes</code> should be taken into
  286. consideration when assessing write idleness. The default is <code>false</code>.
  287. </param>
  288. <param name="readerIdleTime">
  289. an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
  290. will be triggered when no read was performed for the specified
  291. period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
  292. </param>
  293. <param name="writerIdleTime">
  294. an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
  295. will be triggered when no write was performed for the specified
  296. period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
  297. </param>
  298. <param name="allIdleTime">
  299. an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
  300. will be triggered when neither read nor write was performed for
  301. the specified period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
  302. </param>
  303. </member>
  304. <member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.ReaderIdleTime">
  305. <summary>
  306. Return the readerIdleTime that was given when instance this class in milliseconds.
  307. </summary>
  308. <returns>The reader idle time in millis.</returns>
  309. </member>
  310. <member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.WriterIdleTime">
  311. <summary>
  312. Return the writerIdleTime that was given when instance this class in milliseconds.
  313. </summary>
  314. <returns>The writer idle time in millis.</returns>
  315. </member>
  316. <member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.AllIdleTime">
  317. <summary>
  318. Return the allIdleTime that was given when instance this class in milliseconds.
  319. </summary>
  320. <returns>The all idle time in millis.</returns>
  321. </member>
  322. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.Ticks">
  323. <summary>
  324. This method is visible for testing!
  325. </summary>
  326. <returns></returns>
  327. </member>
  328. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.Schedule(DotNetty.Transport.Channels.IChannelHandlerContext,System.Action{System.Object,System.Object},System.Object,System.Object,System.TimeSpan)">
  329. <summary>
  330. This method is visible for testing!
  331. </summary>
  332. <param name="ctx"></param>
  333. <param name="task"></param>
  334. <param name="context"></param>
  335. <param name="state"></param>
  336. <param name="delay"></param>
  337. <returns></returns>
  338. </member>
  339. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.ChannelIdle(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Handlers.Timeout.IdleStateEvent)">
  340. <summary>
  341. Is called when an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> should be fired. This implementation calls
  342. <see cref="M:DotNetty.Transport.Channels.IChannelHandlerContext.FireUserEventTriggered(System.Object)"/>.
  343. </summary>
  344. <param name="context">Context.</param>
  345. <param name="stateEvent">Evt.</param>
  346. </member>
  347. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.NewIdleStateEvent(DotNetty.Handlers.Timeout.IdleState,System.Boolean)">
  348. <summary>
  349. Returns a <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>.
  350. </summary>
  351. <param name="state"></param>
  352. <param name="first"></param>
  353. <returns></returns>
  354. </member>
  355. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.InitOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext)">
  356. <summary>
  357. <see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.HasOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext,System.Boolean)"/>
  358. </summary>
  359. <param name="ctx"></param>
  360. </member>
  361. <member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.HasOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext,System.Boolean)">
  362. <summary>
  363. 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)"/>
  364. was constructed
  365. with <code>observeOutput</code> enabled and there has been an observed change in the
  366. <see cref="T:DotNetty.Transport.Channels.ChannelOutboundBuffer"/> between two consecutive calls of this method.
  367. https://github.com/netty/netty/issues/6150
  368. </summary>
  369. <param name="ctx"></param>
  370. <param name="first"></param>
  371. <returns></returns>
  372. </member>
  373. <member name="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler">
  374. <summary>
  375. Raises a <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutException"/> when no data was read within a certain
  376. period of time.
  377. <pre>
  378. The connection is closed when there is no inbound traffic
  379. for 30 seconds.
  380. <example>
  381. <c>
  382. var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
  383. bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
  384. {
  385. IChannelPipeline pipeline = channel.Pipeline;
  386. pipeline.AddLast("readTimeoutHandler", new <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>(30);
  387. pipeline.AddLast("myHandler", new MyHandler());
  388. }
  389. </c>
  390. <c>
  391. public class MyHandler : ChannelDuplexHandler
  392. {
  393. public override void ExceptionCaught(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Exception"/> exception)
  394. {
  395. if(exception is <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutException"/>)
  396. {
  397. // do somethind
  398. }
  399. else
  400. {
  401. base.ExceptionCaught(context, cause);
  402. }
  403. }
  404. }
  405. </c>
  406. </example>
  407. </pre>
  408. <seealso cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>
  409. <seealso cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>
  410. </summary>
  411. </member>
  412. <member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.#ctor(System.Int32)">
  413. <summary>
  414. Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
  415. </summary>
  416. <param name="timeoutSeconds">Timeout in seconds.</param>
  417. </member>
  418. <member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.#ctor(System.TimeSpan)">
  419. <summary>
  420. Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
  421. </summary>
  422. <param name="timeout">Timeout.</param>
  423. </member>
  424. <member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.ReadTimedOut(DotNetty.Transport.Channels.IChannelHandlerContext)">
  425. <summary>
  426. Is called when a read timeout was detected.
  427. </summary>
  428. <param name="context">Context.</param>
  429. </member>
  430. <member name="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler">
  431. <summary>
  432. Raises a <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutException"/> when a write operation cannot finish in a certain period of time.
  433. <para>
  434. <example>
  435. The connection is closed when a write operation cannot finish in 30 seconds.
  436. <c>
  437. var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
  438. bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
  439. {
  440. IChannelPipeline pipeline = channel.Pipeline;
  441. pipeline.AddLast("writeTimeoutHandler", new <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>(30);
  442. pipeline.AddLast("myHandler", new MyHandler());
  443. }
  444. </c>
  445. <c>
  446. public class MyHandler : ChannelDuplexHandler
  447. {
  448. public override void ExceptionCaught(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Exception"/> exception)
  449. {
  450. if(exception is <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutException"/>)
  451. {
  452. // do somethind
  453. }
  454. else
  455. {
  456. base.ExceptionCaught(context, cause);
  457. }
  458. }
  459. }
  460. </c>
  461. </example>
  462. </para>
  463. <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>
  464. <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>
  465. </summary>
  466. </member>
  467. <member name="F:DotNetty.Handlers.Timeout.WriteTimeoutHandler.tasks">
  468. <summary>
  469. A doubly-linked list to track all WriteTimeoutTasks.
  470. </summary>
  471. </member>
  472. <member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.#ctor(System.Int32)">
  473. <summary>
  474. Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
  475. </summary>
  476. <param name="timeoutSeconds">Timeout in seconds.</param>
  477. </member>
  478. <member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.#ctor(System.TimeSpan)">
  479. <summary>
  480. Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
  481. </summary>
  482. <param name="timeout">Timeout.</param>
  483. </member>
  484. <member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.WriteTimedOut(DotNetty.Transport.Channels.IChannelHandlerContext)">
  485. <summary>
  486. Is called when a write timeout was detected
  487. </summary>
  488. <param name="context">Context.</param>
  489. </member>
  490. <member name="T:DotNetty.Handlers.Tls.NotSslRecordException">
  491. <summary>
  492. Special exception which will get thrown if a packet is
  493. received that not looks like a TLS/SSL record. A user can check for
  494. this <see cref="T:DotNetty.Handlers.Tls.NotSslRecordException" /> and so detect if one peer tries to
  495. use secure and the other plain connection.
  496. </summary>
  497. </member>
  498. <member name="M:DotNetty.Handlers.Tls.TlsHandler.Unwrap(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Buffers.IByteBuffer,System.Int32,System.Int32,System.Collections.Generic.List{System.Int32},System.Collections.Generic.List{System.Object})">
  499. <summary>Unwraps inbound SSL records.</summary>
  500. </member>
  501. <member name="M:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.#ctor">
  502. <summary>
  503. Creates a new event that indicates a successful handshake.
  504. </summary>
  505. </member>
  506. <member name="M:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.#ctor(System.Exception)">
  507. <summary>
  508. Creates a new event that indicates an unsuccessful handshake.
  509. Use {@link #SUCCESS} to indicate a successful handshake.
  510. </summary>
  511. </member>
  512. <member name="P:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.IsSuccessful">
  513. <summary>
  514. Return {@code true} if the handshake was successful
  515. </summary>
  516. </member>
  517. <member name="P:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.Exception">
  518. <summary>
  519. Return the {@link Throwable} if {@link #isSuccess()} returns {@code false}
  520. and so the handshake failed.
  521. </summary>
  522. </member>
  523. <member name="T:DotNetty.Handlers.Tls.TlsUtils">
  524. Utilities for TLS packets.
  525. </member>
  526. <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_CHANGE_CIPHER_SPEC">
  527. change cipher spec
  528. </member>
  529. <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_ALERT">
  530. alert
  531. </member>
  532. <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_HANDSHAKE">
  533. handshake
  534. </member>
  535. <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_APPLICATION_DATA">
  536. application data
  537. </member>
  538. <member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_RECORD_HEADER_LENGTH">
  539. the length of the ssl record header (in bytes)
  540. </member>
  541. <member name="M:DotNetty.Handlers.Tls.TlsUtils.GetEncryptedPacketLength(DotNetty.Buffers.IByteBuffer,System.Int32)">
  542. <summary>
  543. Return how much bytes can be read out of the encrypted data. Be aware that this method will not increase
  544. the readerIndex of the given <see cref="T:DotNetty.Buffers.IByteBuffer"/>.
  545. </summary>
  546. <param name="buffer">
  547. The <see cref="T:DotNetty.Buffers.IByteBuffer"/> to read from. Be aware that it must have at least
  548. <see cref="F:DotNetty.Handlers.Tls.TlsUtils.SSL_RECORD_HEADER_LENGTH"/> bytes to read,
  549. otherwise it will throw an <see cref="T:System.ArgumentException"/>.
  550. </param>
  551. <param name="offset">Offset to record start.</param>
  552. <returns>
  553. The length of the encrypted packet that is included in the buffer. This will
  554. return <c>-1</c> if the given <see cref="T:DotNetty.Buffers.IByteBuffer"/> is not encrypted at all.
  555. </returns>
  556. </member>
  557. </members>
  558. </doc>