1 // ========================================================================
2 // Copyright (c) 2004-2009 Mort Bay Consulting Pty. Ltd.
3 // ------------------------------------------------------------------------
4 // All rights reserved. This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v1.0
6 // and Apache License v2.0 which accompanies this distribution.
7 // The Eclipse Public License is available at
8 // http://www.eclipse.org/legal/epl-v10.html
9 // The Apache License v2.0 is available at
10 // http://www.opensource.org/licenses/apache2.0.php
11 // You may elect to redistribute this code under either of these licenses.
12 // ========================================================================
13
14 package org.eclipse.jetty.io;
15
16 public interface AsyncEndPoint extends EndPoint
17 {
18 /* ------------------------------------------------------------ */
19 /**
20 * Dispatch the endpoint to a thread to attend to it.
21 *
22 */
23 public void dispatch();
24
25 /**
26 * @return true if this endpoint can accept a dispatch. False if the
27 * endpoint cannot accept a dispatched (eg is suspended or already dispatched)
28 */
29 public boolean isReadyForDispatch();
30
31
32 /* ------------------------------------------------------------ */
33 /** Set the writable status.
34 * The writable status is considered next time the async scheduling
35 * is calculated.
36 *
37 * @param writable true if the endpoint is known to be writable or false
38 * if it is known to not be writable.
39 */
40 public void setWritable(boolean writable);
41
42 /* ------------------------------------------------------------ */
43 /** Schedule a write dispatch.
44 * Set the endpoint to not be writable and schedule a dispatch when
45 * it becomes writable.
46 */
47 public void scheduleWrite();
48
49 /* ------------------------------------------------------------ */
50 /** Schedule a call to the idle timeout
51 */
52 public void scheduleIdle();
53
54 /* ------------------------------------------------------------ */
55 /** Cancel a call to the idle timeout
56 */
57 public void cancelIdle();
58
59 }