axis2_disp.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 AXIS2_DISP_H
00018 #define AXIS2_DISP_H
00019 
00037 #include <axis2_defines.h>
00038 #include <axis2_qname.h>
00039 #include <axis2_handler.h>
00040 #include <axis2_svc.h>
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00048     typedef struct axis2_disp axis2_disp_t;
00050     typedef struct axis2_disp_ops axis2_disp_ops_t;
00051 
00056      struct axis2_disp_ops
00057     {
00065         axis2_handler_t *(AXIS2_CALL *
00066                 get_base)(
00067                     const axis2_disp_t *disp,
00068                     const axis2_env_t *env);
00069 
00077         axis2_qname_t *(AXIS2_CALL *
00078                 get_qname)(
00079                     const axis2_disp_t *disp,
00080                     const axis2_env_t *env);
00081 
00090         axis2_status_t (AXIS2_CALL *
00091                 set_qname)(
00092                     axis2_disp_t *disp,
00093                     const axis2_env_t *env, 
00094                     axis2_qname_t *qname);
00095 
00102         axis2_status_t (AXIS2_CALL *
00103                 free)(
00104                     axis2_disp_t *disp,
00105                     const axis2_env_t *env);
00115         axis2_svc_t *(AXIS2_CALL *
00116                 find_svc)(
00117                     axis2_msg_ctx_t *msg_ctx,
00118                     const axis2_env_t *env);
00131         axis2_op_t *(AXIS2_CALL *
00132                 find_op)(
00133                     axis2_msg_ctx_t *msg_ctx,
00134                     const axis2_env_t *env,
00135                     const axis2_svc_t *svc);
00136 
00137     };
00138 
00142     struct axis2_disp
00143     {
00145         axis2_disp_ops_t *ops;
00146     };
00147 
00148 
00155     AXIS2_EXTERN axis2_disp_t *AXIS2_CALL 
00156     axis2_disp_create(
00157         const axis2_env_t *env, 
00158         const axis2_qname_t *qname);
00159 
00168     axis2_status_t AXIS2_CALL 
00169     axis2_disp_invoke(
00170         axis2_handler_t *handler,
00171         const axis2_env_t *env,
00172         axis2_msg_ctx_t *msg_ctx);
00173 
00180     axis2_disp_t *AXIS2_CALL 
00181     axis2_addr_disp_create(
00182         const axis2_env_t *env);
00183 
00190     axis2_disp_t *AXIS2_CALL 
00191     axis2_req_uri_disp_create(
00192         const axis2_env_t *env);
00193 
00200     axis2_disp_t *AXIS2_CALL 
00201     axiom_soap_body_disp_create(
00202         const axis2_env_t *env);
00203 
00210     axis2_disp_t *AXIS2_CALL 
00211     axiom_soap_action_disp_create(
00212         const axis2_env_t *env);
00213 
00214 
00217 #define AXIS2_DISP_GET_BASE(disp, env) \
00218         ((disp)->ops->get_base(disp, env))
00219 
00222 #define AXIS2_DISP_GET_QNAME(disp, env) \
00223         ((disp)->ops->get_qname(disp, env))
00224 
00227 #define AXIS2_DISP_SET_QNAME(disp, env, name) \
00228         ((disp)->ops->set_qname(disp, env, name))
00229 
00232 #define AXIS2_DISP_FREE(disp, env) \
00233         ((disp)->ops->free(disp, env))
00234 
00237 #define AXIS2_DISP_FIND_SVC(msg_ctx, env) \
00238         ((msg_ctx)->ops->find_svc(msg_ctx, env))
00239 
00242 #define AXIS2_DISP_FIND_OP(msg_ctx, env, svc) \
00243         ((msg_ctx)->ops->find_op(msg_ctx, env, svc))
00244 
00247 #ifdef __cplusplus
00248 }
00249 #endif
00250 
00251 #endif    /* AXIS2_DISP_H */

Generated on Tue Oct 3 22:35:47 2006 for Axis2/C by  doxygen 1.4.7