00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_SVC_NAME_H
00018 #define AXIS2_SVC_NAME_H
00019
00031 #include <axis2_defines.h>
00032 #include <axis2_env.h>
00033 #include <axis2_const.h>
00034 #include <axis2_qname.h>
00035
00036 #ifdef __cplusplus
00037 extern "C"
00038 {
00039 #endif
00040
00042 typedef struct axis2_svc_name axis2_svc_name_t;
00044 typedef struct axis2_svc_name_ops axis2_svc_name_ops_t;
00045
00046
00050 struct axis2_svc_name_ops
00051 {
00056 axis2_qname_t *(AXIS2_CALL *
00057 get_qname)(
00058 const axis2_svc_name_t *svc_name,
00059 const axis2_env_t *env);
00060
00067 axis2_status_t (AXIS2_CALL *
00068 set_qname)(
00069 struct axis2_svc_name *svc_name,
00070 const axis2_env_t *env,
00071 axis2_qname_t *qname);
00072
00077 axis2_char_t *(AXIS2_CALL *
00078 get_endpoint_name)(
00079 const axis2_svc_name_t *svc_name,
00080 const axis2_env_t *env);
00081
00088 axis2_status_t (AXIS2_CALL *
00089 set_endpoint_name)(
00090 struct axis2_svc_name *svc_name,
00091 const axis2_env_t *env,
00092 axis2_char_t *endpoint_name);
00093
00099 axis2_status_t (AXIS2_CALL *
00100 free)(
00101 struct axis2_svc_name *svc_name,
00102 const axis2_env_t *env);
00103
00104 };
00105
00109 struct axis2_svc_name
00110 {
00112 axis2_svc_name_ops_t *ops;
00113 };
00114
00115
00119 AXIS2_EXTERN axis2_svc_name_t *AXIS2_CALL
00120 axis2_svc_name_create(
00121 const axis2_env_t *env,
00122 axis2_qname_t *qname,
00123 axis2_char_t *endpoint_name) ;
00124
00127 #define AXIS2_SVC_NAME_GET_QNAME(svc_name, env) \
00128 ((svc_name)->ops->get_qname(svc_name, env))
00129
00132 #define AXIS2_SVC_NAME_SET_QNAME(svc_name, env, qname) \
00133 ((svc_name)->ops->set_qname(svc_name, env, qname))
00134
00137 #define AXIS2_SVC_NAME_GET_ENDPOINT_NAME(svc_name, env) \
00138 ((svc_name)->ops->get_endpoint_name(svc_name, env))
00139
00142 #define AXIS2_SVC_NAME_SET_ENDPOINT_NAME(svc_name, env, endpoint_name) \
00143 ((svc_name)->ops->set_endpoint_name(svc_name, env, endpoint_name))
00144
00147 #define AXIS2_SVC_NAME_FREE(svc_name, env) \
00148 ((svc_name)->ops->free(svc_name, env))
00149
00152 #ifdef __cplusplus
00153 }
00154 #endif
00155
00156 #endif