axis2_svc_name.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef AXIS2_SVC_NAME_H
00019 #define AXIS2_SVC_NAME_H
00020 
00036 #include <axis2_defines.h>
00037 #include <axis2_env.h>
00038 #include <axis2_const.h>
00039 #include <axis2_qname.h>
00040 
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045 
00047     typedef struct axis2_svc_name axis2_svc_name_t;
00049     typedef struct axis2_svc_name_ops axis2_svc_name_ops_t;
00050 
00051 
00055     struct axis2_svc_name_ops
00056     {
00065         const axis2_qname_t *(AXIS2_CALL *
00066                 get_qname)(
00067                     const axis2_svc_name_t *svc_name,
00068                     const axis2_env_t *env);
00069 
00078         axis2_status_t (AXIS2_CALL *
00079                 set_qname)(
00080                     struct axis2_svc_name *svc_name,
00081                     const axis2_env_t *env,
00082                     const axis2_qname_t *qname);
00083 
00092         const axis2_char_t *(AXIS2_CALL *
00093                 get_endpoint_name)(
00094                     const axis2_svc_name_t *svc_name,
00095                     const axis2_env_t *env);
00096 
00106         axis2_status_t (AXIS2_CALL *
00107                 set_endpoint_name)(
00108                     struct axis2_svc_name *svc_name,
00109                     const axis2_env_t *env,
00110                     const axis2_char_t *endpoint_name);
00111 
00118         axis2_status_t (AXIS2_CALL *
00119                 free)(
00120                     struct axis2_svc_name *svc_name,
00121                     const axis2_env_t *env);
00122 
00123     };
00124 
00128     struct axis2_svc_name
00129     {
00131         axis2_svc_name_ops_t *ops;
00132     };
00133 
00134 
00142     AXIS2_EXTERN axis2_svc_name_t *AXIS2_CALL
00143     axis2_svc_name_create(
00144         const axis2_env_t *env,
00145         const axis2_qname_t *qname,
00146         const axis2_char_t *endpoint_name) ;
00147 
00150 #define AXIS2_SVC_NAME_GET_QNAME(svc_name, env) \
00151       ((svc_name)->ops->get_qname(svc_name, env))
00152 
00155 #define AXIS2_SVC_NAME_SET_QNAME(svc_name, env, qname) \
00156       ((svc_name)->ops->set_qname(svc_name, env, qname))
00157 
00160 #define AXIS2_SVC_NAME_GET_ENDPOINT_NAME(svc_name, env) \
00161       ((svc_name)->ops->get_endpoint_name(svc_name, env))
00162 
00165 #define AXIS2_SVC_NAME_SET_ENDPOINT_NAME(svc_name, env, endpoint_name) \
00166       ((svc_name)->ops->set_endpoint_name(svc_name, env, endpoint_name))
00167 
00170 #define AXIS2_SVC_NAME_FREE(svc_name, env) \
00171       ((svc_name)->ops->free(svc_name, env))
00172 
00175 #ifdef __cplusplus
00176 }
00177 #endif
00178 
00179 #endif    /* AXIS2_SVC_NAME_H */

Generated on Wed Dec 20 20:34:50 2006 for Axis2/C by  doxygen 1.5.1