xml/cxmllibrary/src/wbxmlp/include/nw_wbxml_parsei.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
**  File: parseI.h
hgs
parents:
diff changeset
    21
**
hgs
parents:
diff changeset
    22
**  Description: definitions internal to WBXML parser component 
hgs
parents:
diff changeset
    23
*****************************************************************/
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#ifndef NW_PARSER_WBXML_PARSE_I_H
hgs
parents:
diff changeset
    26
#define NW_PARSER_WBXML_PARSE_I_H
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#include <xml/cxml/cxml_proj.h>
hgs
parents:
diff changeset
    29
#include <xml/cxml/nw_wbxml_parse.h>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#ifdef __cplusplus
hgs
parents:
diff changeset
    32
extern "C" {
hgs
parents:
diff changeset
    33
#endif /* __cplusplus */
hgs
parents:
diff changeset
    34
  
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
/*
hgs
parents:
diff changeset
    37
 * Parser states, shared by reader and parser
hgs
parents:
diff changeset
    38
 */
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
#define NW_WBXML_PARSER_S_MASK                0x0F
hgs
parents:
diff changeset
    41
#define NW_WBXML_PARSER_S_START               0x00
hgs
parents:
diff changeset
    42
#define NW_WBXML_PARSER_S_HEADER              0x01
hgs
parents:
diff changeset
    43
#define NW_WBXML_REGISTRY_INIT                0x10
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
/* 
hgs
parents:
diff changeset
    47
 * Parser internal status codes, shared by reader and parser 
hgs
parents:
diff changeset
    48
 */
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
#define NW_WBXML_PARSER_OK                   0x0
hgs
parents:
diff changeset
    51
#define NW_WBXML_PARSER_NOMEMORY             0x1
hgs
parents:
diff changeset
    52
#define NW_WBXML_PARSER_BYTECODEERROR        0x2
hgs
parents:
diff changeset
    53
#define NW_WBXML_PARSER_CHARSET_UNSUPPORTED  0x4
hgs
parents:
diff changeset
    54
#define NW_WBXML_PARSER_UNKNOWN_ERROR        0x8
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
/* Parse exceptions */
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
#define NW_WBXML_EXCEPTION_MEMORY               1
hgs
parents:
diff changeset
    59
#define NW_WBXML_EXCEPTION_BYTECODE             2
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
/* 
hgs
parents:
diff changeset
    62
* WBXML token components 
hgs
parents:
diff changeset
    63
*
hgs
parents:
diff changeset
    64
* The wbxml parser stores tokens as 32 bits. The meaning
hgs
parents:
diff changeset
    65
* of each token is determined as a 4-tuple:
hgs
parents:
diff changeset
    66
* the token itself (8 bits), the code page (8 bits),
hgs
parents:
diff changeset
    67
* the dictionary in which it is defined (for which we
hgs
parents:
diff changeset
    68
* allocate 15 bits) and a state flag that indicates whether
hgs
parents:
diff changeset
    69
* the token is in attribute or tag code space.
hgs
parents:
diff changeset
    70
* 
hgs
parents:
diff changeset
    71
* Within the lowest 8 bits (the token component) the
hgs
parents:
diff changeset
    72
* wbxml spec defines further subsets of bits for tags
hgs
parents:
diff changeset
    73
* and attributes. The parser itself only int32erprets 
hgs
parents:
diff changeset
    74
* the lowest 8 bits. The remaining bits are used for
hgs
parents:
diff changeset
    75
* token value lookups in dictionaries.
hgs
parents:
diff changeset
    76
*/
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
/* TODO:  export some of these definitions? */
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
#define NW_WBXML_MASK_TOKEN          0x000000FF
hgs
parents:
diff changeset
    81
#define NW_WBXML_MASK_CODEPAGE       0x0000FF00
hgs
parents:
diff changeset
    82
#define NW_WBXML_MASK_DICTIONARY     0x7FFF0000
hgs
parents:
diff changeset
    83
#define NW_WBXML_MASK_CPSTATE        0x80000000
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
#define NW_WBXML_CP_STATE_TAG        0x00000000
hgs
parents:
diff changeset
    86
#define NW_WBXML_CP_STATE_ATTR       0x80000000
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
void
hgs
parents:
diff changeset
    89
NW_WBXML_CPRegistry_getCodePages(NW_WBXML_CP_Registry_t* registry,
hgs
parents:
diff changeset
    90
                              NW_Uint32 offset,
hgs
parents:
diff changeset
    91
                              NW_Uint8 *tag_code_page,
hgs
parents:
diff changeset
    92
                              NW_Uint8 *attribute_code_page);
hgs
parents:
diff changeset
    93
                              
hgs
parents:
diff changeset
    94
NW_Status_t 
hgs
parents:
diff changeset
    95
NW_WBXML_Parser_docHeaderParse(NW_WBXML_Parser_t * parser, 
hgs
parents:
diff changeset
    96
                        NW_WBXML_Document_t * doc);
hgs
parents:
diff changeset
    97
  
hgs
parents:
diff changeset
    98
NW_Status_t 
hgs
parents:
diff changeset
    99
NW_WBXML_Parser_bodyParse(NW_WBXML_Parser_t * parser);
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
void 
hgs
parents:
diff changeset
   102
NW_WBXML_Parser_bytecodeError (NW_WBXML_Parser_t * parser);
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
#ifdef __cplusplus
hgs
parents:
diff changeset
   106
} // extern "C" {
hgs
parents:
diff changeset
   107
#endif /* __cplusplus */
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
#endif  /* NW_PARSER_WBXML_PARSE_I_H */