axis2_op.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_OP_H
00018 #define AXIS2_OP_H
00019 
00042 #include <axis2_param_container.h>
00043 #include <axis2_wsdl_op.h>
00044 #include <axis2_svc.h>
00045 #include <axis2_msg_recv.h>
00046 #include <axis2_array_list.h>
00047 #include <axis2_module_desc.h>
00048 #include <axis2_wsdl_msg_ref.h>
00049 #include <axis2_description.h>
00050 #include <axis2_phase_meta.h>
00051 #include <axis2_relates_to.h>
00052 #include <axis2_msg_ctx.h>
00053 #include <axis2_op_ctx.h>
00054 #include <axis2_svc_ctx.h>
00055 
00056 #ifdef __cplusplus
00057 extern "C"
00058 {
00059 #endif
00060 
00062     typedef struct axis2_op_ops axis2_op_ops_t;
00064     typedef struct axis2_op axis2_op_t;
00065 
00066     struct axis2_wsdl_op;
00067     struct axis2_svc;
00068     struct axis2_msg_recv;
00069     struct axis2_param_container;
00070     struct axis2_module_desc;
00071     struct axis2_op;
00072     struct axis2_wsdl_feature;
00073     struct axis2_wsdl_property;
00074     struct axis2_wsdl_fault_ref;
00075     struct axis2_relates_to;
00076     struct axis2_op_ctx;
00077     struct axis2_svc_ctx;
00078     struct axis2_msg_ctx;
00079     struct axis2_msg;
00080     struct axis2_conf;
00081 
00083 #define AXIS2_SOAP_ACTION "soapAction"
00084 
00089      struct axis2_op_ops
00090     {
00097         axis2_status_t (AXIS2_CALL *
00098                 free)(
00099                     axis2_op_t *op,
00100                     const axis2_env_t *env);
00101 
00108         axis2_status_t (AXIS2_CALL *
00109                 free_void_arg)(
00110                     void *op,
00111                     const axis2_env_t *env);
00112 
00113 
00122         axis2_status_t (AXIS2_CALL *
00123                 add_param)(
00124                     axis2_op_t *op,
00125                     const axis2_env_t *env,
00126                     axis2_param_t *param);
00127 
00136         axis2_param_t *(AXIS2_CALL *
00137                 get_param)(
00138                     const axis2_op_t *op,
00139                     const axis2_env_t *env,
00140                     const axis2_char_t *name);
00141 
00149         axis2_array_list_t *(AXIS2_CALL *
00150                 get_all_params)(
00151                     const axis2_op_t *op,
00152                     const axis2_env_t *env);
00153 
00161         axis2_bool_t (AXIS2_CALL *
00162                 is_param_locked)(
00163                     axis2_op_t *op,
00164                     const axis2_env_t *env,
00165                     const axis2_char_t *param_name);
00166 
00175         axis2_status_t (AXIS2_CALL *
00176                 set_parent)(
00177                     axis2_op_t *op,
00178                     const axis2_env_t *env,
00179                     struct axis2_svc *svc);
00180 
00188         struct axis2_svc *(AXIS2_CALL *
00189                 get_parent)(
00190                     const axis2_op_t *op,
00191                     const axis2_env_t *env);
00192 
00202         axis2_status_t (AXIS2_CALL *
00203                 set_qname)(
00204                     axis2_op_t *op,
00205                     const axis2_env_t *env,
00206                     const axis2_qname_t *qname);
00207 
00214         const axis2_qname_t *(AXIS2_CALL *
00215                 get_qname)(
00216                     void *op,
00217                     const axis2_env_t *env);
00218 
00226         axis2_status_t (AXIS2_CALL *
00227                 set_msg_exchange_pattern)(
00228                     axis2_op_t *op,
00229                     const axis2_env_t *env,
00230                     const axis2_char_t *pattern);
00231 
00238         const axis2_char_t *(AXIS2_CALL *
00239                 get_msg_exchange_pattern)(
00240                     const axis2_op_t *op,
00241                     const axis2_env_t *env);
00242 
00252         axis2_status_t (AXIS2_CALL *
00253                 set_msg_recv)(
00254                     axis2_op_t *op,
00255                     const axis2_env_t *env,
00256                     struct axis2_msg_recv *msg_recv);
00257 
00266         struct axis2_msg_recv *(AXIS2_CALL *
00267                 get_msg_recv)(
00268                     const axis2_op_t *op,
00269                     const axis2_env_t *env);
00270 
00278         const axis2_char_t *(AXIS2_CALL *
00279                 get_style)(
00280                     const axis2_op_t *op,
00281                     const axis2_env_t *env);
00282 
00291         axis2_status_t (AXIS2_CALL *
00292                 set_style)(
00293                     axis2_op_t *op,
00294                     const axis2_env_t *env,
00295                     const axis2_char_t *style);
00296 
00307         axis2_status_t (AXIS2_CALL *
00308                 engage_module)(
00309                     axis2_op_t *op,
00310                     const axis2_env_t *env,
00311                     struct axis2_module_desc *module_desc,
00312                     struct axis2_conf *conf);
00313 
00322         axis2_status_t (AXIS2_CALL *
00323                 add_to_engaged_module_list)(
00324                     axis2_op_t *op,
00325                     const axis2_env_t *env,
00326                     struct axis2_module_desc *module_dec);
00327 
00334         axis2_array_list_t *(AXIS2_CALL *
00335                 get_all_modules)(
00336                     const axis2_op_t *op,
00337                     const axis2_env_t *env);
00338 
00346         int (AXIS2_CALL *
00347                 get_axis_specific_mep_const)(
00348                     const axis2_op_t *op,
00349                     const axis2_env_t *env);
00350 
00359         axis2_array_list_t *(AXIS2_CALL *
00360                 get_fault_in_flow)(
00361                     const axis2_op_t *op,
00362                     const axis2_env_t *env);
00363 
00364 
00373         axis2_array_list_t *(AXIS2_CALL *
00374                 get_fault_out_flow)(
00375                     const axis2_op_t *op,
00376                     const axis2_env_t *env);
00377 
00386         axis2_array_list_t *(AXIS2_CALL *
00387                 get_out_flow)(
00388                     const axis2_op_t *op,
00389                     const axis2_env_t *env);
00390 
00399         axis2_array_list_t *(AXIS2_CALL *
00400                 get_in_flow)(
00401                     const axis2_op_t *op,
00402                     const axis2_env_t *env);
00403 
00413         axis2_status_t (AXIS2_CALL *
00414                 set_fault_in_flow)(
00415                     axis2_op_t *op,
00416                     const axis2_env_t *env,
00417                     axis2_array_list_t *list);
00418 
00428         axis2_status_t (AXIS2_CALL *
00429                 set_fault_out_flow)(
00430                     axis2_op_t *op,
00431                     const axis2_env_t *env,
00432                     axis2_array_list_t *list);
00433 
00443         axis2_status_t (AXIS2_CALL *
00444                 set_out_flow)(
00445                     axis2_op_t *op,
00446                     const axis2_env_t *env,
00447                     axis2_array_list_t *list);
00457         axis2_status_t (AXIS2_CALL *
00458                 set_in_flow)(
00459                     axis2_op_t *op,
00460                     const axis2_env_t *env,
00461                     axis2_array_list_t *list);
00462 
00471         axis2_status_t (AXIS2_CALL *
00472                 add_module_qname)(
00473                     axis2_op_t *op,
00474                     const axis2_env_t *env,
00475                     const axis2_qname_t *module_qname);
00476 
00484         axis2_array_list_t *(AXIS2_CALL *
00485                 get_all_module_qnames)(
00486                     const axis2_op_t *op,
00487                     const axis2_env_t *env);
00488 
00496         axis2_linked_list_t *(AXIS2_CALL *
00497                 get_all_in_faults)(
00498                     const axis2_op_t *op,
00499                     const axis2_env_t *env);
00500 
00509         axis2_status_t (AXIS2_CALL *
00510                 set_in_faults)(
00511                     axis2_op_t *op,
00512                     const axis2_env_t *env,
00513                     axis2_linked_list_t *in_faults);
00514 
00522         struct axis2_wsdl_msg_ref *(AXIS2_CALL *
00523                 get_input_msg)(
00524                     const axis2_op_t *op,
00525                     const axis2_env_t *env);
00526 
00535         axis2_status_t (AXIS2_CALL *
00536                 set_input_msg)(
00537                     axis2_op_t *op,
00538                     const axis2_env_t *env,
00539                     struct axis2_wsdl_msg_ref *input_msg);
00540 
00548         axis2_linked_list_t *(AXIS2_CALL *
00549                 get_all_out_faults)(
00550                     const axis2_op_t *op,
00551                     const axis2_env_t *env);
00552 
00561         axis2_status_t (AXIS2_CALL *
00562                 set_out_faults)(
00563                     axis2_op_t *op,
00564                     const axis2_env_t *env,
00565                     axis2_linked_list_t *out_faults);
00566 
00574         struct axis2_wsdl_msg_ref *(AXIS2_CALL *
00575                 get_output_msg)(
00576                     const axis2_op_t *op,
00577                     const axis2_env_t *env);
00578 
00587         axis2_status_t (AXIS2_CALL *
00588                 set_output_msg)(
00589                     axis2_op_t *op,
00590                     const axis2_env_t *env,
00591                     struct axis2_wsdl_msg_ref *output_msg);
00592 
00599         const axis2_char_t *(AXIS2_CALL *
00600                 get_target_namespace)(
00601                     const axis2_op_t *op,
00602                     const axis2_env_t *env);
00603 
00612         axis2_status_t (AXIS2_CALL *
00613                 add_in_fault)(
00614                     axis2_op_t *op,
00615                     const axis2_env_t *env,
00616                     struct axis2_wsdl_fault_ref *in_fault);
00617 
00626         axis2_status_t (AXIS2_CALL *
00627                 add_out_fault)(
00628                     axis2_op_t *op,
00629                     const axis2_env_t *env,
00630                     struct axis2_wsdl_fault_ref *out_fault);
00631 
00640         axis2_status_t (AXIS2_CALL *
00641                 add_feature)(
00642                     axis2_op_t *op,
00643                     const axis2_env_t *env,
00644                     struct axis2_wsdl_feature *feature);
00645 
00652         axis2_linked_list_t *(AXIS2_CALL *
00653                 get_all_features)(
00654                     const axis2_op_t *op,
00655                     const axis2_env_t *env);
00656 
00665         axis2_status_t (AXIS2_CALL *
00666                 add_property)(
00667                     axis2_op_t *op,
00668                     const axis2_env_t *env,
00669                     struct axis2_wsdl_property *wsdl_property);
00670 
00678         axis2_linked_list_t *(AXIS2_CALL *
00679                 get_all_properties)(
00680                     const axis2_op_t *op,
00681                     const axis2_env_t *env);
00682 
00691         axis2_status_t (AXIS2_CALL *
00692                 set_wsdl_op)(
00693                     axis2_op_t *op,
00694                     const axis2_env_t *env,
00695                     struct axis2_wsdl_op *wsdl_op);
00696 
00708         struct axis2_op_ctx *(AXIS2_CALL *
00709                 find_op_ctx)(
00710                     axis2_op_t *op,
00711                     const axis2_env_t *env,
00712                     struct axis2_msg_ctx *msg_ctx,
00713                     struct axis2_svc_ctx *svc_ctx);
00714 
00726         struct axis2_op_ctx *(AXIS2_CALL *
00727                 find_existing_op_ctx)(
00728                     axis2_op_t *op,
00729                     const axis2_env_t *env,
00730                     struct axis2_msg_ctx *msg_ctx);
00731 
00743         axis2_status_t (AXIS2_CALL *
00744                 register_op_ctx)(
00745                     axis2_op_t *op,
00746                     const axis2_env_t *env,
00747                     struct axis2_msg_ctx *msg_ctx,
00748                     struct axis2_op_ctx *op_ctx);
00749 
00757         struct axis2_msg *(AXIS2_CALL *
00758                 get_msg)(
00759                     const axis2_op_t *op,
00760                     const axis2_env_t *env,
00761                     const axis2_char_t *label);
00762 
00771         axis2_status_t (AXIS2_CALL *
00772                 add_msg)(
00773                     axis2_op_t *op,
00774                     const axis2_env_t *env,
00775                     const axis2_char_t *label,
00776                     const struct axis2_msg *msg);
00777 
00784         axis2_bool_t (AXIS2_CALL *
00785         is_from_module)(
00786             const axis2_op_t *op,
00787             const axis2_env_t *env);
00788     };
00789 
00793      struct axis2_op
00794     {
00796         axis2_wsdl_op_t base;
00798         axis2_op_ops_t *ops;
00800         struct axis2_param_container *param_container;
00801     };
00802 
00808     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00809     axis2_op_create(
00810         const axis2_env_t *env);
00811 
00817     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00818     axis2_op_create_from_module(
00819         const axis2_env_t *env);
00820 
00827     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00828     axis2_op_create_with_qname(
00829         const axis2_env_t *env,
00830         const axis2_qname_t *name);
00831 
00838     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00839     axis2_op_create_with_wsdl_op(
00840         const axis2_env_t *env,
00841         struct axis2_wsdl_op *wsdl_op);
00842 
00850     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00851     axis2_op_free_void_arg(
00852         void *op,
00853         const axis2_env_t *env);
00854 
00857 #define AXIS2_OP_FREE(op, env) \
00858         ((op)->ops->free (op, env))
00859 
00862 #define AXIS2_OP_ADD_PARAM(op, env, param) \
00863       ((op)->ops->add_param (op, env, param))
00864 
00867 #define AXIS2_OP_GET_PARAM(op, env, key) \
00868       ((op)->ops->get_param (op, env, key))
00869 
00872 #define AXIS2_OP_GET_ALL_PARAMS(op, env) \
00873       ((op)->ops->get_all_params (op, env))
00874 
00877 #define AXIS2_OP_IS_PARAM_LOCKED(op, env, param_name) \
00878         ((op)->ops->is_param_locked(op, env, param_name))
00879 
00882 #define AXIS2_OP_SET_PARENT(op, env, service_desc) \
00883         ((op)->ops->set_parent (op, env, service_desc))
00884 
00887 #define AXIS2_OP_GET_PARENT(op, env) \
00888       ((op)->ops->get_parent (op, env))
00889 
00892 #define AXIS2_OP_SET_MSG_RECV(op, env, msg_recv) \
00893         ((op)->ops->set_msg_recv (op, env, msg_recv))
00894 
00897 #define AXIS2_OP_GET_MSG_RECV(op, env) \
00898         ((op)->ops->get_msg_recv (op, env))
00899 
00902 #define AXIS2_OP_SET_QNAME(op, env, qname) \
00903         ((op)->ops->set_qname (op, env, qname))
00904 
00907 #define AXIS2_OP_GET_QNAME(op, env) \
00908         (((axis2_op_t *) op)->ops->get_qname (op, env))
00909 
00912 #define AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op , env, \
00913         msg_exchange_pattern) \
00914         ((op)->ops->set_msg_exchange_pattern (op, env, \
00915         msg_exchange_pattern))
00916 
00919 #define AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env) \
00920         ((op)->ops->get_msg_exchange_pattern (op, env))
00921 
00924 #define AXIS2_OP_GET_STYLE(op, env) \
00925         ((op)->ops->get_style (op, env))
00926 
00929 #define AXIS2_OP_SET_STYLE(op, env, style) \
00930         ((op)->ops->set_style (op, env, style))
00931 
00934 #define AXIS2_OP_ENGAGE_MODULE(op, env, moduleref, conf) \
00935         ((op)->ops->engage_module (op, env, moduleref, conf))
00936 
00939 #define AXIS2_OP_ADD_TO_ENGAGED_MODULE_LIST(op, env, module_name) \
00940         ((op)->ops->add_to_engaged_module_list (op, env, module_name))
00941 
00944 #define AXIS2_OP_GET_ALL_MODULES(op, env) \
00945         ((op)->ops->get_all_modules (op, env))
00946 
00949 #define AXIS2_OP_GET_AXIS_SPECIFIC_MEP_CONST(op, env) \
00950         ((op)->ops->get_axis_specific_mep_const (op, env))
00951 
00954 #define AXIS2_OP_GET_FAULT_IN_FLOW(op, env) \
00955         ((op)->ops->get_fault_in_flow (op, env))
00956 
00959 #define AXIS2_OP_GET_FAULT_OUT_FLOW(op, env) \
00960         ((op)->ops->get_fault_out_flow (op, env))
00961 
00964 #define AXIS2_OP_GET_OUT_FLOW(op, env) \
00965         ((op)->ops->get_out_flow (op, env))
00966 
00969 #define AXIS2_OP_GET_IN_FLOW(op, env) \
00970         ((op)->ops->get_in_flow (op, env))
00971 
00974 #define AXIS2_OP_SET_FAULT_IN_FLOW(op, env, list) \
00975         ((op)->ops->set_fault_in_flow (op, env, list))
00976 
00979 #define AXIS2_OP_SET_FAULT_OUT_FLOW(op, env, list) \
00980         ((op)->ops->set_fault_out_flow (op, env, list))
00981 
00984 #define AXIS2_OP_SET_OUT_FLOW(op, env, list) \
00985         ((op)->ops->set_out_flow (op, env, list))
00986 
00989 #define AXIS2_OP_SET_IN_FLOW(op, env, list) \
00990         ((op)->ops->set_in_flow (op, env, list))
00991 
00994 #define AXIS2_OP_ADD_MODULE_QNAME(op, env, module_name) \
00995         ((op)->ops->add_module_qname (op, env, module_name))
00996 
00999 #define AXIS2_OP_GET_ALL_MODULE_QNAMES(op, env) \
01000         ((op)->ops->get_all_module_qnames (op, env))
01001 
01004 #define AXIS2_OP_GET_ALL_IN_FAULTS(op, env) \
01005         ((op)->ops->get_all_in_faults (op, env))
01006 
01009 #define AXIS2_OP_SET_IN_FAULTS(op, env) \
01010         ((op)->ops->set_in_faults (op, env, in_faults))
01011 
01014 #define AXIS2_OP_GET_INPUT_MSG(op, env) \
01015         ((op)->ops->get_input_msg (op, env))
01016 
01019 #define AXIS2_OP_SET_INPUT_MSG(op, env) \
01020         ((op)->ops->set_input_msg (op, env, input_msg))
01021 
01024 #define AXIS2_OP_GET_ALL_OUT_FAULTS(op, env) \
01025         ((op)->ops->get_all_out_faults (op, env))
01026 
01029 #define AXIS2_OP_SET_OUT_FAULTS(op, env) \
01030         ((op)->ops->set_out_faults (op, env, out_faults))
01031 
01034 #define AXIS2_OP_GET_OUTPUT_MSG(op, env) \
01035         ((op)->ops->get_output_msg (op, env))
01036 
01039 #define AXIS2_OP_SET_OUTPUT_MSG(op, env) \
01040         ((op)->ops->set_output_msg (op, env, output_msg))
01041 
01044 #define AXIS2_OP_GET_TARGET_NAMESPACE(op, env) \
01045         ((op)->ops->get_target_namespace (op, env))
01046 
01049 #define AXIS2_OP_ADD_IN_FAULT(op, env, in_fault) \
01050         ((op)->ops->add_in_fault (op, env, in_fault))
01051 
01054 #define AXIS2_OP_ADD_OUT_FAULT(op, env, out_fault) \
01055         ((op)->ops->add_out_fault (op, env, out_fault))
01056 
01059 #define AXIS2_OP_ADD_FEATURE(op, env, feature) \
01060         ((op)->ops->add_feature (op, env, feature))
01061 
01064 #define AXIS2_OP_GET_ALL_FEATURES(op, env) \
01065         ((op)->ops->get_all_features(op, env))
01066 
01069 #define AXIS2_OP_ADD_PROPERTY(op, env, wsdl_property) \
01070         ((op)->ops->add_property (op, env, wsdl_property))
01071 
01074 #define AXIS2_OP_GET_ALL_PROPERTIES(op, env) \
01075         ((op)->ops->get_all_properties (op, env))
01076 
01079 #define AXIS2_OP_SET_WSDL_OP(op, env, wsdl_op) \
01080         ((op)->ops->set_wsdl_op (op, env, wsdl_op))
01081 
01082 
01085 #define AXIS2_OP_FIND_OP_CTX(op, env, msg_ctx, svc_ctx) \
01086         ((op)->ops->find_op_ctx (op, env, msg_ctx, svc_ctx))
01087 
01090 #define AXIS2_OP_FIND_FOR_EXISTING_OP_CTX(op, env, wsdl_op) \
01091         ((op)->ops->find_existing_op_ctx (op, env, wsdl_op))
01092 
01095 #define AXIS2_OP_REGISTER_OP_CTX(op, env, msg_ctx, wsdl_op) \
01096         ((op)->ops->register_op_ctx (op, env, msg_ctx, wsdl_op))
01097 
01100 #define AXIS2_OP_GET_MSG(op, env, label) \
01101         ((op)->ops->get_msg(op, env, label))
01102 
01105 #define AXIS2_OP_ADD_MSG(op, env, label, msg) \
01106         ((op)->ops->add_msg(op, env, label, msg))
01107 
01110 #define AXIS2_OP_IS_FROM_MODULE(op, env) \
01111         ((op)->ops->is_from_module(op, env))
01112 
01114 #ifdef __cplusplus
01115 }
01116 #endif
01117 #endif  /* AXIS2_OP_H */

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