00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_WSDL_EXTENSIBLE_COMPONENT_H
00018 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_H
00019
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_linked_list.h>
00031 #include <axis2_wsdl_feature.h>
00032 #include <axis2_wsdl_property.h>
00033 #include <axis2_wsdl_component.h>
00034
00035 #ifdef __cplusplus
00036 extern "C"
00037 {
00038 #endif
00039
00040 struct axis2_wsdl_component;
00041 struct axis2_wsdl_feature;
00042 struct axis2_wsdl_property;
00043 typedef struct axis2_wsdl_extensible_component axis2_wsdl_extensible_component_t;
00044 typedef struct axis2_wsdl_extensible_component_ops axis2_wsdl_extensible_component_ops_t;
00045
00055 AXIS2_DECLARE_DATA struct axis2_wsdl_extensible_component_ops
00056 {
00060 axis2_status_t (AXIS2_CALL *free)(
00061 axis2_wsdl_extensible_component_t *wsdl_extensible_component,
00062 const axis2_env_t *env);
00063
00071 axis2_status_t (AXIS2_CALL *
00072 add_feature) (axis2_wsdl_extensible_component_t *extensible_component,
00073 const axis2_env_t *env,
00074 struct axis2_wsdl_feature *wsdl_feature);
00075
00082 axis2_linked_list_t *(AXIS2_CALL *
00083 get_features) (axis2_wsdl_extensible_component_t *extensible_component,
00084 const axis2_env_t *env);
00085
00092 axis2_status_t (AXIS2_CALL *
00093 add_property) (axis2_wsdl_extensible_component_t *extensible_component,
00094 const axis2_env_t *env,
00095 struct axis2_wsdl_property *wsdl_property);
00096
00102 axis2_linked_list_t *(AXIS2_CALL *
00103 get_properties) (axis2_wsdl_extensible_component_t *extensible_component,
00104 const axis2_env_t *env);
00105 };
00106
00111 AXIS2_DECLARE_DATA struct axis2_wsdl_extensible_component
00112 {
00113 axis2_wsdl_extensible_component_ops_t *ops;
00114 struct axis2_wsdl_component *wsdl_component;
00115 };
00116
00121 AXIS2_EXTERN axis2_wsdl_extensible_component_t * AXIS2_CALL
00122 axis2_wsdl_extensible_component_create (const axis2_env_t *env);
00123
00124
00125
00126 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_FREE(extensible_component, env) \
00127 ((extensible_component)->ops->free (extensible_component, env))
00128
00129 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_ADD_FEATURE(extensible_component, env, feature) \
00130 ((extensible_component)->ops->add_feature (extensible_component, env, feature))
00131
00132 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_GET_FEATURES(extensible_component, env) \
00133 ((extensible_component)->ops->get_features (extensible_component, env))
00134
00135 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_ADD_PROPERTY(extensible_component, env, property) \
00136 ((extensible_component)->ops->add_property (extensible_component, env, property))
00137
00138 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_GET_PROPERTIES(extensible_component, env) \
00139 ((extensible_component)->ops->get_properties (extensible_component, env))
00140
00141
00142
00145 #ifdef __cplusplus
00146 }
00147 #endif
00148 #endif