001package org.javasimon.javaee.reqreporter;
002
003import java.util.List;
004import javax.servlet.http.HttpServletRequest;
005
006import org.javasimon.Split;
007import org.javasimon.javaee.SimonServletFilter;
008
009/**
010 * RequestReporter interface .
011 *
012 * @author <a href="mailto:virgo47@gmail.com">Richard "Virgo" Richter</a>
013 */
014public 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}