001    package railo.runtime;
002    
003    import javax.servlet.http.HttpServlet;
004    import javax.servlet.http.HttpServletRequest;
005    import javax.servlet.http.HttpServletResponse;
006    import javax.servlet.jsp.JspFactory;
007    
008    import railo.runtime.config.ConfigWeb;
009    import railo.runtime.query.QueryCache;
010    
011    /**
012     * implements a JSP Factory, this class procduce JSP Compatible PageContext Object
013     * this object holds also the must interfaces to coldfusion specified functionlity
014     */
015    public abstract class CFMLFactory extends JspFactory {
016            
017        /**
018         * reset the PageContexes
019         */
020        public abstract void resetPageContext();
021        
022            
023            /**
024             * similar to getPageContext Method but return the concret implementation of the railo PageCOntext
025             * and take the HTTP Version of the Servlet Objects
026             * @param servlet
027             * @param req
028             * @param rsp
029             * @param errorPageURL
030             * @param needsSession
031             * @param bufferSize
032             * @param autoflush
033             * @return return the page<context
034             */
035            public abstract PageContext getRailoPageContext(
036            HttpServlet servlet,
037            HttpServletRequest req,
038            HttpServletResponse rsp,
039            String errorPageURL,
040                    boolean needsSession,
041                    int bufferSize,
042                    boolean autoflush);
043    
044            /**
045             * Similar to the releasePageContext Method, but take railo PageContext as entry
046             * @param pc
047             */
048            public abstract void releaseRailoPageContext(PageContext pc);
049        
050        /**
051             * check timeout of all running threads, downgrade also priority from all thread run longer than 10 seconds
052             */
053            public abstract void checkTimeout();
054            
055            /**
056             * @return returns the query cache
057             */
058            public abstract QueryCache getQueryCache();
059    
060            /**
061             * @return returns count of pagecontext in use
062             */
063            public abstract int getUsedPageContextLength();
064            
065        /**
066         * @return Returns the config.
067         */
068        public abstract ConfigWeb getConfig();
069    
070        /**
071         * @return label of the factory
072         */
073        public abstract Object getLabel();
074    
075        /**
076         * FUTURE deprecated
077         * @param label
078         */
079        public abstract void setLabel(String label);
080    
081            /**
082             * @return the servlet
083             */
084            public abstract HttpServlet getServlet();
085    
086    
087    }