/** *
* Interface for message channels. *
* @author Michael Schuresko * @version %I%, %G% * @since 1.0 */ public interface IMsgChannel { /** * clone this channel. state changes to cloned copy * should not affect cloning source */ public IMsgChannel makeCopy(); /** * clone this channel, assuming source will cease to be modified */ public IMsgChannel makeLazyCopy(); /** *Post message to channel
* @param msg is the message to be sent * @return This queue */ public IMsgChannel sendMsg(IMsg msg); /** *Read a message, alter state of this channel instance. *
* @return IMsg just read. */ public IMsg readMsg(); };