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*/

Generated on Wed Oct 14 01:02:18 2009 for Savan/C by  doxygen 1.5.7.1