Package net.i2p.util

Interface EventDispatcher

All Known Implementing Classes:
DCCClientManager, EventDispatcherImpl, EventReceiver, I2Ping, I2PSOCKSIRCTunnel, I2PSOCKSTunnel, I2PTunnel, I2PTunnelClient, I2PTunnelClientBase, I2PTunnelConnectClient, I2PTunnelDCCClient, I2PTunnelDCCServer, I2PTunnelHTTPBidirProxy, I2PTunnelHTTPBidirServer, I2PTunnelHTTPClient, I2PTunnelHTTPClientBase, I2PTunnelHTTPServer, I2PTunnelIRCClient, I2PTunnelIRCServer, I2PTunnelServer, I2PTunnelTask, I2PTunnelUDPClientBase, I2PTunnelUDPServerBase, SOCKSUDPTunnel, StreamrConsumer, StreamrProducer

public interface EventDispatcher
Event dispatching interface. It allows objects to receive and notify data events (basically String->Object associations) and create notification chains. To ease the usage of this interface, you could define an EventDispatcherImpl attribute called _event (as suggested in EventDispatcherImpl documentation) and cut'n'paste the following default implementation: public EventDispatcher getEventDispatcher() { return _event; } public void attachEventDispatcher(IEventDispatcher e) { _event.attachEventDispatcher(e.getEventDispatcher()); } public void detachEventDispatcher(IEventDispatcher e) { _event.detachEventDispatcher(e.getEventDispatcher()); } public void notifyEvent(String e, Object a) { _event.notifyEvent(e,a); } public Object getEventValue(String n) { return _event.getEventValue(n); } public Set getEvents() { return _event.getEvents(); } public void ignoreEvents() { _event.ignoreEvents(); } public void unIgnoreEvents() { _event.unIgnoreEvents(); } public Object waitEventValue(String n) { return _event.waitEventValue(n); } Deprecated - Used only by I2PTunnel
Author:
human
  • Method Details

    • getEventDispatcher

      EventDispatcher getEventDispatcher()
      Get an object to be used to deliver events (usually this, but YMMV).
    • attachEventDispatcher

      void attachEventDispatcher(EventDispatcher iev)
      Attach an EventDispatcher object to the events dispatching chain. Note that notification is not bidirectional (i.e. events notified to ev won't reach the object calling this method). Good luck, and beware of notification loops! :-)
      Parameters:
      iev - Event object to be attached
    • detachEventDispatcher

      void detachEventDispatcher(EventDispatcher iev)
      Detach the specified EventDispatcher object from the events dispatching chain.
      Parameters:
      iev - Event object to be detached
    • notifyEvent

      void notifyEvent(String event, Object args)
      Deliver an event
      Parameters:
      event - name of the event
      args - data being stored for that event
    • getEventValue

      Object getEventValue(String name)
      Retrieve the value currently associated with the specified event value
      Parameters:
      name - name of the event to query for
      Returns:
      value (or null if none are available)
    • getEvents

      Set<String> getEvents()
      Retrieve the names of all the events that have been received
      Returns:
      A set of event names
    • ignoreEvents

      void ignoreEvents()
      Ignore further event notifications
    • unIgnoreEvents

      void unIgnoreEvents()
      Almost like the method above :-)
    • waitEventValue

      Object waitEventValue(String name)
      Wait until the given event has received a value
      Parameters:
      name - name of the event to wait for
      Returns:
      value specified for that event