axis2_op.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_OP_H
00019 #define AXIS2_OP_H
00020 
00043 #include <axis2_param_container.h>
00044 #include <axis2_wsdl_op.h>
00045 #include <axis2_svc.h>
00046 #include <axis2_msg_recv.h>
00047 #include <axis2_array_list.h>
00048 #include <axis2_module_desc.h>
00049 #include <axis2_wsdl_msg_ref.h>
00050 #include <axis2_description.h>
00051 #include <axis2_phase_meta.h>
00052 #include <axis2_relates_to.h>
00053 #include <axis2_msg_ctx.h>
00054 #include <axis2_op_ctx.h>
00055 #include <axis2_svc_ctx.h>
00056 
00057 #ifdef __cplusplus
00058 extern "C"
00059 {
00060 #endif
00061 
00063     typedef struct axis2_op_ops axis2_op_ops_t;
00065     typedef struct axis2_op axis2_op_t;
00066 
00067     struct axis2_wsdl_op;
00068     struct axis2_svc;
00069     struct axis2_msg_recv;
00070     struct axis2_param_container;
00071     struct axis2_module_desc;
00072     struct axis2_op;
00073     struct axis2_wsdl_feature;
00074     struct axis2_wsdl_property;
00075     struct axis2_wsdl_fault_ref;
00076     struct axis2_relates_to;
00077     struct axis2_op_ctx;
00078     struct axis2_svc_ctx;
00079     struct axis2_msg_ctx;
00080     struct axis2_msg;
00081     struct axis2_conf;
00082 
00084 #define AXIS2_SOAP_ACTION "soapAction"
00085 
00090      struct axis2_op_ops
00091     {
00098         axis2_status_t (AXIS2_CALL *
00099                 free)(
00100                     axis2_op_t *op,
00101                     const axis2_env_t *env);
00102 
00109         axis2_status_t (AXIS2_CALL *
00110                 free_void_arg)(
00111                     void *op,
00112                     const axis2_env_t *env);
00113 
00114 
00123         axis2_status_t (AXIS2_CALL *
00124                 add_param)(
00125                     axis2_op_t *op,
00126                     const axis2_env_t *env,
00127                     axis2_param_t *param);
00128 
00137         axis2_param_t *(AXIS2_CALL *
00138                 get_param)(
00139                     const axis2_op_t *op,
00140                     const axis2_env_t *env,
00141                     const axis2_char_t *name);
00142 
00150         axis2_array_list_t *(AXIS2_CALL *
00151                 get_all_params)(
00152                     const axis2_op_t *op,
00153                     const axis2_env_t *env);
00154 
00162         axis2_bool_t (AXIS2_CALL *
00163                 is_param_locked)(
00164                     axis2_op_t *op,
00165                     const axis2_env_t *env,
00166                     const axis2_char_t *param_name);
00167 
00176         axis2_status_t (AXIS2_CALL *
00177                 set_parent)(
00178                     axis2_op_t *op,
00179                     const axis2_env_t *env,
00180                     struct axis2_svc *svc);
00181 
00189         struct axis2_svc *(AXIS2_CALL *
00190                 get_parent)(
00191                     const axis2_op_t *op,
00192                     const axis2_env_t *env);
00193 
00203         axis2_status_t (AXIS2_CALL *
00204                 set_qname)(
00205                     axis2_op_t *op,
00206                     const axis2_env_t *env,
00207                     const axis2_qname_t *qname);
00208 
00215         const axis2_qname_t *(AXIS2_CALL *
00216                 get_qname)(
00217                     void *op,
00218                     const axis2_env_t *env);
00219 
00227         axis2_status_t (AXIS2_CALL *
00228                 set_msg_exchange_pattern)(
00229                     axis2_op_t *op,
00230                     const axis2_env_t *env,
00231                     const axis2_char_t *pattern);
00232 
00239         const axis2_char_t *(AXIS2_CALL *
00240                 get_msg_exchange_pattern)(
00241                     const axis2_op_t *op,
00242                     const axis2_env_t *env);
00243 
00253         axis2_status_t (AXIS2_CALL *
00254                 set_msg_recv)(
00255                     axis2_op_t *op,
00256                     const axis2_env_t *env,
00257                     struct axis2_msg_recv *msg_recv);
00258 
00267         struct axis2_msg_recv *(AXIS2_CALL *
00268                 get_msg_recv)(
00269                     const axis2_op_t *op,
00270                     const axis2_env_t *env);
00271 
00279         const axis2_char_t *(AXIS2_CALL *
00280                 get_style)(
00281                     const axis2_op_t *op,
00282                     const axis2_env_t *env);
00283 
00292         axis2_status_t (AXIS2_CALL *
00293                 set_style)(
00294                     axis2_op_t *op,
00295                     const axis2_env_t *env,
00296                     const axis2_char_t *style);
00297 
00308         axis2_status_t (AXIS2_CALL *
00309                 engage_module)(
00310                     axis2_op_t *op,
00311                     const axis2_env_t *env,
00312                     struct axis2_module_desc *module_desc,
00313                     struct axis2_conf *conf);
00314 
00323         axis2_status_t (AXIS2_CALL *
00324                 add_to_engaged_module_list)(
00325                     axis2_op_t *op,
00326                     const axis2_env_t *env,
00327                     struct axis2_module_desc *module_dec);
00328 
00335         axis2_array_list_t *(AXIS2_CALL *
00336                 get_all_modules)(
00337                     const axis2_op_t *op,
00338                     const axis2_env_t *env);
00339 
00347         int (AXIS2_CALL *
00348                 get_axis_specific_mep_const)(
00349                     const axis2_op_t *op,
00350                     const axis2_env_t *env);
00351 
00360         axis2_array_list_t *(AXIS2_CALL *
00361                 get_fault_in_flow)(
00362                     const axis2_op_t *op,
00363                     const axis2_env_t *env);
00364 
00365 
00374         axis2_array_list_t *(AXIS2_CALL *
00375                 get_fault_out_flow)(
00376                     const axis2_op_t *op,
00377                     const axis2_env_t *env);
00378 
00387         axis2_array_list_t *(AXIS2_CALL *
00388                 get_out_flow)(
00389                     const axis2_op_t *op,
00390                     const axis2_env_t *env);
00391 
00400         axis2_array_list_t *(AXIS2_CALL *
00401                 get_in_flow)(
00402                     const axis2_op_t *op,
00403                     const axis2_env_t *env);
00404 
00414         axis2_status_t (AXIS2_CALL *
00415                 set_fault_in_flow)(
00416                     axis2_op_t *op,
00417                     const axis2_env_t *env,
00418                     axis2_array_list_t *list);
00419 
00429         axis2_status_t (AXIS2_CALL *
00430                 set_fault_out_flow)(
00431                     axis2_op_t *op,
00432                     const axis2_env_t *env,
00433                     axis2_array_list_t *list);
00434 
00444         axis2_status_t (AXIS2_CALL *
00445                 set_out_flow)(
00446                     axis2_op_t *op,
00447                     const axis2_env_t *env,
00448                     axis2_array_list_t *list);
00458         axis2_status_t (AXIS2_CALL *
00459                 set_in_flow)(
00460                     axis2_op_t *op,
00461                     const axis2_env_t *env,
00462                     axis2_array_list_t *list);
00463 
00472         axis2_status_t (AXIS2_CALL *
00473                 add_module_qname)(
00474                     axis2_op_t *op,
00475                     const axis2_env_t *env,
00476                     const axis2_qname_t *module_qname);
00477 
00485         axis2_array_list_t *(AXIS2_CALL *
00486                 get_all_module_qnames)(
00487                     const axis2_op_t *op,
00488                     const axis2_env_t *env);
00489 
00497         axis2_linked_list_t *(AXIS2_CALL *
00498                 get_all_in_faults)(
00499                     const axis2_op_t *op,
00500                     const axis2_env_t *env);
00501 
00510         axis2_status_t (AXIS2_CALL *
00511                 set_in_faults)(
00512                     axis2_op_t *op,
00513                     const axis2_env_t *env,
00514                     axis2_linked_list_t *in_faults);
00515 
00523         struct axis2_wsdl_msg_ref *(AXIS2_CALL *
00524                 get_input_msg)(
00525                     const axis2_op_t *op,
00526                     const axis2_env_t *env);
00527 
00536         axis2_status_t (AXIS2_CALL *
00537                 set_input_msg)(
00538                     axis2_op_t *op,
00539                     const axis2_env_t *env,
00540                     struct axis2_wsdl_msg_ref *input_msg);
00541 
00549         axis2_linked_list_t *(AXIS2_CALL *
00550                 get_all_out_faults)(
00551                     const axis2_op_t *op,
00552                     const axis2_env_t *env);
00553 
00562         axis2_status_t (AXIS2_CALL *
00563                 set_out_faults)(
00564                     axis2_op_t *op,
00565                     const axis2_env_t *env,
00566                     axis2_linked_list_t *out_faults);
00567 
00575         struct axis2_wsdl_msg_ref *(AXIS2_CALL *
00576                 get_output_msg)(
00577                     const axis2_op_t *op,
00578                     const axis2_env_t *env);
00579 
00588         axis2_status_t (AXIS2_CALL *
00589                 set_output_msg)(
00590                     axis2_op_t *op,
00591                     const axis2_env_t *env,
00592                     struct axis2_wsdl_msg_ref *output_msg);
00593 
00600         const axis2_char_t *(AXIS2_CALL *
00601                 get_target_namespace)(
00602                     const axis2_op_t *op,
00603                     const axis2_env_t *env);
00604 
00613         axis2_status_t (AXIS2_CALL *
00614                 add_in_fault)(
00615                     axis2_op_t *op,
00616                     const axis2_env_t *env,
00617                     struct axis2_wsdl_fault_ref *in_fault);
00618 
00627         axis2_status_t (AXIS2_CALL *
00628                 add_out_fault)(
00629                     axis2_op_t *op,
00630                     const axis2_env_t *env,
00631                     struct axis2_wsdl_fault_ref *out_fault);
00632 
00641         axis2_status_t (AXIS2_CALL *
00642                 add_feature)(
00643                     axis2_op_t *op,
00644                     const axis2_env_t *env,
00645                     struct axis2_wsdl_feature *feature);
00646 
00653         axis2_linked_list_t *(AXIS2_CALL *
00654                 get_all_features)(
00655                     const axis2_op_t *op,
00656                     const axis2_env_t *env);
00657 
00666         axis2_status_t (AXIS2_CALL *
00667                 add_property)(
00668                     axis2_op_t *op,
00669                     const axis2_env_t *env,
00670                     struct axis2_wsdl_property *wsdl_property);
00671 
00679         axis2_linked_list_t *(AXIS2_CALL *
00680                 get_all_properties)(
00681                     const axis2_op_t *op,
00682                     const axis2_env_t *env);
00683 
00692         axis2_status_t (AXIS2_CALL *
00693                 set_wsdl_op)(
00694                     axis2_op_t *op,
00695                     const axis2_env_t *env,
00696                     struct axis2_wsdl_op *wsdl_op);
00697 
00709         struct axis2_op_ctx *(AXIS2_CALL *
00710                 find_op_ctx)(
00711                     axis2_op_t *op,
00712                     const axis2_env_t *env,
00713                     struct axis2_msg_ctx *msg_ctx,
00714                     struct axis2_svc_ctx *svc_ctx);
00715 
00727         struct axis2_op_ctx *(AXIS2_CALL *
00728                 find_existing_op_ctx)(
00729                     axis2_op_t *op,
00730                     const axis2_env_t *env,
00731                     struct axis2_msg_ctx *msg_ctx);
00732 
00744         axis2_status_t (AXIS2_CALL *
00745                 register_op_ctx)(
00746                     axis2_op_t *op,
00747                     const axis2_env_t *env,
00748                     struct axis2_msg_ctx *msg_ctx,
00749                     struct axis2_op_ctx *op_ctx);
00750 
00758         struct axis2_msg *(AXIS2_CALL *
00759                 get_msg)(
00760                     const axis2_op_t *op,
00761                     const axis2_env_t *env,
00762                     const axis2_char_t *label);
00763 
00772         axis2_status_t (AXIS2_CALL *
00773                 add_msg)(
00774                     axis2_op_t *op,
00775                     const axis2_env_t *env,
00776                     const axis2_char_t *label,
00777                     const struct axis2_msg *msg);
00778 
00785         axis2_bool_t (AXIS2_CALL *
00786                 is_from_module)(
00787                     const axis2_op_t *op,
00788                     const axis2_env_t *env);
00789 
00797         axis2_status_t (AXIS2_CALL *
00798                 set_wsamapping_list)(
00799                     axis2_op_t *op,
00800                     const axis2_env_t *env,
00801                     axis2_array_list_t *mapping_list);
00802 
00809         axis2_array_list_t *(AXIS2_CALL *
00810                 get_wsamapping_list)(
00811                     axis2_op_t *op,
00812                     const axis2_env_t *env);
00813     };
00814 
00818      struct axis2_op
00819     {
00821         axis2_wsdl_op_t base;
00823         axis2_op_ops_t *ops;
00825         struct axis2_param_container *param_container;
00826     };
00827 
00833     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00834     axis2_op_create(
00835         const axis2_env_t *env);
00836 
00842     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00843     axis2_op_create_from_module(
00844         const axis2_env_t *env);
00845 
00852     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00853     axis2_op_create_with_qname(
00854         const axis2_env_t *env,
00855         const axis2_qname_t *name);
00856 
00863     AXIS2_EXTERN axis2_op_t *AXIS2_CALL
00864     axis2_op_create_with_wsdl_op(
00865         const axis2_env_t *env,
00866         struct axis2_wsdl_op *wsdl_op);
00867 
00875     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00876     axis2_op_free_void_arg(
00877         void *op,
00878         const axis2_env_t *env);
00879 
00882 #define AXIS2_OP_FREE(op, env) \
00883         ((op)->ops->free (op, env))
00884 
00887 #define AXIS2_OP_ADD_PARAM(op, env, param) \
00888       ((op)->ops->add_param (op, env, param))
00889 
00892 #define AXIS2_OP_GET_PARAM(op, env, key) \
00893       ((op)->ops->get_param (op, env, key))
00894 
00897 #define AXIS2_OP_GET_ALL_PARAMS(op, env) \
00898       ((op)->ops->get_all_params (op, env))
00899 
00902 #define AXIS2_OP_IS_PARAM_LOCKED(op, env, param_name) \
00903         ((op)->ops->is_param_locked(op, env, param_name))
00904 
00907 #define AXIS2_OP_SET_PARENT(op, env, service_desc) \
00908         ((op)->ops->set_parent (op, env, service_desc))
00909 
00912 #define AXIS2_OP_GET_PARENT(op, env) \
00913       ((op)->ops->get_parent (op, env))
00914 
00917 #define AXIS2_OP_SET_MSG_RECV(op, env, msg_recv) \
00918         ((op)->ops->set_msg_recv (op, env, msg_recv))
00919 
00922 #define AXIS2_OP_GET_MSG_RECV(op, env) \
00923         ((op)->ops->get_msg_recv (op, env))
00924 
00927 #define AXIS2_OP_SET_QNAME(op, env, qname) \
00928         ((op)->ops->set_qname (op, env, qname))
00929 
00932 #define AXIS2_OP_GET_QNAME(op, env) \
00933         (((axis2_op_t *) op)->ops->get_qname (op, env))
00934 
00937 #define AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op , env, \
00938         msg_exchange_pattern) \
00939         ((op)->ops->set_msg_exchange_pattern (op, env, \
00940         msg_exchange_pattern))
00941 
00944 #define AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env) \
00945         ((op)->ops->get_msg_exchange_pattern (op, env))
00946 
00949 #define AXIS2_OP_GET_STYLE(op, env) \
00950         ((op)->ops->get_style (op, env))
00951 
00954 #define AXIS2_OP_SET_STYLE(op, env, style) \
00955         ((op)->ops->set_style (op, env, style))
00956 
00959 #define AXIS2_OP_ENGAGE_MODULE(op, env, moduleref, conf) \
00960         ((op)->ops->engage_module (op, env, moduleref, conf))
00961 
00964 #define AXIS2_OP_ADD_TO_ENGAGED_MODULE_LIST(op, env, module_name) \
00965         ((op)->ops->add_to_engaged_module_list (op, env, module_name))
00966 
00969 #define AXIS2_OP_GET_ALL_MODULES(op, env) \
00970         ((op)->ops->get_all_modules (op, env))
00971 
00974 #define AXIS2_OP_GET_AXIS_SPECIFIC_MEP_CONST(op, env) \
00975         ((op)->ops->get_axis_specific_mep_const (op, env))
00976 
00979 #define AXIS2_OP_GET_FAULT_IN_FLOW(op, env) \
00980         ((op)->ops->get_fault_in_flow (op, env))
00981 
00984 #define AXIS2_OP_GET_FAULT_OUT_FLOW(op, env) \
00985         ((op)->ops->get_fault_out_flow (op, env))
00986 
00989 #define AXIS2_OP_GET_OUT_FLOW(op, env) \
00990         ((op)->ops->get_out_flow (op, env))
00991 
00994 #define AXIS2_OP_GET_IN_FLOW(op, env) \
00995         ((op)->ops->get_in_flow (op, env))
00996 
00999 #define AXIS2_OP_SET_FAULT_IN_FLOW(op, env, list) \
01000         ((op)->ops->set_fault_in_flow (op, env, list))
01001 
01004 #define AXIS2_OP_SET_FAULT_OUT_FLOW(op, env, list) \
01005         ((op)->ops->set_fault_out_flow (op, env, list))
01006 
01009 #define AXIS2_OP_SET_OUT_FLOW(op, env, list) \
01010         ((op)->ops->set_out_flow (op, env, list))
01011 
01014 #define AXIS2_OP_SET_IN_FLOW(op, env, list) \
01015         ((op)->ops->set_in_flow (op, env, list))
01016 
01019 #define AXIS2_OP_ADD_MODULE_QNAME(op, env, module_name) \
01020         ((op)->ops->add_module_qname (op, env, module_name))
01021 
01024 #define AXIS2_OP_GET_ALL_MODULE_QNAMES(op, env) \
01025         ((op)->ops->get_all_module_qnames (op, env))
01026 
01029 #define AXIS2_OP_GET_ALL_IN_FAULTS(op, env) \
01030         ((op)->ops->get_all_in_faults (op, env))
01031 
01034 #define AXIS2_OP_SET_IN_FAULTS(op, env) \
01035         ((op)->ops->set_in_faults (op, env, in_faults))
01036 
01039 #define AXIS2_OP_GET_INPUT_MSG(op, env) \
01040         ((op)->ops->get_input_msg (op, env))
01041 
01044 #define AXIS2_OP_SET_INPUT_MSG(op, env) \
01045         ((op)->ops->set_input_msg (op, env, input_msg))
01046 
01049 #define AXIS2_OP_GET_ALL_OUT_FAULTS(op, env) \
01050         ((op)->ops->get_all_out_faults (op, env))
01051 
01054 #define AXIS2_OP_SET_OUT_FAULTS(op, env) \
01055         ((op)->ops->set_out_faults (op, env, out_faults))
01056 
01059 #define AXIS2_OP_GET_OUTPUT_MSG(op, env) \
01060         ((op)->ops->get_output_msg (op, env))
01061 
01064 #define AXIS2_OP_SET_OUTPUT_MSG(op, env) \
01065         ((op)->ops->set_output_msg (op, env, output_msg))
01066 
01069 #define AXIS2_OP_GET_TARGET_NAMESPACE(op, env) \
01070         ((op)->ops->get_target_namespace (op, env))
01071 
01074 #define AXIS2_OP_ADD_IN_FAULT(op, env, in_fault) \
01075         ((op)->ops->add_in_fault (op, env, in_fault))
01076 
01079 #define AXIS2_OP_ADD_OUT_FAULT(op, env, out_fault) \
01080         ((op)->ops->add_out_fault (op, env, out_fault))
01081 
01084 #define AXIS2_OP_ADD_FEATURE(op, env, feature) \
01085         ((op)->ops->add_feature (op, env, feature))
01086 
01089 #define AXIS2_OP_GET_ALL_FEATURES(op, env) \
01090         ((op)->ops->get_all_features(op, env))
01091 
01094 #define AXIS2_OP_ADD_PROPERTY(op, env, wsdl_property) \
01095         ((op)->ops->add_property (op, env, wsdl_property))
01096 
01099 #define AXIS2_OP_GET_ALL_PROPERTIES(op, env) \
01100         ((op)->ops->get_all_properties (op, env))
01101 
01104 #define AXIS2_OP_SET_WSDL_OP(op, env, wsdl_op) \
01105         ((op)->ops->set_wsdl_op (op, env, wsdl_op))
01106 
01107 
01110 #define AXIS2_OP_FIND_OP_CTX(op, env, msg_ctx, svc_ctx) \
01111         ((op)->ops->find_op_ctx (op, env, msg_ctx, svc_ctx))
01112 
01115 #define AXIS2_OP_FIND_FOR_EXISTING_OP_CTX(op, env, wsdl_op) \
01116         ((op)->ops->find_existing_op_ctx (op, env, wsdl_op))
01117 
01120 #define AXIS2_OP_REGISTER_OP_CTX(op, env, msg_ctx, wsdl_op) \
01121         ((op)->ops->register_op_ctx (op, env, msg_ctx, wsdl_op))
01122 
01125 #define AXIS2_OP_GET_MSG(op, env, label) \
01126         ((op)->ops->get_msg(op, env, label))
01127 
01130 #define AXIS2_OP_ADD_MSG(op, env, label, msg) \
01131         ((op)->ops->add_msg(op, env, label, msg))
01132 
01135 #define AXIS2_OP_IS_FROM_MODULE(op, env) \
01136         ((op)->ops->is_from_module(op, env))
01137 
01140 #define AXIS2_OP_SET_WSAMAPPING_LIST(op, env, mapping_list) \
01141         ((op)->ops->set_wsamapping_list(op, env, mapping_list))
01142 
01145 #define AXIS2_OP_GET_WSAMAPPING_LIST(op, env) \
01146         ((op)->ops->get_wsamapping_list(op, env))
01147 
01149 #ifdef __cplusplus
01150 }
01151 #endif
01152 #endif  /* AXIS2_OP_H */

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