summaryrefslogtreecommitdiffstats
path: root/kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.h
diff options
context:
space:
mode:
Diffstat (limited to 'kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.h')
-rw-r--r--kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.h210
1 files changed, 210 insertions, 0 deletions
diff --git a/kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.h b/kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.h
new file mode 100644
index 00000000..12b16a3c
--- /dev/null
+++ b/kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.h
@@ -0,0 +1,210 @@
+
+/***************************************************************************
+ xsldbgmsg.h - description
+ -------------------
+ begin : Thu Dec 20 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 XSLDBGMSG_H
+#define XSLDBGMSG_H
+
+#ifdef WIN32
+# include <libxsldbg/xsldbgwin32config.h>
+#else
+# ifndef XSLDBG_SO_API
+# define XSLDBG_SO_API
+# endif
+#endif
+
+#ifndef BUILD_DOCS
+#include <libxml/tree.h> /* needed for the definition of xmlChar */
+#include "arraylist.h"
+#endif
+
+typedef enum {
+ /* thread status */
+ XSLDBG_MSG_THREAD_NOTUSED, /* 0: Thread are not to be used */
+ XSLDBG_MSG_THREAD_INIT, /* 1: The xsldbg thread is initializing */
+ XSLDBG_MSG_THREAD_RUN, /* 2: The xsldbg thread is running */
+ XSLDBG_MSG_THREAD_STOP, /* 3: The xsldbg thread is about to die */
+ XSLDBG_MSG_THREAD_DEAD, /* 4: The xsldbg thread died */
+
+ /* input status ( once thread is running) */
+ XSLDBG_MSG_AWAITING_INPUT, /* 5: Waiting for user input */
+ XSLDBG_MSG_READ_INPUT, /* 6: Read user input */
+ XSLDBG_MSG_PROCESSING_INPUT, /* 7: Processing user's request */
+
+ /* provide more informatiom about state of xsldbg (optional) */
+ XSLDBG_MSG_PROCESSING_RESULT, /* 8: An error occured performing command
+ * requested command */
+ XSLDBG_MSG_LINE_CHANGED, /* 9: Changed to new line number
+ * ie a step */
+ XSLDBG_MSG_FILE_CHANGED, /* 10: Loaded source/data file */
+ XSLDBG_MSG_BREAKPOINT_CHANGED, /* 11: Response to a showbreak command */
+ XSLDBG_MSG_PARAMETER_CHANGED, /* 12: Response to showparam command */
+ XSLDBG_MSG_TEXTOUT, /* 13 : Free form text from xsldg */
+ XSLDBG_MSG_FILEOUT, /* 14 : Response to cat commmand, ie
+ * Free form text in file */
+ XSLDBG_MSG_LOCALVAR_CHANGED, /* 15 : Response to locals command ie a
+ * local variable */
+ XSLDBG_MSG_GLOBALVAR_CHANGED, /* 16 : Response to globals command
+ * ie a global variable */
+ XSLDBG_MSG_TEMPLATE_CHANGED, /* 17 : Response to templates commmand
+ * ie template details */
+ XSLDBG_MSG_SOURCE_CHANGED, /* 18 : Response to stylesheets command,
+ * a normal stylesheet */
+ XSLDBG_MSG_INCLUDED_SOURCE_CHANGED, /* 19: Response to stylesheets
+ * command, a xmlNodeptr of
+ * a included stylesheet */
+ XSLDBG_MSG_CALLSTACK_CHANGED, /* 20: Response to where command,
+ * ie a item on the call stack */
+ XSLDBG_MSG_ENTITIY_CHANGED, /* 21: Response to entities
+ * command */
+ XSLDBG_MSG_RESOLVE_CHANGE, /* 22: Response to system or
+ * public command */
+ XSLDBG_MSG_LIST, /* 23 : As list of messages */
+
+ XSLDBG_MSG_INTOPTION_CHANGE, /* 23* Response to options command */
+ XSLDBG_MSG_STRINGOPTION_CHANGE, /* 24* Response to options command */
+ XSLDBG_MSG_ERROR_MESSAGE /* 25: Entercepted error message from libxml2 */
+} XsldbgMessageEnum;
+
+
+typedef enum {
+ XSLDBG_COMMAND_FAILED, /* generic error */
+ XSLDBG_COMMAND_WARNING,
+ XSLDBG_COMMAND_INFO,
+ XSLDBG_COMMAND_NOTUSED
+} XsldbgCommandStateEnum;
+
+
+
+/**
+ * Notify the application that something happened to the xsldbg thread
+ *
+ * @param type : A valid XsldbgMessageEnum
+ *
+ * @param data : The meaning of data can have a different meaning for each value of @type
+ *<pre>
+ * Value of @type Meaning of @data
+ * -------------------------- +++ ---------------------
+ * XSLDBG_MSG_THREAD_NOTUSED, not used
+ * XSLDBG_MSG_THREAD_INIT, not used
+ * XSLDBG_MSG_THREAD_RUN, not used
+ * XSLDBG_MSG_THREAD_STOP, not used
+ * XSLDBG_MSG_THREAD_DEAD, not used
+ * XSLDBG_MSG_AWAITING_INPUT, not used
+ * XSLDBG_MSG_READ_INPUT, A value of the char* for user input
+ * XSLDBG_MSG_PROCESSING_INPUT, not used
+ * XSLDBG_MSG_PROCESSING_RESULT, A value of type xsldbgErrorMsgPtr
+ * XSLDBG_MSG_LINE_CHANGED Is non-NULL if reached breakpoint
+ * otherwise just change in line number
+ * of displayed source/data
+ * XSLDBG_MSG_FILE_CHANGED, not used
+ * XSLDBG_MSG_BREAKPOINT_CHANGED A breakPointPtr of the breakpoint
+ * XSLDBG_MSG_PARAMETER_CHANGED A parameterItemPtr of libxslt pameter.
+ * XSLDBG_MSG_TEXTOUT A char * to buffer for text output
+ * XSLDBG_MSG_FILEOUT A FILE * for text to output
+ * XSLDBG_MSG_LOCALVAR_CHANGED, A local variable of type xsltStackElemPtr
+ * XSLDBG_MSG_GLOBALVAR_CHANGED, A global variable of type xsltStackElemPtr
+ * XSLDBG_MSG_TEMPLATE_CHANGED, A template of type xsltTemplatePtr
+ * XSLDBG_MSG_SOURCE_CHANGED, A xsltStylesheetPtr of a normal stylesheet
+ * XSLDBG_MSG_INCLUDED_SOURCE_CHANGED A xmlNodePtr of a included stylsheet
+ * XSLDBG_MSG_CALLSTACK_CHANGED A callPointPtr of a call stack item
+ * XSLDBG_MSG_ENTITIY_CHANGED A const entityInfoPtr
+ * for the included entity
+ * XSLDBG_MSG_RESOLVE_CHANGE A xmlChar* of URI that
+ * SystemID or PublicID resolves to
+ * XSLDBG_MSG_LIST A notifyMessageListPtr
+ *
+ * XSLDBG_MSG_INTOPTION_CHANGE A paramItemPtr, value is not used
+ * XSLDBG_MSG_STRINGOPTION_CHANGE A paramItemPtr, intValue is not used
+ * XSLDBG_MSG_ERROR_MESSAGE A xmlErrorPtr
+ *
+ *
+ * Legend :
+ * not used :- value may be NULL but must not be used
+ *
+ * All values are to treated as volitile and are only guaranteed
+ * to be valid for the life of the notification messages. ie make a
+ * NEW copy of value if needed for longer than that.
+ * Unless stated otherwise, if reponse can return a value and the value is
+ * NULL then that indicates the start of a list of values
+ *
+ *<pre>
+ * @returns 1 on sucess
+ * 0 otherwise
+*/
+
+typedef struct _xsldbgErrorMsg xsldbgErrorMsg;
+typedef xsldbgErrorMsg *xsldbgErrorMsgPtr;
+struct _xsldbgErrorMsg {
+ XsldbgMessageEnum type;
+ int commandId;
+ XsldbgCommandStateEnum commandState;
+ xmlChar *text;
+ xmlChar *messagefileName; /* used when send large chunks of data */
+};
+
+
+typedef struct _notifyMessageList notifyMessageList;
+typedef notifyMessageList *notifyMessageListPtr;
+struct _notifyMessageList {
+ XsldbgMessageEnum type;
+ arrayListPtr list;
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void xsldbgSetAppFunc(int (*notifyXsldbgAppFunc) (XsldbgMessageEnum type, const void *data));
+
+void xsldbgSetAppStateFunc(int (*notifyStateXsldbgAppFunc)(XsldbgMessageEnum type, int commandId,
+ XsldbgCommandStateEnum commandState,
+ const char *text));
+
+void xsldbgSetTextFunc(int (*notifyTextXsldbgAppFunc)(XsldbgMessageEnum type, const char *text));
+
+void xsldbgSetReadlineFunc(xmlChar * (*xslDbgShellReadlineFunc)(xmlChar * prompt));
+
+int notifyXsldbgApp(XsldbgMessageEnum type, const void *data);
+
+int notifyStateXsldbgApp(XsldbgMessageEnum type, int commandId,
+ XsldbgCommandStateEnum commandState,
+ const char *text);
+
+int notifyTextXsldbgApp(XsldbgMessageEnum type, const char *text);
+
+xmlChar * xslDbgShellReadline(xmlChar * prompt);
+
+
+ /* The following functions implemented in xsldbgthread.c */
+ int notifyListStart(XsldbgMessageEnum type);
+
+ /* Data must be valid for until the next notifyListStart.
+ * Memory pointed to by @data will not be freed. Added @data items
+ * queued to list must be of the same data type as required by the
+ * XsldbgMessageEnum used with the matching notifyListSend */
+ int notifyListQueue(const void *data);
+
+ /* The notified application is responsible for free memory used
+ * by the ArrayList and notifyMessageList of notify message */
+ int notifyListSend(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif