001    package edu.rice.cs.cunit.record.syncPoints;
002    
003    import edu.rice.cs.cunit.instrumentors.DoNotInstrument;
004    
005    
006    /**
007     * Synchronization point interface on the runtime level.
008     *
009     * @author Mathias Ricken
010     */
011    @DoNotInstrument
012    public interface ISyncPoint {
013        /**
014         * Interface for translated versions on the monitor side.
015         */
016        public static interface Translated {
017            /**
018             * Executes a visitor.
019             *
020             * @param visitor visitor to execute
021             * @param param   visitor-specific parameter
022             *
023             * @return visitor-specific return value
024             */
025            public <R,P> R execute(ISyncPointVisitor<R, P> visitor, P param);
026        }
027    }