# savan_subs_mgr.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 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 /*SAVAN_SUBS_MGR_H*/