001    /*
002     * IBM Confidential
003     * OCO Source Materials
004     * Rational ClearCase
005     * (C) Copyright IBM Corporation. 2013.  All rights reserved.
006     *
007     * The source code for this program is not published or otherwise
008     * divested of its trade secrets, irrespective of what has been
009     * deposited with the U.S. Copyright Office.
010     */
011    package com.ibm.rational.wvcm.stp.cc;
012    
013    import javax.wvcm.WvcmException;
014    
015    /**
016     * Handler for remote view agent callback operations.
017     */
018    public interface CcRemoteViewAgentCallback {
019        
020        /**
021         * Event to indicate a remote view agent has connected
022         */
023        public interface ConnectEvent {
024            /**
025             * Answers with the remote view agent's provider
026             * @return Provider for this view
027             */
028            CcProvider getProvider();
029            
030            /**
031             * Answers with the view tag of the connected view
032             * @return the view tag
033             */
034            String getViewTag();
035            
036            /**
037             * Answers with the uuid of the connected view
038             * @return A dense representation of the uuid as a string. 
039             */
040            String getViewUuid();
041            
042            /**
043             * Answers with an error, or null if successful.
044             * @return a WvcmException, or null if no errors
045             */
046            WvcmException getError();
047        }
048        
049        /**
050         * Event to indicate a remote view agent has disconnected
051         */
052        public interface DisconnectEvent {
053            /**
054             * Answers with the remote view agent's provider
055             * @return Provider for this view
056             */
057            CcProvider getProvider();
058            
059            /**
060             * Answers with the view tag for the disconnected view
061             * @return the view tag
062             */
063            String getViewTag();
064            
065            /**
066             * Answers with the uuid of the connected view
067             * @return A dense representation of the uuid as a string. 
068             */
069            String getViewUuid();
070            
071            /**
072             * Answers with an error,or null if successful.
073             * @return a WvcmException, or null if no errors
074             */
075            WvcmException getError();
076        }
077        
078        /**
079         * Handle a remote view agent connection event.
080         * @param event the connect event
081         */
082        void handleConnect(ConnectEvent event);
083        
084        /**
085         * Handle a remote view agent disconnect event
086         * @param event the disconnect event
087         */
088        void handleDisconnect(DisconnectEvent event);
089    }