axis2_wsdl_component.h

Go to the documentation of this file.
00001 /*
00002 * Licensed to the Apache Software Foundation (ASF) under one or more
00003 * contributor license agreements.  See the NOTICE file distributed with
00004 * this work for additional information regarding copyright ownership.
00005 * The ASF licenses this file to You under the Apache License, Version 2.0
00006 * (the "License"); you may not use this file except in compliance with
00007 * the License.  You may obtain a copy of the License at
00008 *
00009 *      http://www.apache.org/licenses/LICENSE-2.0
00010 *
00011 * Unless required by applicable law or agreed to in writing, software
00012 * distributed under the License is distributed on an "AS IS" BASIS,
00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014 * See the License for the specific language governing permissions and
00015 * limitations under the License.
00016 */
00017 
00018 #ifndef AXIS2_WSDL_COMPONENT_H
00019 #define AXIS2_WSDL_COMPONENT_H
00020 
00025 #include <axis2_const.h>
00026 #include <axis2_error.h>
00027 #include <axis2_defines.h>
00028 #include <axis2_env.h>
00029 #include <axis2_allocator.h>
00030 #include <axis2_string.h>
00031 #include <axis2_hash.h>
00032 #include <axis2_linked_list.h>
00033 #include <axis2_array_list.h>
00034 #include <axis2_wsdl_extensible_element.h>
00035 
00036 
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041 
00042 struct axis2_wsdl_extensible_element;
00043 struct axis2_param_container;   
00044 struct axis2_module_desc;
00045 typedef struct axis2_wsdl_component_ops axis2_wsdl_component_ops_t;
00046 typedef struct axis2_wsdl_component axis2_wsdl_component_t;
00047    
00057 struct axis2_wsdl_component_ops
00058 {
00062     axis2_status_t (AXIS2_CALL *
00063     free) (axis2_wsdl_component_t *wsdl_component, 
00064            const axis2_env_t *env);
00065     
00071     axis2_status_t (AXIS2_CALL *
00072     set_component_properties) (axis2_wsdl_component_t *wsdl_component, 
00073                                 const axis2_env_t *env, 
00074                                 axis2_hash_t *properties);
00075     
00076 
00081     axis2_hash_t *(AXIS2_CALL *
00082     get_component_properties) (axis2_wsdl_component_t *wsdl_component, 
00083                                const axis2_env_t *env);
00084     
00091     axis2_status_t (AXIS2_CALL *
00092     set_component_property) (axis2_wsdl_component_t *wsdl_component,
00093                                 const axis2_env_t *env, 
00094                                 const axis2_char_t *key, 
00095                                 void *value);        
00096                                 
00097     
00103     void *(AXIS2_CALL *
00104     get_component_property) (axis2_wsdl_component_t *wsdl_component, 
00105                                 const axis2_env_t *env,
00106                                 const axis2_char_t *key);
00107  
00108 
00109 
00115     axis2_status_t (AXIS2_CALL *
00116     add_extensibility_element) (axis2_wsdl_component_t *wsdl_component,
00117                                 const axis2_env_t *env,
00118                                 void *element);
00119                                                         
00125     axis2_linked_list_t *(AXIS2_CALL *
00126     get_extensibility_elements) (axis2_wsdl_component_t *wsdl_component,
00127                                                     const axis2_env_t *env);
00128                                                 
00129 };
00130 
00136 struct axis2_wsdl_component
00137 {
00138    axis2_wsdl_component_ops_t *ops;
00139 };
00140 
00144 AXIS2_EXTERN axis2_wsdl_component_t * AXIS2_CALL 
00145 axis2_wsdl_component_create (const axis2_env_t *env);
00146 
00147 /**************************** Start of function macros ************************/
00148 
00149 #define AXIS2_WSDL_COMPONENT_FREE(wsdl_component, env) \
00150       ((wsdl_component)->ops->free (wsdl_component, env))
00151 
00152 #define AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTIES(wsdl_component, env, \
00153       properties) \
00154       ((wsdl_component)->ops->set_component_properties(wsdl_component , env, \
00155             properties))
00156             
00157 #define AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTIES(wsdl_component, env) \
00158       ((wsdl_component)->ops->get_component_properties(wsdl_component, env))
00159 
00160 #define AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(wsdl_component, env, \
00161       key, value) \
00162       ((wsdl_component)->ops->set_component_property(wsdl_component, env,\
00163             key, value))            
00164       
00165 #define AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(wsdl_component, env, key) \
00166       ((wsdl_component)->ops->get_component_property(wsdl_component, env, key))
00167 
00168 
00169 #define AXIS2_WSDL_COMPONENT_ADD_EXTENSIBILITY_ELEMENT(wsdl_component, env, element) \
00170       ((wsdl_component)->ops->add_extensibility_element(wsdl_component, env, element))
00171  
00172 #define AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(wsdl_component, env) \
00173       ((wsdl_component)->ops->get_extensibility_elements(wsdl_component, env))
00174         
00175 /**************************** End of function macros **************************/
00176 
00178 #ifdef __cplusplus
00179 }
00180 #endif
00181 
00182 #endif /*AXIS2_WSDL_COMPONENT_H*/

Generated on Wed Dec 20 20:34:50 2006 for Axis2/C by  doxygen 1.5.1