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     AXIS2_DECLARE_DATA 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 
00778     };
00779 
00783     AXIS2_DECLARE_DATA struct axis2_op
00784     {
00786         axis2_wsdl_op_t base;
00788         axis2_op_ops_t *ops;
00790         struct axis2_param_container *param_container;
00791     };
00792 
00798     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00799     axis2_op_create(
00800         const axis2_env_t *env);
00801 
00808     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00809     axis2_op_create_with_qname(
00810         const axis2_env_t *env,
00811         const axis2_qname_t *name);
00812 
00819     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00820     axis2_op_create_with_wsdl_op(
00821         const axis2_env_t *env,
00822         struct axis2_wsdl_op *wsdl_op);
00823 
00831     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00832     axis2_op_free_void_arg(
00833         void *op,
00834         const axis2_env_t *env);
00835 
00838 #define AXIS2_OP_FREE(op, env) \
00839         ((op)->ops->free (op, env))
00840 
00843 #define AXIS2_OP_ADD_PARAM(op, env, param) \
00844       ((op)->ops->add_param (op, env, param))
00845 
00848 #define AXIS2_OP_GET_PARAM(op, env, key) \
00849       ((op)->ops->get_param (op, env, key))
00850 
00853 #define AXIS2_OP_GET_ALL_PARAMS(op, env) \
00854       ((op)->ops->get_all_params (op, env))
00855 
00858 #define AXIS2_OP_IS_PARAM_LOCKED(op, env, param_name) \
00859         ((op)->ops->is_param_locked(op, env, param_name))
00860 
00863 #define AXIS2_OP_SET_PARENT(op, env, service_desc) \
00864         ((op)->ops->set_parent (op, env, service_desc))
00865 
00868 #define AXIS2_OP_GET_PARENT(op, env) \
00869       ((op)->ops->get_parent (op, env))
00870 
00873 #define AXIS2_OP_SET_MSG_RECV(op, env, msg_recv) \
00874         ((op)->ops->set_msg_recv (op, env, msg_recv))
00875 
00878 #define AXIS2_OP_GET_MSG_RECV(op, env) \
00879         ((op)->ops->get_msg_recv (op, env))
00880 
00883 #define AXIS2_OP_SET_QNAME(op, env, qname) \
00884         ((op)->ops->set_qname (op, env, qname))
00885 
00888 #define AXIS2_OP_GET_QNAME(op, env) \
00889         (((axis2_op_t *) op)->ops->get_qname (op, env))
00890 
00893 #define AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op , env, \
00894         msg_exchange_pattern) \
00895         ((op)->ops->set_msg_exchange_pattern (op, env, \
00896         msg_exchange_pattern))
00897 
00900 #define AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env) \
00901         ((op)->ops->get_msg_exchange_pattern (op, env))
00902 
00905 #define AXIS2_OP_GET_STYLE(op, env) \
00906         ((op)->ops->get_style (op, env))
00907 
00910 #define AXIS2_OP_SET_STYLE(op, env, style) \
00911         ((op)->ops->set_style (op, env, style))
00912 
00915 #define AXIS2_OP_ENGAGE_MODULE(op, env, moduleref, conf) \
00916         ((op)->ops->engage_module (op, env, moduleref, conf))
00917 
00920 #define AXIS2_OP_ADD_TO_ENGAGED_MODULE_LIST(op, env, module_name) \
00921         ((op)->ops->add_to_engaged_module_list (op, env, module_name))
00922 
00925 #define AXIS2_OP_GET_ALL_MODULES(op, env) \
00926         ((op)->ops->get_all_modules (op, env))
00927 
00930 #define AXIS2_OP_GET_AXIS_SPECIFIC_MEP_CONST(op, env) \
00931         ((op)->ops->get_axis_specific_mep_const (op, env))
00932 
00935 #define AXIS2_OP_GET_FAULT_IN_FLOW(op, env) \
00936         ((op)->ops->get_fault_in_flow (op, env))
00937 
00940 #define AXIS2_OP_GET_FAULT_OUT_FLOW(op, env) \
00941         ((op)->ops->get_fault_out_flow (op, env))
00942 
00945 #define AXIS2_OP_GET_OUT_FLOW(op, env) \
00946         ((op)->ops->get_out_flow (op, env))
00947 
00950 #define AXIS2_OP_GET_IN_FLOW(op, env) \
00951         ((op)->ops->get_in_flow (op, env))
00952 
00955 #define AXIS2_OP_SET_FAULT_IN_FLOW(op, env, list) \
00956         ((op)->ops->set_fault_in_flow (op, env, list))
00957 
00960 #define AXIS2_OP_SET_FAULT_OUT_FLOW(op, env, list) \
00961         ((op)->ops->set_fault_out_flow (op, env, list))
00962 
00965 #define AXIS2_OP_SET_OUT_FLOW(op, env, list) \
00966         ((op)->ops->set_out_flow (op, env, list))
00967 
00970 #define AXIS2_OP_SET_IN_FLOW(op, env, list) \
00971         ((op)->ops->set_in_flow (op, env, list))
00972 
00975 #define AXIS2_OP_ADD_MODULE_QNAME(op, env, module_name) \
00976         ((op)->ops->add_module_qname (op, env, module_name))
00977 
00980 #define AXIS2_OP_GET_ALL_MODULE_QNAMES(op, env) \
00981         ((op)->ops->get_all_module_qnames (op, env))
00982 
00985 #define AXIS2_OP_GET_ALL_IN_FAULTS(op, env) \
00986         ((op)->ops->get_all_in_faults (op, env))
00987 
00990 #define AXIS2_OP_SET_IN_FAULTS(op, env) \
00991         ((op)->ops->set_in_faults (op, env, in_faults))
00992 
00995 #define AXIS2_OP_GET_INPUT_MSG(op, env) \
00996         ((op)->ops->get_input_msg (op, env))
00997 
01000 #define AXIS2_OP_SET_INPUT_MSG(op, env) \
01001         ((op)->ops->set_input_msg (op, env, input_msg))
01002 
01005 #define AXIS2_OP_GET_ALL_OUT_FAULTS(op, env) \
01006         ((op)->ops->get_all_out_faults (op, env))
01007 
01010 #define AXIS2_OP_SET_OUT_FAULTS(op, env) \
01011         ((op)->ops->set_out_faults (op, env, out_faults))
01012 
01015 #define AXIS2_OP_GET_OUTPUT_MSG(op, env) \
01016         ((op)->ops->get_output_msg (op, env))
01017 
01020 #define AXIS2_OP_SET_OUTPUT_MSG(op, env) \
01021         ((op)->ops->set_output_msg (op, env, output_msg))
01022 
01025 #define AXIS2_OP_GET_TARGET_NAMESPACE(op, env) \
01026         ((op)->ops->get_target_namespace (op, env))
01027 
01030 #define AXIS2_OP_ADD_IN_FAULT(op, env, in_fault) \
01031         ((op)->ops->add_in_fault (op, env, in_fault))
01032 
01035 #define AXIS2_OP_ADD_OUT_FAULT(op, env, out_fault) \
01036         ((op)->ops->add_out_fault (op, env, out_fault))
01037 
01040 #define AXIS2_OP_ADD_FEATURE(op, env, feature) \
01041         ((op)->ops->add_feature (op, env, feature))
01042 
01045 #define AXIS2_OP_GET_ALL_FEATURES(op, env) \
01046         ((op)->ops->get_all_features(op, env))
01047 
01050 #define AXIS2_OP_ADD_PROPERTY(op, env, wsdl_property) \
01051         ((op)->ops->add_property (op, env, wsdl_property))
01052 
01055 #define AXIS2_OP_GET_ALL_PROPERTIES(op, env) \
01056         ((op)->ops->get_all_properties (op, env))
01057 
01060 #define AXIS2_OP_SET_WSDL_OP(op, env, wsdl_op) \
01061         ((op)->ops->set_wsdl_op (op, env, wsdl_op))
01062 
01063 
01066 #define AXIS2_OP_FIND_OP_CTX(op, env, msg_ctx, svc_ctx) \
01067         ((op)->ops->find_op_ctx (op, env, msg_ctx, svc_ctx))
01068 
01071 #define AXIS2_OP_FIND_FOR_EXISTING_OP_CTX(op, env, wsdl_op) \
01072         ((op)->ops->find_existing_op_ctx (op, env, wsdl_op))
01073 
01076 #define AXIS2_OP_REGISTER_OP_CTX(op, env, msg_ctx, wsdl_op) \
01077         ((op)->ops->register_op_ctx (op, env, msg_ctx, wsdl_op))
01078 
01081 #define AXIS2_OP_GET_MSG(op, env, label) \
01082         ((op)->ops->get_msg(op, env, label))
01083 
01086 #define AXIS2_OP_ADD_MSG(op, env, label, msg) \
01087         ((op)->ops->add_msg(op, env, label, msg))
01088 
01090 #ifdef __cplusplus
01091 }
01092 #endif
01093 #endif  /* AXIS2_OP_H */

Generated on Thu Aug 31 17:32:36 2006 for Axis2/C by  doxygen 1.4.6