net.i2p.util

## Interface EventDispatcher

- All Known Implementing Classes:
    EventDispatcherImpl, I2Ping, I2PSOCKSIRCTunnel, I2PSOCKSTunnel, I2PTunnel, I2PTunnelClient, I2PTunnelClientBase, I2PTunnelConnectClient, 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 Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `attachEventDispatcher(EventDispatcher iev)` Attach an EventDispatcher object to the events dispatching chain.
    `void` | `detachEventDispatcher(EventDispatcher iev)` Detach the specified EventDispatcher object from the events dispatching chain.
    `EventDispatcher` | `getEventDispatcher()` Get an object to be used to deliver events (usually `this`, but YMMV).
    `Set` | `getEvents()` Retrieve the names of all the events that have been received
    `Object` | `getEventValue(String name)` Retrieve the value currently associated with the specified event value
    `void` | `ignoreEvents()` Ignore further event notifications
    `void` | `notifyEvent(String event, Object args)` Deliver an event
    `void` | `unIgnoreEvents()` Almost like the method above :-)
    `Object` | `waitEventValue(String name)` Wait until the given event has received a value

- - ### Method Detail

    - #### 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 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