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/xsldbgmsg.h | 210 ++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.h (limited to 'kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.h') 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 +#else +# ifndef XSLDBG_SO_API +# define XSLDBG_SO_API +# endif +#endif + +#ifndef BUILD_DOCS +#include /* 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 + *
+ *   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
+ *
+ *
+ * @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
-- 
cgit v1.2.1