Home | History | Annotate | Download | only in ssh2
      1 /*
      2  * Copyright (c) 2006-2011 Christian Plattner. All rights reserved.
      3  * Please refer to the LICENSE.txt for licensing details.
      4  */
      5 package ch.ethz.ssh2;
      6 
      7 /**
      8  * Contains constants that can be used to specify what conditions to wait for on
      9  * a SSH-2 channel (e.g., represented by a {@link Session}).
     10  *
     11  * @see Session#waitForCondition(int, long)
     12  *
     13  * @author Christian Plattner
     14  * @version 2.50, 03/15/10
     15  */
     16 
     17 public abstract interface ChannelCondition
     18 {
     19 	/**
     20 	 * A timeout has occurred, none of your requested conditions is fulfilled.
     21 	 * However, other conditions may be true - therefore, NEVER use the "=="
     22 	 * operator to test for this (or any other) condition. Always use
     23 	 * something like <code>((cond & ChannelCondition.CLOSED) != 0)</code>.
     24 	 */
     25 	public static final int TIMEOUT = 1;
     26 
     27 	/**
     28 	 * The underlying SSH-2 channel, however not necessarily the whole connection,
     29 	 * has been closed. This implies <code>EOF</code>. Note that there may still
     30 	 * be unread stdout or stderr data in the local window, i.e, <code>STDOUT_DATA</code>
     31 	 * or/and <code>STDERR_DATA</code> may be set at the same time.
     32 	 */
     33 	public static final int CLOSED = 2;
     34 
     35 	/**
     36 	 * There is stdout data available that is ready to be consumed.
     37 	 */
     38 	public static final int STDOUT_DATA = 4;
     39 
     40 	/**
     41 	 * There is stderr data available that is ready to be consumed.
     42 	 */
     43 	public static final int STDERR_DATA = 8;
     44 
     45 	/**
     46 	 * EOF on has been reached, no more _new_ stdout or stderr data will arrive
     47 	 * from the remote server. However, there may be unread stdout or stderr
     48 	 * data, i.e, <code>STDOUT_DATA</code> or/and <code>STDERR_DATA</code>
     49 	 * may be set at the same time.
     50 	 */
     51 	public static final int EOF = 16;
     52 
     53 	/**
     54 	 * The exit status of the remote process is available.
     55 	 * Some servers never send the exist status, or occasionally "forget" to do so.
     56 	 */
     57 	public static final int EXIT_STATUS = 32;
     58 
     59 	/**
     60 	 * The exit signal of the remote process is available.
     61 	 */
     62 	public static final int EXIT_SIGNAL = 64;
     63 
     64 }
     65