1 /** 2 * $RCSfile$ 3 * $Revision: 2408 $ 4 * $Date: 2004-11-02 20:53:30 -0300 (Tue, 02 Nov 2004) $ 5 * 6 * Copyright 2003-2004 Jive Software. 7 * 8 * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 * you may not use this file except in compliance with the License. 10 * You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 21 package org.jivesoftware.smack; 22 23 import org.jivesoftware.smack.packet.Packet; 24 25 /** 26 * Provides a mechanism to listen for packets that pass a specified filter. 27 * This allows event-style programming -- every time a new packet is found, 28 * the {@link #processPacket(Packet)} method will be called. This is the 29 * opposite approach to the functionality provided by a {@link PacketCollector} 30 * which lets you block while waiting for results. 31 * 32 * @see XMPPConnection#addPacketListener(PacketListener, org.jivesoftware.smack.filter.PacketFilter) 33 * @author Matt Tucker 34 */ 35 public interface PacketListener { 36 37 /** 38 * Process the next packet sent to this packet listener.<p> 39 * 40 * A single thread is responsible for invoking all listeners, so 41 * it's very important that implementations of this method not block 42 * for any extended period of time. 43 * 44 * @param packet the packet to process. 45 */ 46 public void processPacket(Packet packet); 47 48 } 49