All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ie.omk.smpp.event.EventDispatcher Maven / Gradle / Ivy

The newest version!
package ie.omk.smpp.event;

import ie.omk.smpp.Connection;
import ie.omk.smpp.message.SMPPPacket;

import java.util.Iterator;

/**
 * This interface defines the observable side of the observer pattern for
 * asynchronous SMPP event notification. Each {@link ie.omk.smpp.Connection}
 * object will have an implementation of the EventDispatcher
 * interface which it uses to deliver events to interested listeners. By
 * removing the actual dispatching of events from the internals of the
 * Connection, applications may provide their own event dispatch implementations
 * for their Connection objects which better suit how those
 * applications work.
 * 
 * @author Oran Kelly
 * @version $Id: EventDispatcher.java 255 2006-03-09 09:34:37Z orank $
 * @see ie.omk.smpp.event.SimpleEventDispatcher
 */
public interface EventDispatcher {

    /**
     * Initialise the event dispatcher. The init method will be
     * called by the Connection before it makes any attempt to
     * add any observers or deliver any events via the dispatcher.
     */
    void init();

    /**
     * Event dispatcher clean up. The destroy method will be
     * called by the Connection when it is finished delivering
     * events to it and the receiver daemon thread is exiting. Any initialising
     * done in the init method can be cleaned up here.
     * 

* The destroy method must not interfere with the * delivery of any events notified to the event dispatcher before the call * to this method. *

*/ void destroy(); /** * Add an observer to this event dispatcher. * * @param observer * the observer object to add. */ void addObserver(ConnectionObserver observer); /** * Remove an observer from this event dispatcher. * * @param observer * the observer object to remove from the registered observers. */ void removeObserver(ConnectionObserver observer); /** * Get an iterator over the currently registered observers. * * @return an iterator object which iterates over all registered observers. */ Iterator observerIterator(); /** * Notify all registered observers of an SMPP event. * * @param event * the SMPP event to notify observers of. */ void notifyObservers(Connection conn, SMPPEvent event); /** * Notify all registered observers of a received SMPP packet. * * @param packet * the SMPP packet to notify observers of. */ void notifyObservers(Connection conn, SMPPPacket packet); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy