summaryrefslogtreecommitdiffstats
path: root/axiom/src/om/axiom_stax_builder_internal.h
blob: ca78e7dc87e0f7470332df8f8b457dc093a14882 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef AXIOM_STAX_BUILDER_INTERNAL_H
#define AXIOM_STAX_BUILDER_INTERNAL_H

/** @defgroup axiom AXIOM (Axis Object Model)
 * @ingroup axis2
 * @{
 */

/** @} */

#include <axiom_stax_builder.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axiom_stax builder
     * @ingroup axiom
     * @{
     */

    int AXIS2_CALL
    axiom_stax_builder_get_current_event(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env);

    axis2_status_t AXIS2_CALL
    axiom_stax_builder_set_lastnode(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env,
        axiom_node_t * om_node);

    axiom_node_t *AXIS2_CALL
    axiom_stax_builder_get_lastnode(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env);

    axis2_status_t AXIS2_CALL
    axiom_stax_builder_set_element_level(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env,
        int element_level);

    int AXIS2_CALL
    axiom_stax_builder_get_element_level(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env);



    /**
      * builder is finished building om structure
      * @param builder pointer to stax builder struct to be used
      * @param environment Environment. MUST NOT be NULL.
      *
      * @return AXIS2_TRUE if is complete or AXIS2_FALSE otherwise
      */

    axis2_bool_t AXIS2_CALL
    axiom_stax_builder_is_complete(
        struct axiom_stax_builder *builder,
        const axutil_env_t * env);

    /**
      * moves the reader to next event and returns the token returned by the xml_reader ,
      * @param builder pointer to STAX builder struct to be used
      * @param environment Environment. MUST NOT be NULL.
      * @return next event axiom_xml_reader_event_types. Returns -1 on error
      */
    int AXIS2_CALL
    axiom_stax_builder_next_with_token(
        struct axiom_stax_builder *builder,
        const axutil_env_t * env);

    /**
      * Builds the next node from stream. Moves pull parser forward and reacts
      * to events.
      * @param builder pointer to stax builder struct to be used
      * @param environment Environment. MUST NOT be NULL.
      * @return a pointer to the next node, or NULL if there are no more nodes.
      *     On erros sets the error and returns NULL.
      */
    axiom_node_t *AXIS2_CALL
    axiom_stax_builder_next(
        struct axiom_stax_builder *builder,
        const axutil_env_t * env);

#if 0
    /**
      * Discards the element that is being built currently.
      * @param environment Environment. MUST NOT be NULL, .
      * @param builder pointer to stax builder struct to be used
      * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE.
      */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_stax_builder_discard_current_element(
        struct axiom_stax_builder *builder,
        const axutil_env_t * env);

    AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
    axiom_stax_builder_get_parser(
        axiom_stax_builder_t * om_builder,
        const axutil_env_t * env);

    AXIS2_EXTERN void AXIS2_CALL
    axiom_stax_builder_set_cache(
        axiom_stax_builder_t * om_builder,
        const axutil_env_t * env,
        axis2_bool_t enable_cache);


#endif

    /** @} */

#ifdef __cplusplus
}
#endif

#endif /** AXIOM_STAX_BUILDER_INTERNAL_H */