# axiom_navigator.h

    00001
    00002 /*
    00003  * Licensed to the Apache Software Foundation (ASF) under one or more
    00004  * contributor license agreements.  See the NOTICE file distributed with
    00005  * this work for additional information regarding copyright ownership.
    00006  * The ASF licenses this file to You under the Apache License, Version 2.0
    00007  * (the "License"); you may not use this file except in compliance with
    00008  * the License.  You may obtain a copy of the License at
    00009  *
    00010  *      http://www.apache.org/licenses/LICENSE-2.0
    00011  *
    00012  * Unless required by applicable law or agreed to in writing, software
    00013  * distributed under the License is distributed on an "AS IS" BASIS,
    00014  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00015  * See the License for the specific language governing permissions and
    00016  * limitations under the License.
    00017  */
    00018
    00019 #ifndef AXIOM_NAVIGATOR_H
    00020 #define AXIOM_NAVIGATOR_H
    00021
    00022 #include <axutil_utils.h>
    00023 #include <axutil_env.h>
    00024 #include <axiom_node.h>
    00025
    00026 #ifdef __cplusplus
    00027 extern "C"
    00028 {
    00029 #endif
    00030
    00037     typedef struct axiom_navigator axiom_navigator_t;
    00038
    00046     AXIS2_EXTERN axiom_navigator_t *AXIS2_CALL
    00047     axiom_navigator_create(
    00048         const axutil_env_t * env,
    00049         axiom_node_t * node);
    00050
    00057     AXIS2_EXTERN void AXIS2_CALL
    00058     axiom_navigator_free(
    00059         axiom_navigator_t * om_navigator,
    00060         const axutil_env_t * env);
    00061
    00069     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    00070     axiom_navigator_is_navigable(
    00071         axiom_navigator_t * om_navigator,
    00072         const axutil_env_t * env);
    00073
    00083     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    00084     axiom_navigator_is_completed(
    00085         axiom_navigator_t * om_navigator,
    00086         const axutil_env_t * env);
    00087
    00098     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
    00099     axiom_navigator_next(
    00100         axiom_navigator_t * om_navigator,
    00101         const axutil_env_t * env);
    00102
    00110     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    00111     axiom_navigator_visited(
    00112         axiom_navigator_t * om_navigator,
    00113         const axutil_env_t * env);
    00114
    00117 #ifdef __cplusplus
    00118 }
    00119 #endif
    00120
    00121 #endif                          /* AXIOM_NAVIGATOR_H */