00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SAVAN_SUBS_MGR_H
00018 #define SAVAN_SUBS_MGR_H
00019
00024 #include <platforms/axutil_platform_auto_sense.h>
00025 #include <axutil_utils_defines.h>
00026 #include <axutil_env.h>
00027 #include <axis2_conf.h>
00028 #include <savan_subscriber.h>
00029
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034
00040 typedef struct savan_subs_mgr savan_subs_mgr_t;
00041 typedef struct savan_subs_mgr_ops savan_subs_mgr_ops_t;
00042 struct axis2_conf_ctx;
00043
00048 AXIS2_DECLARE_DATA struct savan_subs_mgr_ops
00049 {
00050 void (AXIS2_CALL *
00051 free)(
00052 savan_subs_mgr_t *subs_mgr,
00053 const axutil_env_t *env);
00054
00055 axis2_status_t (AXIS2_CALL *
00056 insert_subscriber)(
00057 savan_subs_mgr_t *subs_mgr,
00058 const axutil_env_t *env,
00059 savan_subscriber_t *subscriber);
00060
00061 axis2_status_t (AXIS2_CALL *
00062 update_subscriber)(
00063 savan_subs_mgr_t *subs_mgr,
00064 const axutil_env_t *env,
00065 savan_subscriber_t *subscriber);
00066
00067 axis2_status_t (AXIS2_CALL *
00068 remove_subscriber)(
00069 savan_subs_mgr_t *subs_mgr,
00070 const axutil_env_t *env,
00071 const axis2_char_t *subscription_id);
00072
00073 savan_subscriber_t *(AXIS2_CALL *
00074 retrieve_subscriber)(
00075 savan_subs_mgr_t *subs_mgr,
00076 const axutil_env_t *env,
00077 const axis2_char_t *subscription_id);
00078
00079 axutil_array_list_t *(AXIS2_CALL *
00080 retrieve_all_subscribers)(
00081 savan_subs_mgr_t *subs_mgr,
00082 const axutil_env_t *env,
00083 const axis2_char_t *topic_name);
00084
00085 axis2_status_t (AXIS2_CALL *
00086 insert_topic)(
00087 savan_subs_mgr_t *subs_mgr,
00088 const axutil_env_t *env,
00089 const axis2_char_t *topic_name,
00090 const axis2_char_t *topic_url);
00091
00092 };
00093
00094 AXIS2_DECLARE_DATA struct savan_subs_mgr
00095 {
00096 const savan_subs_mgr_ops_t *ops;
00097 };
00098
00099
00106 AXIS2_EXTERN savan_subs_mgr_t * AXIS2_CALL
00107 savan_subs_mgr_create(
00108 const axutil_env_t *env,
00109 axis2_conf_t *conf);
00110
00111 AXIS2_EXTERN savan_subs_mgr_t * AXIS2_CALL
00112 savan_subs_mgr_create_with_connection_info(
00113 const axutil_env_t *env,
00114 axis2_char_t *connection_string,
00115 axis2_char_t *username,
00116 axis2_char_t *password);
00117
00123 AXIS2_EXTERN void AXIS2_CALL
00124 savan_subs_mgr_free(
00125 savan_subs_mgr_t *subs_mgr,
00126 const axutil_env_t *envv);
00127
00135 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00136 savan_subs_mgr_insert_subscriber(
00137 savan_subs_mgr_t *subs_mgr,
00138 const axutil_env_t *env,
00139 savan_subscriber_t *subscriber);
00140
00148 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00149 savan_subs_mgr_update_subscriber(
00150 savan_subs_mgr_t *subs_mgr,
00151 const axutil_env_t *env,
00152 savan_subscriber_t *subscriber);
00153
00161 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00162 savan_subs_mgr_remove_subscriber(
00163 savan_subs_mgr_t *subs_mgr,
00164 const axutil_env_t *env,
00165 const axis2_char_t *subscription_id);
00166
00174 AXIS2_EXTERN savan_subscriber_t *AXIS2_CALL
00175 savan_subs_mgr_retrieve_subscriber(
00176 savan_subs_mgr_t *subs_mgr,
00177 const axutil_env_t *env,
00178 const axis2_char_t *subscription_id);
00179
00187 AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
00188 savan_subs_mgr_retrieve_all_subscribers(
00189 savan_subs_mgr_t *subs_mgr,
00190 const axutil_env_t *env,
00191 const axis2_char_t *filter);
00192
00201 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00202 savan_subs_mgr_insert_topic(
00203 savan_subs_mgr_t *subs_mgr,
00204 const axutil_env_t *env,
00205 const axis2_char_t *topic_name,
00206 const axis2_char_t *topic_url);
00207
00208 AXIS2_EXTERN savan_subscriber_t *AXIS2_CALL
00209 savan_subs_mgr_get_subscriber_from_msg(
00210 const axutil_env_t *env,
00211 axis2_msg_ctx_t *msg_ctx,
00212 savan_subs_mgr_t *subs_mgr,
00213 const axis2_char_t *sub_id);
00214
00215 AXIS2_EXTERN savan_subscriber_t *AXIS2_CALL
00216 savan_subs_mgr_get_subscriber_from_renew_msg(
00217 const axutil_env_t *env,
00218 axis2_msg_ctx_t *msg_ctx,
00219 savan_subs_mgr_t *subs_mgr,
00220 const axis2_char_t *sub_id);
00221
00222 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00223 savan_subs_mgr_add_subscriber(
00224 const axutil_env_t *env,
00225 axis2_msg_ctx_t *msg_ctx,
00226 savan_subs_mgr_t *subs_mgr,
00227 savan_subscriber_t *subscriber);
00228
00229 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00230 savan_subs_mgr_update_subscriber_with_msg_ctx(
00231 const axutil_env_t *env,
00232 axis2_msg_ctx_t *msg_ctx,
00233 savan_subs_mgr_t *subs_mgr,
00234 savan_subscriber_t *subscriber);
00235
00236 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00237 savan_subs_mgr_remove_subscriber_with_msg_ctx(
00238 const axutil_env_t *env,
00239 axis2_msg_ctx_t *msg_ctx,
00240 savan_subs_mgr_t *subs_mgr,
00241 savan_subscriber_t *subscriber);
00242
00252 AXIS2_EXTERN struct savan_subs_mgr * AXIS2_CALL
00253 savan_subs_mgr_get_subs_mgr(
00254 const axutil_env_t *env,
00255 struct axis2_conf_ctx *conf_ctx,
00256 axis2_conf_t *conf);
00257
00258
00260 #ifdef __cplusplus
00261 }
00262 #endif
00263
00264 #endif