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  }