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 }