axis2_disp.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_DISP_H
00019 #define AXIS2_DISP_H
00020 
00038 #include <axis2_defines.h>
00039 #include <axis2_qname.h>
00040 #include <axis2_handler.h>
00041 #include <axis2_svc.h>
00042 
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047 
00048 #define AXIS2_DISP_NAMESPACE "http://axis.ws.apache.org"
00049 
00051     typedef struct axis2_disp axis2_disp_t;
00053     typedef struct axis2_disp_ops axis2_disp_ops_t;
00054 
00059      struct axis2_disp_ops
00060     {
00068         axis2_handler_t *(AXIS2_CALL *
00069                 get_base)(
00070                     const axis2_disp_t *disp,
00071                     const axis2_env_t *env);
00072 
00080         axis2_qname_t *(AXIS2_CALL *
00081                 get_qname)(
00082                     const axis2_disp_t *disp,
00083                     const axis2_env_t *env);
00084 
00093         axis2_status_t (AXIS2_CALL *
00094                 set_qname)(
00095                     axis2_disp_t *disp,
00096                     const axis2_env_t *env, 
00097                     axis2_qname_t *qname);
00098 
00105         axis2_status_t (AXIS2_CALL *
00106                 free)(
00107                     axis2_disp_t *disp,
00108                     const axis2_env_t *env);
00118         axis2_svc_t *(AXIS2_CALL *
00119                 find_svc)(
00120                     axis2_msg_ctx_t *msg_ctx,
00121                     const axis2_env_t *env);
00134         axis2_op_t *(AXIS2_CALL *
00135                 find_op)(
00136                     axis2_msg_ctx_t *msg_ctx,
00137                     const axis2_env_t *env,
00138                     const axis2_svc_t *svc);
00139 
00140     };
00141 
00145     struct axis2_disp
00146     {
00148         axis2_disp_ops_t *ops;
00149     };
00150 
00151 
00158     AXIS2_EXTERN axis2_disp_t *AXIS2_CALL 
00159     axis2_disp_create(
00160         const axis2_env_t *env, 
00161         const axis2_qname_t *qname);
00162 
00171     axis2_status_t AXIS2_CALL 
00172     axis2_disp_invoke(
00173         axis2_handler_t *handler,
00174         const axis2_env_t *env,
00175         axis2_msg_ctx_t *msg_ctx);
00176 
00183     axis2_disp_t *AXIS2_CALL 
00184     axis2_addr_disp_create(
00185         const axis2_env_t *env);
00186 
00193     axis2_disp_t *AXIS2_CALL 
00194     axis2_req_uri_disp_create(
00195         const axis2_env_t *env);
00196 
00203     axis2_disp_t *AXIS2_CALL 
00204     axiom_soap_body_disp_create(
00205         const axis2_env_t *env);
00206 
00213     axis2_disp_t *AXIS2_CALL 
00214     axiom_soap_action_disp_create(
00215         const axis2_env_t *env);
00216 
00217 
00220 #define AXIS2_DISP_GET_BASE(disp, env) \
00221         ((disp)->ops->get_base(disp, env))
00222 
00225 #define AXIS2_DISP_GET_QNAME(disp, env) \
00226         ((disp)->ops->get_qname(disp, env))
00227 
00230 #define AXIS2_DISP_SET_QNAME(disp, env, name) \
00231         ((disp)->ops->set_qname(disp, env, name))
00232 
00235 #define AXIS2_DISP_FREE(disp, env) \
00236         ((disp)->ops->free(disp, env))
00237 
00240 #define AXIS2_DISP_FIND_SVC(msg_ctx, env) \
00241         ((msg_ctx)->ops->find_svc(msg_ctx, env))
00242 
00245 #define AXIS2_DISP_FIND_OP(msg_ctx, env, svc) \
00246         ((msg_ctx)->ops->find_op(msg_ctx, env, svc))
00247 
00250 #ifdef __cplusplus
00251 }
00252 #endif
00253 
00254 #endif    /* AXIS2_DISP_H */

Generated on Wed Dec 20 20:14:10 2006 for Axis2/C by  doxygen 1.5.1