savan_publisher.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_PUBLISHER_H
00018 #define SAVAN_PUBLISHER_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 <axis2_msg_ctx.h>
00029 #include <axiom_node.h>
00030 
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035 
00041 typedef struct savan_publisher savan_publisher_t;
00042 typedef struct savan_publisher_ops savan_publisher_ops_t;
00043 struct savan_subs_mgr;
00044 
00049 AXIS2_DECLARE_DATA struct savan_publisher_ops
00050 { 
00051     void (AXIS2_CALL * 
00052             free)(
00053                 savan_publisher_t *publisher,
00054                 const axutil_env_t *env);
00055 
00056     void (AXIS2_CALL *
00057             publish)(
00058                 savan_publisher_t *publisher, 
00059                 const axutil_env_t *env,
00060                 void *msg_ctx,
00061                 struct savan_subs_mgr *subs_mgr);
00062 
00063 };
00064 
00065 AXIS2_DECLARE_DATA struct savan_publisher
00066 {
00067     const savan_publisher_ops_t *ops;
00068 };
00069 
00070 
00077 AXIS2_EXTERN savan_publisher_t * AXIS2_CALL
00078 savan_publisher_create_with_conf(
00079     const axutil_env_t *env,
00080     axis2_conf_t *conf);
00081 
00087 AXIS2_EXTERN savan_publisher_t * AXIS2_CALL
00088 savan_publisher_create(
00089     const axutil_env_t *env);
00090 
00096 AXIS2_EXTERN void AXIS2_CALL 
00097 savan_publisher_free(
00098     savan_publisher_t *publishermod,
00099     const axutil_env_t *env);
00100 
00107 AXIS2_EXTERN void AXIS2_CALL
00108 savan_publisher_publish(
00109     savan_publisher_t *publishermod, 
00110     const axutil_env_t *env,
00111     void *msg_ctx,
00112     struct savan_subs_mgr *subs_mgr);
00113 
00115 #ifdef __cplusplus
00116 }
00117 #endif
00118 
00119 #endif /*SAVAN_PUBLISHER_H*/

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