From e9ae80694875f869892f13f4fcaf1170a00dea41 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdewebdev@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kxsldbg/kxsldbgpart/libxsldbg/options.h | 476 ++++++++++++++++++++++++++++++++ 1 file changed, 476 insertions(+) create mode 100644 kxsldbg/kxsldbgpart/libxsldbg/options.h (limited to 'kxsldbg/kxsldbgpart/libxsldbg/options.h') diff --git a/kxsldbg/kxsldbgpart/libxsldbg/options.h b/kxsldbg/kxsldbgpart/libxsldbg/options.h new file mode 100644 index 00000000..60ab69d3 --- /dev/null +++ b/kxsldbg/kxsldbgpart/libxsldbg/options.h @@ -0,0 +1,476 @@ + +/*************************************************************************** + options.h - define option related functions + ------------------- + begin : Sat Nov 10 2001 + copyright : (C) 2001 by Keith Isdale + email : k_isdale@tpg.com.au + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef OPTIONS_H +#define OPTIONS_H + +#include "arraylist.h" + +/** + * Provide a mechanism to change option. The Options structure is not in use, + * it has been added so that kdoc puts all option related + * functions together + * + * @short file support + * + * @author Keith Isdale + */ + +/* We want skip most of these includes when building documentation */ +#ifndef BUILD_DOCS +#include +#endif + +/* --------------------------------------- + Misc options +-------------------------------------------*/ + +/** The largest number lines of text can be print print printing documents + This is equivant to gdb shorting of evaluation values + */ +#define GDB_LINES_TO_PRINT 3 + + + enum OptionsConfigState { + OPTIONS_CONFIG_READVALUE = -1, /* Read configuration flag */ + OPTIONS_CONFIG_READING = 1, /* Configuration file is being read */ + OPTIONS_CONFIG_WRITING, /* Configuration file is being written */ + OPTIONS_CONFIG_IDLE /* We are neither reading or writing */ + }; + + enum OptionTypeEnum { + OPTIONS_XINCLUDE = 500, /* Use xinclude during xml parsing */ + OPTIONS_FIRST_BOOL_OPTIONID = OPTIONS_XINCLUDE, + OPTIONS_FIRST_INT_OPTIONID = OPTIONS_XINCLUDE, + OPTIONS_FIRST_OPTIONID = OPTIONS_XINCLUDE, + OPTIONS_DOCBOOK, /* Use of docbook sgml parsing */ + OPTIONS_TIMING, /* Use of timing */ + OPTIONS_PROFILING, /* Use of profiling */ + OPTIONS_VALID, /* Enables file validation */ + OPTIONS_OUT, /* Enables output to stdout */ + OPTIONS_HTML, /* Enable the use of html parsing */ + OPTIONS_DEBUG, /* Enable the use of xml tree debugging */ + OPTIONS_SHELL, /* Enable the use of debugger shell */ + OPTIONS_GDB, /* Run in gdb modem prints more messages) */ + OPTIONS_PREFER_HTML, /* Prefer html output for search results */ + OPTIONS_AUTOENCODE, /* try to use the encoding from the stylesheet */ + OPTIONS_UTF8_INPUT, /* All input from user is in UTF-8.This normaly + * used when xsldbg is running as a thread */ + OPTIONS_STDOUT, /* Print all error messages to stdout, + * normally error messages go to stderr */ + OPTIONS_AUTORESTART, /* When finishing the debug of a XSLT script + automaticly restart at the beginning */ + OPTIONS_VERBOSE, /* Be verbose with messages */ + OPTIONS_LAST_BOOL_OPTIONID = OPTIONS_VERBOSE, + OPTIONS_REPEAT, /* The number of times to repeat */ + OPTIONS_TRACE, /* Trace execution */ + OPTIONS_WALK_SPEED, /* How fast do we walk through code */ + OPTIONS_CATALOGS, /* Get the catalogs from SGML_CATALOG_FILES and + * store it in OPTIONS_CATALOG_NAMES */ + OPTIONS_LAST_INT_OPTIONID = OPTIONS_CATALOGS, + OPTIONS_OUTPUT_FILE_NAME, /* what is the output file name */ + OPTIONS_FIRST_STRING_OPTIONID = OPTIONS_OUTPUT_FILE_NAME, + OPTIONS_SOURCE_FILE_NAME, /* the stylesheet source to use */ + OPTIONS_DOCS_PATH, /* path of xsldbg's documentation */ + OPTIONS_CATALOG_NAMES, /* the names of the catalogs to use when catalogs option is active */ + OPTIONS_ENCODING, /* What encoding to use for standard output */ + OPTIONS_SEARCH_RESULTS_PATH, /* Where do we store the results of searching */ + OPTIONS_DATA_FILE_NAME, /* xml data file to use */ + OPTIONS_LAST_STRING_OPTIONID = OPTIONS_DATA_FILE_NAME, + OPTIONS_LAST_OPTIONID = OPTIONS_DATA_FILE_NAME + }; + + /* define what tracing is used */ + enum TraceModeEnum { + TRACE_OFF = 600, /* disable tracing */ + TRACE_ON, /* enable tracing */ + TRACE_RUNNING, /* tracing is running */ + TRACE_FINISHED /* not needed but just in case */ + }; + + /* what speeds can we walk through a stylesheet */ + /* must start walkSpeed enums from zero !! */ + enum WalkSpeedEnum { + WALKSPEED_0 = 0, + WALKSPEED_STOP = WALKSPEED_0, + WALKSPEED_1, + WALKSPEED_FAST = WALKSPEED_1, + WALKSPEED_2, + WALKSPEED_3, + WALKSPEED_4, + WALKSPEED_5, + WALKSPEED_NORMAL = WALKSPEED_5, + WALKSPEED_6, + WALKSPEED_7, + WALKSPEED_8, + WALKSPEED_9, + WALKSPEED_SLOW = WALKSPEED_9 + }; + +extern int intVolitileOptions[OPTIONS_LAST_INT_OPTIONID - OPTIONS_FIRST_INT_OPTIONID + 1]; + +/* how many microseconds is each speed increase worth*/ +#define WALKDELAY 250000 + + +/* for non win32 environments see the macro in xsldebugger/Makefile.am + Win32 type systems see macro in libxslt/xsltwin32config.h +*/ +#ifdef __riscos + +/* The environment variable name we are going to use is the readable version + of the application name */ +#define XSLDBG_DOCS_DIR_VARIABLE "XSLDebugDocs$Dir" +#else + +/* The environment variable name on normal systems */ +#define XSLDBG_DOCS_DIR_VARIABLE "XSLDBG_DOCS_DIR" +#endif + +/* used to keep track of libxslt paramters + see Parameter related options near end of file +*/ + typedef struct _parameterItem parameterItem; + typedef parameterItem *parameterItemPtr; + struct _parameterItem { + xmlChar *name; /* libxslt parameter name */ + xmlChar *value; /* libxslt parameter value */ + int intValue; /* reserved */ + }; + + + +/** + * Initialized the options module + * + * @returns 1 on success, + * 0 otherwise + */ + int optionsInit(void); + + + +/** + * Free memory used by the options module + */ + void optionsFree(void); + + + /** + * Find the option id for a given option name + * + * @returns The optionID for @optionName if successful, where + * OPTIONS_XINCLUDE<= optionID <= OPTIONS_DATA_FILE_NAME, + * otherwise returns -1 + * + * @param optionName A valid option name see documentation for "setoption" + * command and program usage documentation + * + */ + int optionsGetOptionID(xmlChar * optionName); + + + + /** + * Get the name text for an option + * + * Returns The name of option if @ID is valid, + * NULL otherwise + * + * @param ID A valid option ID + * + */ + const xmlChar *optionsGetOptionName(OptionTypeEnum ID); + + +/** + * Set the value of an integer xsldbg option to @p value + * + * @returns 1 on success, + * 0 otherwise + * + * @param optionType Is a valid integer option + * @param value Is the valid to adopt + */ + int optionsSetIntOption(OptionTypeEnum optionType, int value); + + +/** + * @returns The state of a integer xsldbg option + * + * @param optionType Is a valid integer option + */ + int optionsGetIntOption(OptionTypeEnum optionType); + + +/** + * Set value for a string xsldbg option to @p value. + * Any memory used currently by option @p optionType will be freed + * + * @returns 1 on success, + * 0 otherwise + * + * @param optionType A valid string option + * @param value The value to copy + */ + int optionsSetStringOption(OptionTypeEnum optionType, + const xmlChar * value); + + +/** + * Get value for a string xsldbg option of @p optionType + * + * @returns current option value which may be NULL + * + * @param optionType A valid string option + */ + const xmlChar *optionsGetStringOption(OptionTypeEnum optionType); + + + /** + * Copy volitile options to the working area for xsldbg to be used + * just after xsldbg starts its processing loop + */ + void optionsCopyVolitleOptions(void); + + + +/*--------------------------------------------- + Parameter related options +-------------------------------------------------*/ + + +/** + * Return the list of libxlt parameters + * + * @returns The list of parameters to provide to libxslt when doing + * stylesheet transformation if successful + * NULL otherwise + */ + arrayListPtr optionsGetParamItemList(void); + + + +/** + * Create a new libxslt parameter item + * + * @returns non-null if sucessful + * NULL otherwise + * + * @param name Is valid + * @param value Is valid + */ + parameterItemPtr optionsParamItemNew(const xmlChar * name, + const xmlChar * value); + + +/** + * Free memory used by libxslt parameter item @p item + * + * @param item Is valid + */ + void optionsParamItemFree(parameterItemPtr item); + + +/** + * Prints all items in parameter list + * + * @returns 1 on success, + * 0 otherwise + */ + int optionsPrintParam(int paramId); + + + +/** + * Prints all items in parameter list + * + * @returns 1 on success, + * 0 otherwise + */ + int optionsPrintParamList(void); + +/* --------------------------------------------- + Option serialization functions +-------------------------------------------------*/ + + /** + * Convert option into a xmlNodePtr + * + * @returns The option @p optionType as a xmlNodePtr if successful, + * NULL otherwise + * + * @param optionType Is valid, option to convert to a xmlNodePtr + * + */ + xmlNodePtr optionsNode(OptionTypeEnum optionType); + + + + /** + * Read options from document provided. + * + * @returns 1 if able to read @p doc and load options found, + * 0 otherwise + * + * @param doc Is valid xsldbg config document, in the format as indicated + * by config.dtd + */ + int optionsReadDoc(xmlDocPtr doc); + + + /** + * Save configuation to file specified + * + * @returns 1 if able to save options to @fileName, + * 0 otherwise + * + * @fileName : Must be NON NULL be a local file that can be written to + */ + int optionsSavetoFile(xmlChar * fileName); + + +/* --------------------------------------------- + Platform specific option functions +-------------------------------------------------*/ + + /** + * Intialize the platform specific options module + * + * This is a platform specific interface + * + * @returns 1 if sucessful + * 0 otherwise + */ + int optionsPlatformInit(void); + + + /** + * Free memory used by the platform specific options module + * + * This is a platform specific interface + * + */ + void optionsPlatformFree(void); + + + /** + * Return xsldbg's the configuration file name + * + * Returns A copy of the file name that will be used to load xsldbgs + * configuration from, + * NULL otherwise + * + * This is a platform specific interface + * + */ + xmlChar *optionsConfigFileName(void); + + + /** + * Load options from configuration file/registry + * + * This is a platform specific interface + * + * Returns 1 if able to load options + * 0 otherwise + */ + int optionsLoad(void); + + + /** + * Save options to configuration file/registry + * + * This is a platform specific interface + * + * Returns 1 if able to load options + * 0 otherwise + */ + int optionsSave(void); + + + /** + * Set/Get the state of configuration loading/saving. Normally only used + * by RISC OS + * + * + * Returns The current/new value of configuration flag. Where + * @p value means: + * OPTIONS_CONFIG_READVALUE : No change return current + * value of read configuration flag + * OPTIONS_CONFIG_WRITING : Clear flag and return + * OPTIONS_CONFIG_WRITING which mean configuration + * file is being written + * OPTIONS_CONFIG_READING : Set flag and return + * OPTIONS_CONFIG_READING, which means configuration + * file is being read + * OPTIONS_CONFIG_IDLE : We are neither reading or writing + * configuration and return OPTIONS_CONFIG_IDLE + * + * @param value Is valid + * + */ + int optionsConfigState(OptionsConfigState value); + + /** + * optionsAddWatch: + * @xPath : A valid xPath to evaluate in a context and + * has not already been addded + * + * Add xPath to be evaluated and printed out each time the debugger stops + * + * Returns 1 if able to add xPath to watched + * 0 otherwise + */ + int optionsAddWatch(const xmlChar* xPath); + + /** + * optionsGetWatchID: + * @xPath : A valid watch expression that has already been added + * + * Finds the ID of watch expression previously added + * + * Returns 0 if not found, + * otherwise returns the ID of watch expression + */ + int optionsGetWatchID(const xmlChar* xPath); + + + /** + * optionsRemoveWatch: + * @watchID : A valid watchID as indicated by last optionsPrintWatches + * + * Remove the watch with given ID from our list of expressions to watch + * + * Returns 1 if able to remove to watch expression + * 0 otherwise + */ + int optionsRemoveWatch(int watchID); + + + /** + * optionsGetWatchList: + * + * Return the current list of expressions to watch + * + * Return the current list of expressions to watch + */ + arrayListPtr optionsGetWatchList(void); + + +#endif -- cgit v1.2.3