001    package org.cocome.tradingsystem.systests.interfaces;
002    
003    import java.util.concurrent.TimeoutException;
004    
005    /**
006     * Interface for devices which receive updates from the system. This interface
007     * is crucial, as the trading system is asynchronous. So we can not test for a
008     * reaction immediately, but rather have to way for some components to update
009     * their state. However we limit the time to wait for this update, so we avoid
010     * the test to lock up in case of an error and furthermore to test reaction
011     * times (if specified).
012     * 
013     * @author Benjamin Hummel
014     * @author $Author: hummel $
015     * @version $Rev: 47 $
016     * @levd.rating GREEN Rev: 47
017     */
018    public interface IUpdateReceiver {
019    
020            /**
021             * Wait until the device gets updated (e.g., via a message). If no update
022             * occurs during the requested period throw an exception.
023             * 
024             * @param maxMilliseconds
025             *            the maximal number of millisecond to wait for an update.
026             * @throws TimeoutException
027             *             if no update occurred during the specified duration.
028             */
029            void waitForUpdate(int maxMilliseconds) throws TimeoutException;
030    }