00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_OP_H
00018 #define AXIS2_OP_H
00019
00025 #include <axis2_param_container.h>
00026 #include <axis2_wsdl_op.h>
00027 #include <axis2_svc.h>
00028 #include <axis2_msg_recv.h>
00029 #include <axis2_array_list.h>
00030 #include <axis2_module_desc.h>
00031 #include <axis2_wsdl_msg_ref.h>
00032 #include <axis2_description.h>
00033 #include <axis2_phase_meta.h>
00034 #include <axis2_relates_to.h>
00035 #include <axis2_msg_ctx.h>
00036 #include <axis2_op_ctx.h>
00037 #include <axis2_svc_ctx.h>
00038 #include <axis2_conf_ctx.h>
00039
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044
00050 struct axis2_wsdl_op;
00051 struct axis2_svc;
00052 struct axis2_msg_recv;
00053 struct axis2_param_container;
00054 struct axis2_module_desc;
00055 struct axis2_op;
00056 struct axis2_wsdl_feature;
00057 struct axis2_wsdl_property;
00058 struct axis2_wsdl_fault_ref;
00059 struct axis2_relates_to;
00060 struct axis2_op_ctx;
00061 struct axis2_svc_ctx;
00062 struct axis2_msg_ctx;
00063 struct axis2_conf_ctx;
00064 struct axis2_msg;
00065 typedef struct axis2_op_ops axis2_op_ops_t;
00066 typedef struct axis2_op axis2_op_t;
00067
00072 AXIS2_DECLARE_DATA struct axis2_op_ops
00073 {
00078 axis2_status_t (AXIS2_CALL *
00079 free) (axis2_op_t *op,
00080 const axis2_env_t *env);
00081
00087 axis2_status_t (AXIS2_CALL *
00088 free_void_arg) (void *op,
00089 const axis2_env_t *env);
00090
00091
00097 axis2_status_t (AXIS2_CALL *
00098 add_param)(axis2_op_t *op,
00099 const axis2_env_t *env,
00100 axis2_param_t *param);
00101
00107 axis2_param_t *(AXIS2_CALL *
00108 get_param)(axis2_op_t *op,
00109 const axis2_env_t *env,
00110 const axis2_char_t *name);
00111
00112
00113 axis2_array_list_t *(AXIS2_CALL *
00114 get_params) (axis2_op_t *op,
00115 const axis2_env_t *env);
00116
00120 axis2_bool_t (AXIS2_CALL *
00121 is_param_locked) (axis2_op_t *op,
00122 const axis2_env_t *env,
00123 axis2_char_t *param_name);
00124
00125 axis2_status_t (AXIS2_CALL *
00126 set_parent) (axis2_op_t *op,
00127 const axis2_env_t *env,
00128 struct axis2_svc *service_desc);
00129
00130 struct axis2_svc *(AXIS2_CALL *
00131 get_parent) (axis2_op_t *op,
00132 const axis2_env_t *env);
00133
00134 axis2_status_t (AXIS2_CALL *
00135 set_qname) (axis2_op_t *op,
00136 const axis2_env_t *env,
00137 axis2_qname_t *qname);
00138
00139 axis2_qname_t *(AXIS2_CALL *
00140 get_qname) (void *op,
00141 const axis2_env_t *env);
00142
00143 axis2_status_t (AXIS2_CALL *
00144 set_msg_exchange_pattern) (axis2_op_t *op,
00145 const axis2_env_t *env,
00146 const axis2_char_t *pattern);
00147
00148 axis2_char_t *(AXIS2_CALL *
00149 get_msg_exchange_pattern) (axis2_op_t *op,
00150 const axis2_env_t *env);
00151
00152 axis2_status_t (AXIS2_CALL *
00153 set_msg_recv) (axis2_op_t *op,
00154 const axis2_env_t *env,
00155 struct axis2_msg_recv *msg_recv);
00156
00157 struct axis2_msg_recv *(AXIS2_CALL *
00158 get_msg_recv) (axis2_op_t *op,
00159 const axis2_env_t *env);
00160
00161 axis2_char_t *(AXIS2_CALL *
00162 get_style) (axis2_op_t *op,
00163 const axis2_env_t *env);
00164
00165 axis2_status_t (AXIS2_CALL *
00166 set_style) (axis2_op_t *op,
00167 const axis2_env_t *env,
00168 axis2_char_t *style);
00169
00176 axis2_status_t (AXIS2_CALL *
00177 engage_module) (axis2_op_t *op,
00178 const axis2_env_t *env,
00179 struct axis2_module_desc *moduleref);
00180
00181 axis2_status_t (AXIS2_CALL *
00182 add_to_engage_module_list) (axis2_op_t *op,
00183 const axis2_env_t *env,
00184 struct axis2_module_desc *module_name);
00185
00190 axis2_array_list_t *(AXIS2_CALL *
00191 get_modules) (axis2_op_t *op,
00192 const axis2_env_t *env);
00193
00200 int (AXIS2_CALL *
00201 get_axis_specific_mep_const) (axis2_op_t *op,
00202 const axis2_env_t *env);
00203
00204 axis2_array_list_t *(AXIS2_CALL *
00205 get_phases_in_fault_flow) (axis2_op_t *op,
00206 const axis2_env_t *env);
00207
00208
00209 axis2_array_list_t *(AXIS2_CALL *
00210 get_phases_out_fault_flow) (axis2_op_t *op,
00211 const axis2_env_t *env);
00212
00213
00214 axis2_array_list_t * (AXIS2_CALL *
00215 get_phases_outflow) (axis2_op_t *op,
00216 const axis2_env_t *env);
00217
00218
00219 axis2_array_list_t *(AXIS2_CALL *
00220 get_remaining_phases_inflow) (axis2_op_t *op,
00221 const axis2_env_t *env);
00222
00226 axis2_status_t (AXIS2_CALL *
00227 set_phases_in_fault_flow) (axis2_op_t *op,
00228 const axis2_env_t *env,
00229 axis2_array_list_t *list);
00230
00234 axis2_status_t (AXIS2_CALL *
00235 set_phases_out_fault_flow) (axis2_op_t *op,
00236 const axis2_env_t *env,
00237 axis2_array_list_t *list);
00238
00242 axis2_status_t (AXIS2_CALL *
00243 set_phases_outflow) (axis2_op_t *op,
00244 const axis2_env_t *env,
00245 axis2_array_list_t *list);
00246
00250 axis2_status_t (AXIS2_CALL *
00251 set_remaining_phases_inflow) (axis2_op_t *op,
00252 const axis2_env_t *env,
00253 axis2_array_list_t *list);
00254
00255 axis2_status_t (AXIS2_CALL *
00256 add_module) (axis2_op_t *op,
00257 const axis2_env_t *env,
00258 axis2_qname_t *module_name);
00259
00260 axis2_array_list_t *(AXIS2_CALL *
00261 get_module_refs) (axis2_op_t *op,
00262 const axis2_env_t *env);
00263
00264 axis2_linked_list_t *(AXIS2_CALL *
00265 get_in_faults) (axis2_op_t *op,
00266 const axis2_env_t *env);
00267
00268 axis2_status_t (AXIS2_CALL *
00269 set_in_faults) (axis2_op_t *op,
00270 const axis2_env_t *env,
00271 axis2_linked_list_t *in_faults);
00272
00273 struct axis2_wsdl_msg_ref *(AXIS2_CALL *
00274 get_input_msg) (axis2_op_t *op,
00275 const axis2_env_t *env);
00276
00277 axis2_status_t (AXIS2_CALL *
00278 set_input_msg) (axis2_op_t *op,
00279 const axis2_env_t *env,
00280 struct axis2_wsdl_msg_ref *input_msg);
00281
00282 axis2_linked_list_t *(AXIS2_CALL *
00283 get_out_faults) (axis2_op_t *op,
00284 const axis2_env_t *env);
00285
00286 axis2_status_t (AXIS2_CALL *
00287 set_out_faults) (axis2_op_t *op,
00288 const axis2_env_t *env,
00289 axis2_linked_list_t *out_faults);
00290
00291 struct axis2_wsdl_msg_ref *(AXIS2_CALL *
00292 get_output_msg) (axis2_op_t *op,
00293 const axis2_env_t *env);
00294
00295 axis2_status_t (AXIS2_CALL *
00296 set_output_msg) (axis2_op_t *op,
00297 const axis2_env_t *env,
00298 struct axis2_wsdl_msg_ref *output_msg);
00299
00300 axis2_bool_t (AXIS2_CALL *
00301 is_safe) (axis2_op_t *op,
00302 const axis2_env_t *env);
00303
00304 axis2_status_t (AXIS2_CALL *
00305 set_safety) (axis2_op_t *op,
00306 const axis2_env_t *env,
00307 axis2_bool_t safe);
00308
00309 axis2_char_t *(AXIS2_CALL *
00310 get_target_namespace) (axis2_op_t *op,
00311 const axis2_env_t *env);
00312
00313 axis2_status_t (AXIS2_CALL *
00314 add_in_fault) (axis2_op_t *op,
00315 const axis2_env_t *env,
00316 struct axis2_wsdl_fault_ref *in_fault);
00317
00318 axis2_status_t (AXIS2_CALL *
00319 add_out_fault) (axis2_op_t *op,
00320 const axis2_env_t *env,
00321 struct axis2_wsdl_fault_ref *out_fault);
00322
00323 axis2_status_t (AXIS2_CALL *
00324 add_feature) (axis2_op_t *op,
00325 const axis2_env_t *env,
00326 struct axis2_wsdl_feature *feature);
00327
00328 axis2_linked_list_t *(AXIS2_CALL *
00329 get_features) (axis2_op_t *op,
00330 const axis2_env_t *env);
00331
00332 axis2_status_t (AXIS2_CALL *
00333 add_property) (axis2_op_t *op,
00334 const axis2_env_t *env,
00335 struct axis2_wsdl_property *wsdl_property);
00336
00337 axis2_linked_list_t *(AXIS2_CALL *
00338 get_Properties) (axis2_op_t *op,
00339 const axis2_env_t *env);
00340
00341 axis2_status_t (AXIS2_CALL *
00342 set_wsdl_op) (axis2_op_t *op,
00343 const axis2_env_t *env,
00344 struct axis2_wsdl_op *wsdl_op);
00345
00367 struct axis2_op_ctx *(AXIS2_CALL *
00368 find_op_ctx) (axis2_op_t *op,
00369 const axis2_env_t *env,
00370 struct axis2_msg_ctx *msg_ctx,
00371 struct axis2_svc_ctx *svc_ctx);
00372
00379 struct axis2_op_ctx *(AXIS2_CALL *
00380 find_for_existing_op_ctx) (axis2_op_t *op,
00381 const axis2_env_t *env,
00382 struct axis2_msg_ctx *msg_ctx);
00383
00384 axis2_status_t (AXIS2_CALL *
00385 register_op_ctx) (axis2_op_t *op,
00386 const axis2_env_t *env,
00387 struct axis2_msg_ctx *msg_ctx,
00388 struct axis2_op_ctx *op_ctx);
00389
00390 struct axis2_msg *(AXIS2_CALL *
00391 get_msg)(
00392 const axis2_op_t *op,
00393 const axis2_env_t *env,
00394 const axis2_char_t *label);
00395
00396 axis2_status_t (AXIS2_CALL *
00397 add_msg)(
00398 const axis2_op_t *op,
00399 const axis2_env_t *env,
00400 const axis2_char_t *label,
00401 const struct axis2_msg *msg);
00402
00403 };
00404
00409 AXIS2_DECLARE_DATA struct axis2_op
00410 {
00411 axis2_wsdl_op_t base;
00412 axis2_op_ops_t *ops;
00413 struct axis2_param_container *param_container;
00414 };
00415
00420 AXIS2_EXTERN axis2_op_t * AXIS2_CALL
00421 axis2_op_create (const axis2_env_t *env);
00422
00428 AXIS2_EXTERN axis2_op_t * AXIS2_CALL
00429 axis2_op_create_with_qname (const axis2_env_t *env,
00430 axis2_qname_t *name);
00431
00437 AXIS2_EXTERN axis2_op_t * AXIS2_CALL
00438 axis2_op_create_with_wsdl_op (const axis2_env_t *env,
00439 struct axis2_wsdl_op *wsdl_op);
00440
00441 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00442 axis2_op_free_void_arg(void *op,
00443 const axis2_env_t *env);
00444
00445
00446
00447 #define AXIS2_OP_FREE(op, env) \
00448 ((op)->ops->free (op, env))
00449
00450 #define AXIS2_OP_ADD_PARAM(op, env, param) \
00451 ((op)->ops->add_param (op, env, param))
00452
00453 #define AXIS2_OP_GET_PARAM(op, env, key) \
00454 ((op)->ops->get_param (op, env, key))
00455
00456 #define AXIS2_OP_GET_PARAMS(op, env) \
00457 ((op)->ops->get_params (op, env))
00458
00459 #define AXIS2_OP_IS_PARAM_LOCKED(op, env, param_name) \
00460 ((op)->ops->is_param_locked(op, env, param_name))
00461
00462 #define AXIS2_OP_SET_PARENT(op, env, service_desc) \
00463 ((op)->ops->set_parent (op, env, service_desc))
00464
00465 #define AXIS2_OP_GET_PARENT(op, env) \
00466 ((op)->ops->get_parent (op, env))
00467
00468 #define AXIS2_OP_SET_MSG_RECEIVER(op, env, msg_recv) \
00469 ((op)->ops->set_msg_recv (op, env, msg_recv))
00470
00471 #define AXIS2_OP_GET_MSG_RECEIVER(op, env) \
00472 ((op)->ops->get_msg_recv (op, env))
00473
00474 #define AXIS2_OP_SET_QNAME(op, env, qname) \
00475 ((op)->ops->set_qname (op, env, qname))
00476
00477 #define AXIS2_OP_GET_QNAME(op, env) \
00478 (((axis2_op_t *) op)->ops->get_qname (op, env))
00479
00480 #define AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op , env, \
00481 msg_exchange_pattern) \
00482 ((op)->ops->set_msg_exchange_pattern (op, env, \
00483 msg_exchange_pattern))
00484
00485 #define AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env) \
00486 ((op)->ops->get_msg_exchange_pattern (op, env))
00487
00488 #define AXIS2_OP_GET_STYLE(op, env) \
00489 ((op)->ops->get_style (op, env))
00490
00491 #define AXIS2_OP_SET_STYLE(op, env, style) \
00492 ((op)->ops->set_style (op, env, style))
00493
00494 #define AXIS2_OP_ENGAGE_MODULE(op, env, moduleref) \
00495 ((op)->ops->engage_module (op, env, moduleref))
00496
00497 #define AXIS2_OP_ADD_TO_ENGAGE_MODULE_LIST(op, env, module_name) \
00498 ((op)->ops->add_to_engage_module_list (op, env, module_name))
00499
00500 #define AXIS2_OP_GET_MODULES(op, env) \
00501 ((op)->ops->get_modules (op, env))
00502
00503 #define AXIS2_OP_GET_AXIS_SPECIFIC_MEP_CONST(op, env) \
00504 ((op)->ops->get_axis_specific_mep_const (op, env))
00505
00506 #define AXIS2_OP_GET_PHASES_IN_FAULT_FLOW(op, env) \
00507 ((op)->ops->get_phases_in_fault_flow (op, env))
00508
00509 #define AXIS2_OP_GET_PHASES_OUT_FAULT_FLOW(op, env) \
00510 ((op)->ops->get_phases_out_fault_flow (op, env))
00511
00512 #define AXIS2_OP_GET_PHASES_OUTFLOW(op, env) \
00513 ((op)->ops->get_phases_outflow (op, env))
00514
00515 #define AXIS2_OP_GET_REMAINING_PHASES_INFLOW(op, env) \
00516 ((op)->ops->get_remaining_phases_inflow (op, env))
00517
00518 #define AXIS2_OP_SET_PHASES_IN_FAULT_FLOW(op, env, list) \
00519 ((op)->ops->set_phases_in_fault_flow (op, env, list))
00520
00521 #define AXIS2_OP_SET_PHASES_OUT_FAULT_FLOW(op, env, list) \
00522 ((op)->ops->set_phases_out_fault_flow (op, env, list))
00523
00524 #define AXIS2_OP_SET_PHASES_OUTFLOW(op, env, list) \
00525 ((op)->ops->set_phases_outflow (op, env, list))
00526
00527 #define AXIS2_OP_SET_REMAINING_PHASES_INFLOW(op, env, list) \
00528 ((op)->ops->set_remaining_phases_inflow (op, env, list))
00529
00530 #define AXIS2_OP_ADD_MODULE(op, env, module_name) \
00531 ((op)->ops->add_module (op, env, module_name))
00532
00533 #define AXIS2_OP_GET_MODULE_REFS(op, env) \
00534 ((op)->ops->get_module_refs (op, env))
00535
00536 #define AXIS2_OP_GET_IN_FAULTS(op, env) \
00537 ((op)->ops->get_in_faults (op, env))
00538
00539 #define AXIS2_OP_SET_IN_FAULTS(op, env) \
00540 ((op)->ops->set_in_faults (op, env, in_faults))
00541
00542 #define AXIS2_OP_GET_INPUT_MSG(op, env) \
00543 ((op)->ops->get_input_msg (op, env))
00544
00545 #define AXIS2_OP_SET_INPUT_MSG(op, env) \
00546 ((op)->ops->set_input_msg (op, env, input_msg))
00547
00548 #define AXIS2_OP_GET_OUT_FAULTS(op, env) \
00549 ((op)->ops->get_out_faults (op, env))
00550
00551 #define AXIS2_OP_SET_OUT_FAULTS(op, env) \
00552 ((op)->ops->set_out_faults (op, env, out_faults))
00553
00554 #define AXIS2_OP_GET_OUTPUT_MSG(op, env) \
00555 ((op)->ops->get_output_msg (op, env))
00556
00557 #define AXIS2_OP_SET_OUTPUT_MSG(op, env) \
00558 ((op)->ops->set_output_msg (op, env, output_msg))
00559
00560 #define AXIS2_OP_IS_SAFE(op, env) \
00561 ((op)->ops->is_safe (op, env))
00562
00563 #define AXIS2_OP_SET_SAFETY(op, env, safe) \
00564 ((op)->ops->set_safety (op, env, safe))
00565
00566 #define AXIS2_OP_GET_TARGET_NAMESPACE(op, env) \
00567 ((op)->ops->get_target_namespace (op, env))
00568
00569 #define AXIS2_OP_ADD_IN_FAULT(op, env, in_fault) \
00570 ((op)->ops->add_in_fault (op, env, in_fault))
00571
00572 #define AXIS2_OP_ADD_OUT_FAULT(op, env, out_fault) \
00573 ((op)->ops->add_out_fault (op, env, out_fault))
00574
00575 #define AXIS2_OP_ADD_FEATURE(op, env, feature) \
00576 ((op)->ops->add_feature (op, env, feature))
00577
00578 #define AXIS2_OP_GET_FEATURES(op, env) \
00579 ((op)->ops->get_features(op, env))
00580
00581 #define AXIS2_OP_ADD_PROPERTY(op, env, wsdl_property) \
00582 ((op)->ops->add_property (op, env, wsdl_property))
00583
00584 #define AXIS2_OP_GET_PROPERTIES(op, env) \
00585 ((op)->ops->get_properties (op, env, properties))
00586
00587 #define AXIS2_OP_SET_WSDL_OP(op, env, wsdl_op) \
00588 ((op)->ops->set_wsdl_op (op, env, wsdl_op))
00589
00590
00591 #define AXIS2_OP_FIND_OP_CTX(op, env, msg_ctx, svc_ctx) \
00592 ((op)->ops->find_op_ctx (op, env, msg_ctx, svc_ctx))
00593
00594 #define AXIS2_OP_FIND_FOR_EXISTING_OP_CTX(op, env, wsdl_op) \
00595 ((op)->ops->find_for_existing_op_ctx (op, env, wsdl_op))
00596
00597 #define AXIS2_OP_REGISTER_OP_CTX(op, env, msg_ctx, wsdl_op) \
00598 ((op)->ops->register_op_ctx (op, env, msg_ctx, wsdl_op))
00599
00600 #define AXIS2_OP_GET_MSG(op, env, label) \
00601 ((op)->ops->get_msg(op, env, label))
00602
00603 #define AXIS2_OP_ADD_MSG(op, env, label, msg) \
00604 ((op)->ops->add_msg(op, env, label, msg))
00605
00606
00607
00608
00610 #ifdef __cplusplus
00611 }
00612 #endif
00613 #endif