Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

axiom_children_with_specific_attribute_iterator.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016  
00017  #ifndef AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_H
00018  #define AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_H
00019  
00025 #include <axiom_node.h>
00026 #include <axiom_text.h>
00027 #include <axis2_qname.h>
00028   
00029 
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034 
00035 typedef struct axiom_children_with_specific_attribute_iterator_ops 
00036                     axiom_children_with_specific_attribute_iterator_ops_t;
00037 
00038 typedef struct axiom_children_with_specific_attribute_iterator 
00039                     axiom_children_with_specific_attribute_iterator_t;
00040 
00051     AXIS2_DECLARE_DATA struct axiom_children_with_specific_attribute_iterator_ops
00052     {
00056         axis2_status_t (AXIS2_CALL *
00057       free_fn)(axiom_children_with_specific_attribute_iterator_t *iterator,
00058                  const axis2_env_t *env);
00059                              
00067         axis2_status_t (AXIS2_CALL *
00068       remove)(axiom_children_with_specific_attribute_iterator_t *iterator,
00069                 const axis2_env_t *env);
00070                              
00077         axis2_bool_t (AXIS2_CALL *
00078       has_next)(axiom_children_with_specific_attribute_iterator_t *iterator,
00079                   const axis2_env_t *env);
00080     
00085         axiom_node_t* (AXIS2_CALL *
00086       next)(axiom_children_with_specific_attribute_iterator_t *iterator,
00087               const axis2_env_t *env);
00088     
00089     
00090     
00091     };
00092     
00093     
00094 struct axiom_children_with_specific_attribute_iterator
00095 {
00096     axiom_children_with_specific_attribute_iterator_ops_t *ops;
00097 };    
00098 
00105 AXIS2_EXTERN  axiom_children_with_specific_attribute_iterator_t * AXIS2_CALL
00106 axiom_children_with_specific_attribute_iterator_create(
00107                                   const axis2_env_t *env, 
00108                                   axiom_node_t *current_child,
00109                                   axis2_qname_t *attr_qname,
00110                                   axis2_char_t *attr_value,
00111                                   axis2_bool_t detach);
00112                                   
00113 /************ Macros *********************************************/
00114 
00115 #define AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_FREE(iterator, env) \
00116         ((iterator)->ops->free_fn(iterator, env))
00117 
00118 #define AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_REMOVE(iterator, env) \
00119         ((iterator)->ops->remove(iterator, env))
00120         
00121 #define AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_HAS_NEXT(iterator, env) \
00122         ((iterator)->ops->has_next(iterator, env))
00123         
00124 #define AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_NEXT(iterator, env) \
00125         ((iterator)->ops->next(iterator, env))        
00126         
00127               
00130 #ifdef __cplusplus
00131 }
00132 #endif
00133 
00134 
00135 #endif /* AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_H */

Generated on Fri Jun 16 18:02:30 2006 for Axis2/C by  doxygen 1.4.2