xmlsrv_plat/cxml_library_api/inc/nw_wbxml_event.h
branchRCL_3
changeset 32 889504eac4fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xmlsrv_plat/cxml_library_api/inc/nw_wbxml_event.h	Tue Aug 31 17:02:56 2010 +0300
@@ -0,0 +1,174 @@
+/*
+* Copyright (c) 2000 - 2001 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+/** ----------------------------------------------------------------------- **
+    @package:     NW_WBXML
+
+    @synopsis:    default
+
+    @description: Definitions for WBXML low-level event handling.
+
+ ** ----------------------------------------------------------------------- **/
+
+#ifndef NW_PARSER_WBXML_EVENT_H
+#define NW_PARSER_WBXML_EVENT_H
+
+#include <xml/cxml/nw_wbxml_document.h>
+#include <xml/cxml/cxml_proj.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+typedef struct NW_WBXML_Parser_s NW_WBXML_Parser_t;
+
+
+/** ----------------------------------------------------------------------- **
+    @typedef:     NW_WBXML_Exception
+
+    @synopsis:    Exception identifier.
+
+    @scope:       public
+    @type:        NW_Int32
+
+    @description: Exception identifier.
+ ** ----------------------------------------------------------------------- **/
+typedef NW_Int32 NW_WBXML_Exception_t;
+
+/* No RME doc support for function calls as variables */
+
+struct NW_WBXML_EventHandler_s {
+
+  /* State change events */
+
+  NW_Status_t (*StartDocument_CB) (NW_WBXML_Parser_t *, 
+                                   NW_WBXML_Document_t *, 
+                                   void *);
+  
+  NW_Status_t (*EndDocument_CB) (NW_WBXML_Parser_t *, 
+                                 void *);
+
+  NW_Status_t (*Pi_CB) (NW_WBXML_Parser_t *, 
+                        void *);
+
+  NW_Status_t (*Pi_End_CB) (NW_WBXML_Parser_t *, 
+                            void *);
+
+  NW_Status_t (*Tag_Start_CB) (NW_WBXML_Parser_t *, 
+                               void *);
+
+  NW_Status_t (*Tag_End_CB) (NW_WBXML_Parser_t *, 
+                             void *);
+
+  NW_Status_t (*Attr_Start_CB) (NW_WBXML_Parser_t *, 
+                                void *);
+
+  NW_Status_t (*Attr_Val_CB) (NW_WBXML_Parser_t *, 
+                              void *);
+
+  NW_Status_t (*Content_CB) (NW_WBXML_Parser_t *, 
+                             void *);
+
+  NW_Status_t (*CodePage_CB) (NW_WBXML_Parser_t *, 
+                              void *);
+
+  NW_Status_t (*Extension_CB) (NW_WBXML_Parser_t *, 
+                               void *);
+
+  /* Handle data types */
+  
+  NW_Status_t (*Token_CB) (NW_WBXML_Parser_t *, 
+                           NW_Uint8, 
+                           void *);
+
+  NW_Status_t (*FQToken_CB)(NW_WBXML_Parser_t *, 
+                            NW_Uint32, 
+                            void *);
+
+  NW_Status_t (*InlineString_CB) (NW_WBXML_Parser_t *, 
+                                  NW_Uint32, 
+                                  void *);
+
+  NW_Status_t (*TableString_CB) (NW_WBXML_Parser_t *, 
+                                 NW_Uint32, 
+                                 void *);
+
+  NW_Status_t (*Binary_CB) (NW_WBXML_Parser_t *, 
+                            NW_Uint32, 
+                            void *);
+
+  NW_Status_t (*Opaque_CB) (NW_WBXML_Parser_t *, 
+                            NW_Uint32, 
+                            void *);
+
+  NW_Status_t (*Entity_CB) (NW_WBXML_Parser_t *, 
+                            NW_Uint32, 
+                            void *);
+  
+  /* For parse errors */
+  
+  NW_Status_t (*Exception_CB) (NW_WBXML_Parser_t *, 
+                               NW_WBXML_Exception_t, 
+                               void *);
+};
+
+
+/** ----------------------------------------------------------------------- **
+    @typedef:     NW_WBXML_EventHandler
+
+    @synopsis:    Parsing event handler structure.
+
+    @scope:       public
+    @type:        NW_WBXML_EventHandler_s
+
+    @description: Parsing events are generated as the parser parses a
+                  document. The interface is currently implemented by
+                  the WBXML parser, but the XML parser will use the same
+                  event interface, although not all of the events will
+                  be generated by both parsers. To create an event
+                  handler, an application implements a set of event
+                  handler functions and creates an
+                  NMXB_Parse_EventHandler_t structure that contains the
+                  addresses of these functions. Not all of the events
+                  need to be handled; an application need only provide
+                  handlers for those events it is interested in
+                  Addresses of the other handlers should be set to
+                  NULL.                  
+                  This data type contains addresses of the parser
+                  callback functions. To use the parser event interface,
+                  the caller must implement a set of handlers and
+                  initialize a NMXB_Parser_EventHandler_t to point to
+                  them. Addresses must be set to NULL for any handlers
+                  not implemented. The caller then registers the handler
+                  with the parser by calling the appropriate handler
+                  registration function.  The callbacks are divided
+                  between "state" callbacks and "data" callbacks. The
+                  state callbacks indicate the current parser state:
+                  that is, what type of element it is currently
+                  parsing. The data callbacks indicate a specific data
+                  type for the currently parsed element.
+
+ ** ----------------------------------------------------------------------- **/
+typedef struct NW_WBXML_EventHandler_s NW_WBXML_EventHandler_t;
+  
+
+#ifdef __cplusplus
+} /* extern "C" { */
+#endif /* __cplusplus */
+
+#endif  /* NW_PARSER_WBXML_EVENT_H */