xmlsrv_plat/cxml_library_api/inc/nw_wbxml_event.h
author hgs
Wed, 23 Jun 2010 20:27:15 +0530
changeset 24 74f0b3eb154c
permissions -rw-r--r--
201024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2000 - 2001 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    20
    @package:     NW_WBXML
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
    @synopsis:    default
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
    @description: Definitions for WBXML low-level event handling.
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#ifndef NW_PARSER_WBXML_EVENT_H
hgs
parents:
diff changeset
    29
#define NW_PARSER_WBXML_EVENT_H
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include <xml/cxml/nw_wbxml_document.h>
hgs
parents:
diff changeset
    32
#include <xml/cxml/cxml_proj.h>
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
#ifdef __cplusplus
hgs
parents:
diff changeset
    35
extern "C" {
hgs
parents:
diff changeset
    36
#endif /* __cplusplus */
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
typedef struct NW_WBXML_Parser_s NW_WBXML_Parser_t;
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
    42
    @typedef:     NW_WBXML_Exception
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
    @synopsis:    Exception identifier.
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
    @scope:       public
hgs
parents:
diff changeset
    47
    @type:        NW_Int32
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
    @description: Exception identifier.
hgs
parents:
diff changeset
    50
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
    51
typedef NW_Int32 NW_WBXML_Exception_t;
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
/* No RME doc support for function calls as variables */
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
struct NW_WBXML_EventHandler_s {
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
  /* State change events */
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
  NW_Status_t (*StartDocument_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    60
                                   NW_WBXML_Document_t *, 
hgs
parents:
diff changeset
    61
                                   void *);
hgs
parents:
diff changeset
    62
  
hgs
parents:
diff changeset
    63
  NW_Status_t (*EndDocument_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    64
                                 void *);
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
  NW_Status_t (*Pi_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    67
                        void *);
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
  NW_Status_t (*Pi_End_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    70
                            void *);
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
  NW_Status_t (*Tag_Start_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    73
                               void *);
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
  NW_Status_t (*Tag_End_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    76
                             void *);
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
  NW_Status_t (*Attr_Start_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    79
                                void *);
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
  NW_Status_t (*Attr_Val_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    82
                              void *);
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
  NW_Status_t (*Content_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    85
                             void *);
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
  NW_Status_t (*CodePage_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    88
                              void *);
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
  NW_Status_t (*Extension_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    91
                               void *);
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
  /* Handle data types */
hgs
parents:
diff changeset
    94
  
hgs
parents:
diff changeset
    95
  NW_Status_t (*Token_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
    96
                           NW_Uint8, 
hgs
parents:
diff changeset
    97
                           void *);
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
  NW_Status_t (*FQToken_CB)(NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
   100
                            NW_Uint32, 
hgs
parents:
diff changeset
   101
                            void *);
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
  NW_Status_t (*InlineString_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
   104
                                  NW_Uint32, 
hgs
parents:
diff changeset
   105
                                  void *);
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
  NW_Status_t (*TableString_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
   108
                                 NW_Uint32, 
hgs
parents:
diff changeset
   109
                                 void *);
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
  NW_Status_t (*Binary_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
   112
                            NW_Uint32, 
hgs
parents:
diff changeset
   113
                            void *);
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
  NW_Status_t (*Opaque_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
   116
                            NW_Uint32, 
hgs
parents:
diff changeset
   117
                            void *);
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
  NW_Status_t (*Entity_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
   120
                            NW_Uint32, 
hgs
parents:
diff changeset
   121
                            void *);
hgs
parents:
diff changeset
   122
  
hgs
parents:
diff changeset
   123
  /* For parse errors */
hgs
parents:
diff changeset
   124
  
hgs
parents:
diff changeset
   125
  NW_Status_t (*Exception_CB) (NW_WBXML_Parser_t *, 
hgs
parents:
diff changeset
   126
                               NW_WBXML_Exception_t, 
hgs
parents:
diff changeset
   127
                               void *);
hgs
parents:
diff changeset
   128
};
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
/** ----------------------------------------------------------------------- **
hgs
parents:
diff changeset
   132
    @typedef:     NW_WBXML_EventHandler
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
    @synopsis:    Parsing event handler structure.
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
    @scope:       public
hgs
parents:
diff changeset
   137
    @type:        NW_WBXML_EventHandler_s
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
    @description: Parsing events are generated as the parser parses a
hgs
parents:
diff changeset
   140
                  document. The interface is currently implemented by
hgs
parents:
diff changeset
   141
                  the WBXML parser, but the XML parser will use the same
hgs
parents:
diff changeset
   142
                  event interface, although not all of the events will
hgs
parents:
diff changeset
   143
                  be generated by both parsers. To create an event
hgs
parents:
diff changeset
   144
                  handler, an application implements a set of event
hgs
parents:
diff changeset
   145
                  handler functions and creates an
hgs
parents:
diff changeset
   146
                  NMXB_Parse_EventHandler_t structure that contains the
hgs
parents:
diff changeset
   147
                  addresses of these functions. Not all of the events
hgs
parents:
diff changeset
   148
                  need to be handled; an application need only provide
hgs
parents:
diff changeset
   149
                  handlers for those events it is interested in
hgs
parents:
diff changeset
   150
                  Addresses of the other handlers should be set to
hgs
parents:
diff changeset
   151
                  NULL.                  
hgs
parents:
diff changeset
   152
                  This data type contains addresses of the parser
hgs
parents:
diff changeset
   153
                  callback functions. To use the parser event interface,
hgs
parents:
diff changeset
   154
                  the caller must implement a set of handlers and
hgs
parents:
diff changeset
   155
                  initialize a NMXB_Parser_EventHandler_t to point to
hgs
parents:
diff changeset
   156
                  them. Addresses must be set to NULL for any handlers
hgs
parents:
diff changeset
   157
                  not implemented. The caller then registers the handler
hgs
parents:
diff changeset
   158
                  with the parser by calling the appropriate handler
hgs
parents:
diff changeset
   159
                  registration function.  The callbacks are divided
hgs
parents:
diff changeset
   160
                  between "state" callbacks and "data" callbacks. The
hgs
parents:
diff changeset
   161
                  state callbacks indicate the current parser state:
hgs
parents:
diff changeset
   162
                  that is, what type of element it is currently
hgs
parents:
diff changeset
   163
                  parsing. The data callbacks indicate a specific data
hgs
parents:
diff changeset
   164
                  type for the currently parsed element.
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
 ** ----------------------------------------------------------------------- **/
hgs
parents:
diff changeset
   167
typedef struct NW_WBXML_EventHandler_s NW_WBXML_EventHandler_t;
hgs
parents:
diff changeset
   168
  
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
#ifdef __cplusplus
hgs
parents:
diff changeset
   171
} /* extern "C" { */
hgs
parents:
diff changeset
   172
#endif /* __cplusplus */
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
#endif  /* NW_PARSER_WBXML_EVENT_H */