001    package org.javasimon.javaee.reqreporter;
002    
003    import java.util.List;
004    import javax.servlet.http.HttpServletRequest;
005    
006    import org.javasimon.Split;
007    import org.javasimon.javaee.SimonServletFilter;
008    
009    /**
010     * RequestReporter interface .
011     *
012     * @author <a href="mailto:virgo47@gmail.com">Richard "Virgo" Richter</a>
013     */
014    public interface RequestReporter {
015            /**
016             * Reports request that exceeds the threshold.
017             *
018             * @param request offending HTTP request
019             * @param requestSplit split measuring the offending request
020             * @param splits list of all splits started for this request
021             */
022            void reportRequest(HttpServletRequest request, Split requestSplit, List<Split> splits);
023    
024            /**
025             * Called by initialization after the instance creation. Useful when {@link org.javasimon.Manager} is needed
026             * ({@link org.javasimon.javaee.SimonServletFilter#getManager()}) and possibly for other scenarios.
027             */
028            void setSimonServletFilter(SimonServletFilter simonServletFilter);
029    }