View Javadoc

1   package org.lsst.ccs.bus;
2   
3   /**
4    * A <TT>BusMessageForwarder</TT> receives a <TT>BusMessage</TT> from the transport layer
5    * and passes it to registered MessageListener.
6    * <P>
7    *     Typically a code implementing this contract will consider which is the actual subclass
8    *     of <TT>BusMessage</TT> which is used in the update and forward it to the appropriate listeners.
9    *     But there could also be different forwarders for different bus.
10   *     <P>
11   *     these implementations can also tag the context of the thread dealing with this message with correlation data.
12   *     <P>
13   *     It is thus of utmost importance to consider that each transport layer that  calls <TT>update</TT>
14   *     waits for the completion of the Listener code or calls other updates in a different thread.
15  *      <P> this class is part of version 2 of the communication framework
16   */
17  public interface BusMessageForwarder {
18      public void update(BusMessage message);
19  }