Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

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 
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 /************************** Start of function macros **************************/
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 /************************** End of function macros ****************************/
00608 
00610 #ifdef __cplusplus
00611 }
00612 #endif
00613 #endif  /* AXIS2_OP_H */

Generated on Fri Jun 16 18:02:31 2006 for Axis2/C by  doxygen 1.4.2