axis2_wsdl_component.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 AXIS2_WSDL_COMPONENT_H
00018 #define AXIS2_WSDL_COMPONENT_H
00019 
00024 #include <axis2_const.h>
00025 #include <axis2_error.h>
00026 #include <axis2_defines.h>
00027 #include <axis2_env.h>
00028 #include <axis2_allocator.h>
00029 #include <axis2_string.h>
00030 #include <axis2_hash.h>
00031 #include <axis2_linked_list.h>
00032 #include <axis2_array_list.h>
00033 #include <axis2_wsdl_extensible_element.h>
00034 
00035 
00036 #ifdef __cplusplus
00037 extern "C"
00038 {
00039 #endif
00040 
00041 struct axis2_wsdl_extensible_element;
00042 struct axis2_param_container;   
00043 struct axis2_module_desc;
00044 typedef struct axis2_wsdl_component_ops axis2_wsdl_component_ops_t;
00045 typedef struct axis2_wsdl_component axis2_wsdl_component_t;
00046    
00056 struct axis2_wsdl_component_ops
00057 {
00061     axis2_status_t (AXIS2_CALL *
00062     free) (axis2_wsdl_component_t *wsdl_component, 
00063            const axis2_env_t *env);
00064     
00070     axis2_status_t (AXIS2_CALL *
00071     set_component_properties) (axis2_wsdl_component_t *wsdl_component, 
00072                                 const axis2_env_t *env, 
00073                                 axis2_hash_t *properties);
00074     
00075 
00080     axis2_hash_t *(AXIS2_CALL *
00081     get_component_properties) (axis2_wsdl_component_t *wsdl_component, 
00082                                const axis2_env_t *env);
00083     
00090     axis2_status_t (AXIS2_CALL *
00091     set_component_property) (axis2_wsdl_component_t *wsdl_component,
00092                                 const axis2_env_t *env, 
00093                                 const axis2_char_t *key, 
00094                                 void *value);        
00095                                 
00096     
00102     void *(AXIS2_CALL *
00103     get_component_property) (axis2_wsdl_component_t *wsdl_component, 
00104                                 const axis2_env_t *env,
00105                                 const axis2_char_t *key);
00106  
00107 
00108 
00114     axis2_status_t (AXIS2_CALL *
00115     add_extensibility_element) (axis2_wsdl_component_t *wsdl_component,
00116                                 const axis2_env_t *env,
00117                                 void *element);
00118                                                         
00124     axis2_linked_list_t *(AXIS2_CALL *
00125     get_extensibility_elements) (axis2_wsdl_component_t *wsdl_component,
00126                                                     const axis2_env_t *env);
00127                                                 
00128 };
00129 
00135 struct axis2_wsdl_component
00136 {
00137    axis2_wsdl_component_ops_t *ops;
00138 };
00139 
00143 AXIS2_EXTERN axis2_wsdl_component_t * AXIS2_CALL 
00144 axis2_wsdl_component_create (const axis2_env_t *env);
00145 
00146 /**************************** Start of function macros ************************/
00147 
00148 #define AXIS2_WSDL_COMPONENT_FREE(wsdl_component, env) \
00149       ((wsdl_component)->ops->free (wsdl_component, env))
00150 
00151 #define AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTIES(wsdl_component, env, \
00152       properties) \
00153       ((wsdl_component)->ops->set_component_properties(wsdl_component , env, \
00154             properties))
00155             
00156 #define AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTIES(wsdl_component, env) \
00157       ((wsdl_component)->ops->get_component_properties(wsdl_component, env))
00158 
00159 #define AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(wsdl_component, env, \
00160       key, value) \
00161       ((wsdl_component)->ops->set_component_property(wsdl_component, env,\
00162             key, value))            
00163       
00164 #define AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(wsdl_component, env, key) \
00165       ((wsdl_component)->ops->get_component_property(wsdl_component, env, key))
00166 
00167 
00168 #define AXIS2_WSDL_COMPONENT_ADD_EXTENSIBILITY_ELEMENT(wsdl_component, env, element) \
00169       ((wsdl_component)->ops->add_extensibility_element(wsdl_component, env, element))
00170  
00171 #define AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(wsdl_component, env) \
00172       ((wsdl_component)->ops->get_extensibility_elements(wsdl_component, env))
00173         
00174 /**************************** End of function macros **************************/
00175 
00177 #ifdef __cplusplus
00178 }
00179 #endif
00180 
00181 #endif /*AXIS2_WSDL_COMPONENT_H*/

Generated on Thu Oct 26 21:11:24 2006 for Axis2/C by  doxygen 1.4.7