00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_WSDL_EXTENSIBLE_COMPONENT_H
00019 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_H
00020
00026 #include <axis2_const.h>
00027 #include <axis2_error.h>
00028 #include <axis2_defines.h>
00029 #include <axis2_env.h>
00030 #include <axis2_allocator.h>
00031 #include <axis2_linked_list.h>
00032 #include <axis2_wsdl_feature.h>
00033 #include <axis2_wsdl_property.h>
00034 #include <axis2_wsdl_component.h>
00035
00036 #ifdef __cplusplus
00037 extern "C"
00038 {
00039 #endif
00040
00041 struct axis2_wsdl_component;
00042 struct axis2_wsdl_feature;
00043 struct axis2_wsdl_property;
00044 typedef struct axis2_wsdl_extensible_component axis2_wsdl_extensible_component_t;
00045 typedef struct axis2_wsdl_extensible_component_ops axis2_wsdl_extensible_component_ops_t;
00046
00056 struct axis2_wsdl_extensible_component_ops
00057 {
00061 axis2_status_t (AXIS2_CALL *free)(
00062 axis2_wsdl_extensible_component_t *wsdl_extensible_component,
00063 const axis2_env_t *env);
00064
00072 axis2_status_t (AXIS2_CALL *
00073 add_feature) (axis2_wsdl_extensible_component_t *extensible_component,
00074 const axis2_env_t *env,
00075 struct axis2_wsdl_feature *wsdl_feature);
00076
00083 axis2_linked_list_t *(AXIS2_CALL *
00084 get_features) (axis2_wsdl_extensible_component_t *extensible_component,
00085 const axis2_env_t *env);
00086
00093 axis2_status_t (AXIS2_CALL *
00094 add_property) (axis2_wsdl_extensible_component_t *extensible_component,
00095 const axis2_env_t *env,
00096 struct axis2_wsdl_property *wsdl_property);
00097
00103 axis2_linked_list_t *(AXIS2_CALL *
00104 get_properties) (axis2_wsdl_extensible_component_t *extensible_component,
00105 const axis2_env_t *env);
00106 };
00107
00112 struct axis2_wsdl_extensible_component
00113 {
00114 axis2_wsdl_extensible_component_ops_t *ops;
00115 struct axis2_wsdl_component *wsdl_component;
00116 };
00117
00122 AXIS2_EXTERN axis2_wsdl_extensible_component_t * AXIS2_CALL
00123 axis2_wsdl_extensible_component_create (const axis2_env_t *env);
00124
00125
00126
00127 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_FREE(extensible_component, env) \
00128 ((extensible_component)->ops->free (extensible_component, env))
00129
00130 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_ADD_FEATURE(extensible_component, env, feature) \
00131 ((extensible_component)->ops->add_feature (extensible_component, env, feature))
00132
00133 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_GET_FEATURES(extensible_component, env) \
00134 ((extensible_component)->ops->get_features (extensible_component, env))
00135
00136 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_ADD_PROPERTY(extensible_component, env, property) \
00137 ((extensible_component)->ops->add_property (extensible_component, env, property))
00138
00139 #define AXIS2_WSDL_EXTENSIBLE_COMPONENT_GET_PROPERTIES(extensible_component, env) \
00140 ((extensible_component)->ops->get_properties (extensible_component, env))
00141
00142
00143
00146 #ifdef __cplusplus
00147 }
00148 #endif
00149 #endif