View Javadoc

    1   /***
    2    *
    3    * Copyright 2004 Hiram Chirino
    4    *
    5    *  Licensed under the Apache License, Version 2.0 (the "License");
    6    *  you may not use this file except in compliance with the License.
    7    *  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   *  Unless required by applicable law or agreed to in writing, software
    12   *  distributed under the License is distributed on an "AS IS" BASIS,
    13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   *  See the License for the specific language governing permissions and
    15   *  limitations under the License.
    16   */
    17  package org.activeio;
    18
    19  import java.io.IOException;
    20
    21
    22  /***
    23   * A ChannelConsumer object is used to receive 'up' {@see org.activeio.channel.Packet} objects.
    24   *
    25   * TODO: describe the threading model so that the implementor of this interface can know if
    26   * the methods in this interface can block for a long time or not.  I'm thinking that it would
    27   * be best if these methods are not allowed to block for a long time to encourage SEDA style
    28   * processing.
    29   *
    30   * @version $Revision$
    31   */
    32  public interface AsynchChannelListener {
    33
    34  	/***
    35  	 * A {@see AsynchChannel} will call this method to deliver an 'up' packet to a consumer.
    36  	 *
    37  	 * @param packet
    38  	 */
    39      void onPacket(Packet packet);
    40
    41      /***
    42  	 * A {@see AsynchChannel} will call this method when a async failure occurs in the channel.
    43       *
    44       * @param error the exception that describes the failure.
    45       */
    46      void onPacketError(IOException error);
    47
    48  }