00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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