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 }