001    package toolbus.viewer;
002    
003    import toolbus.tool.ToolInstance;
004    import aterm.ATerm;
005    
006    /**
007     * Listener that can be notified of the arrival of performance statistics messages.
008     * 
009     * @author Arnold Lankamp
010     */
011    public interface IPerformanceMonitor{
012            
013            /**
014             * Fired when a tool connects.
015             * 
016             * @param toolInstance
017             *            The tool instance associated with the tool that connected.
018             */
019            void toolConnected(ToolInstance toolInstance);
020            
021            /**
022             * Fired when a connection with a tool is terminated.
023             * 
024             * @param toolInstance
025             *            The tool instance associated with the tool that is no longer connected.
026             */
027            void toolConnectionClosed(ToolInstance toolInstance);
028            
029            /**
030             * Fired when the performance statistics that were requested by the debug ToolBus arrived.
031             * 
032             * @param toolInstance
033             *            The tool instance the performance statistics are associated with.
034             * @param aTerm
035             *            The term that contains the performance statistics data.
036             */
037            void performanceStatsArrived(ToolInstance toolInstance, ATerm aTerm);
038    }