package railo.runtime.debug; import java.io.IOException; import java.util.List; import railo.runtime.PageContext; import railo.runtime.PageSource; import railo.runtime.config.Config; import railo.runtime.db.SQL; import railo.runtime.exp.CatchBlock; import railo.runtime.exp.PageException; import railo.runtime.type.Query; import railo.runtime.type.Struct; /** * debugger interface */ public interface Debugger { /** * reset the debug object */ public abstract void reset(); /** * @param pc current PagContext * @param source Page Source for the entry * @return returns a single DebugEntry */ public DebugEntryTemplate getEntry(PageContext pc,PageSource source); /** * @param pc current PagContext * @param source Page Source for the entry * @param key * @return returns a single DebugEntry with a key */ public DebugEntryTemplate getEntry(PageContext pc,PageSource source, String key); /** * returns a single DebugEntry for a specific postion (startPos,endPos in the PageSource) * @param pc current PagContext * @param source Page Source for the entry * @param startPos start position in the file * @param endPos end position in the file * @return */ public DebugEntryTemplatePart getEntry(PageContext pc,PageSource source, int startPos, int endPos); /** * add new query execution time * @param query * @param datasource * @param name * @param sql * @param recordcount * @param src * @param time */ public void addQuery(Query query,String datasource,String name,SQL sql, int recordcount, PageSource src,int time); // FUTURE deprecated // FUTURE public void addQuery(Query query,DataSource datasource,String name,SQL sql, int recordcount, PageSource src,int time); // FUTURE add ans set method above to deprecated -> public void addQuery(Query query,String datasource,String name,SQL sql, int recordcount, PageSource src,long time); /** * sets if toHTML print html output info or not * @param output The output to set. */ public abstract void setOutput(boolean output); /** * @return Returns the queries. */ public List<QueryEntry> getQueries(); /** * @param pc * @throws IOException */ public void writeOut(PageContext pc) throws IOException; /** * returns the Debugging Info * @return debugging Info */ public Struct getDebuggingData(PageContext pc) throws PageException; public Struct getDebuggingData(PageContext pc, boolean addAddionalInfo) throws PageException; /** * adds ne Timer info to debug * @param label * @param exe */ public DebugTimer addTimer(String label, long exe, String template); /** * add new Trace to debug * @param type * @param category * @param text * @param page * @param varName * @param varValue * @return debug trace object */ public DebugTrace addTrace(int type, String category, String text, PageSource page, String varName, String varValue); public DebugTrace addTrace(int type, String category, String text, String template,int line,String action,String varName,String varValue); public abstract DebugTrace[] getTraces(); public abstract void addException(Config config,PageException pe); public CatchBlock[] getExceptions(); public void addImplicitAccess(String scope, String name); public ImplicitAccess[] getImplicitAccesses(int scope, String name); }