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 }