savan_publisher.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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