include/sandesha2_utils.h (220 lines of code) (raw):

/* * Copyright 2004,2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef SANDESHA2_UTILS_H #define SANDESHA2_UTILS_H #include <axiom_soap_envelope.h> /** * @file sandesha2_utils.h * @brief */ #include <sandesha2_storage_mgr.h> #include <sandesha2_seq_property_mgr.h> #include <axis2_conf_ctx.h> #include <axis2_conf.h> #include <axiom_soap_envelope.h> #include <axutil_qname.h> #include <axutil_array_list.h> #include <axis2_op.h> #include <sandesha2_property_bean.h> #include <sandesha2_msg_ctx.h> #include <axis2_policy_include.h> #include <axis2_svc.h> #include <axis2_rm_assertion.h> #ifdef __cplusplus extern "C" { #endif /** @defgroup sandesha2_utils * @ingroup sandesha2_util * @{ */ /* Array list types */ #define SANDESHA2_ARRAY_LIST_STRING 0 #define SANDESHA2_ARRAY_LIST_LONG 1 AXIS2_EXTERN long AXIS2_CALL sandesha2_utils_get_current_time_in_millis( const axutil_env_t *env); AXIS2_EXTERN axis2_status_t AXIS2_CALL sandesha2_utils_remove_soap_body_part( const axutil_env_t *env, axiom_soap_envelope_t *envelope, axutil_qname_t *qname); AXIS2_EXTERN axis2_char_t* AXIS2_CALL sandesha2_utils_get_rm_version( const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx); AXIS2_EXTERN sandesha2_storage_mgr_t* AXIS2_CALL sandesha2_utils_get_storage_mgr( const axutil_env_t *env, axis2_char_t *dbname); AXIS2_EXTERN axis2_char_t* AXIS2_CALL sandesha2_utils_get_seq_property( const axutil_env_t *env, const axis2_char_t *id, const axis2_char_t *name, sandesha2_seq_property_mgr_t *seq_prop_mgr); AXIS2_EXTERN sandesha2_property_bean_t* AXIS2_CALL sandesha2_utils_get_property_bean( const axutil_env_t *env, axis2_svc_t *svc /*axis2_conf_t *conf*/); AXIS2_EXTERN sandesha2_property_bean_t* AXIS2_CALL sandesha2_utils_get_property_bean_from_op( const axutil_env_t *env, axis2_op_t *op); AXIS2_EXTERN axutil_array_list_t* AXIS2_CALL sandesha2_utils_get_array_list_from_string( const axutil_env_t *env, axis2_char_t *string); AXIS2_EXTERN axis2_bool_t AXIS2_CALL sandesha2_utils_array_list_contains( const axutil_env_t *env, axutil_array_list_t *list, axis2_char_t *string); AXIS2_EXTERN axis2_char_t* AXIS2_CALL sandesha2_utils_array_list_to_string( const axutil_env_t *env, axutil_array_list_t *list, int type); /*AXIS2_EXTERN axis2_status_t AXIS2_CALL sandesha2_utils_start_invoker_for_seq( const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx, axis2_char_t *seq_id);*/ AXIS2_EXTERN axis2_status_t AXIS2_CALL sandesha2_utils_start_sender_for_seq( const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx, axis2_char_t *seq_id, const axis2_bool_t persistent); AXIS2_EXTERN axis2_char_t* AXIS2_CALL sandesha2_utils_get_internal_sequence_id( const axutil_env_t *env, axis2_char_t *rmd_seq_id); AXIS2_EXTERN axis2_transport_out_desc_t* AXIS2_CALL sandesha2_utils_get_transport_out( const axutil_env_t *env); AXIS2_EXTERN sandesha2_storage_mgr_t* AXIS2_CALL sandesha2_utils_get_inmemory_storage_mgr( const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx); AXIS2_EXTERN sandesha2_storage_mgr_t* AXIS2_CALL sandesha2_utils_get_permanent_storage_mgr( const axutil_env_t *env, axis2_char_t *dbname); AXIS2_EXTERN axis2_char_t* AXIS2_CALL sandesha2_utils_get_rmd_seq_id( const axutil_env_t *env, axis2_char_t *internal_sequence_id); /** * Caller must free the returned string. * @param to * @param seq_key * * @return rms_internal_seq_id */ AXIS2_EXTERN axis2_char_t* AXIS2_CALL sandesha2_utils_get_client_internal_sequence_id( const axutil_env_t *env, axis2_char_t *to, axis2_char_t *seq_key); AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL sandesha2_utils_create_new_related_msg_ctx( const axutil_env_t *env, sandesha2_msg_ctx_t *ref_rm_msg); AXIS2_EXTERN int AXIS2_CALL sandesha2_utils_get_soap_version( const axutil_env_t *env, axiom_soap_envelope_t *envelope); AXIS2_EXTERN axis2_char_t* AXIS2_CALL sandesha2_utils_trim_string( const axutil_env_t *env, axis2_char_t *orig_string); AXIS2_EXTERN axis2_bool_t AXIS2_CALL sandesha2_utils_is_retrievable_on_faults( const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx); AXIS2_EXTERN axis2_bool_t AXIS2_CALL sandesha2_utils_is_rm_global_msg( const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx); AXIS2_EXTERN axis2_char_t *AXIS2_CALL sandesha2_utils_get_seq_id_from_rm_msg_ctx( const axutil_env_t *env, sandesha2_msg_ctx_t *rm_msg_ctx); AXIS2_EXTERN axis2_char_t *AXIS2_CALL sandesha2_spec_specific_consts_get_ack_req_soap_action( const axutil_env_t *env, axis2_char_t *spec_version); /** * Used to convert a message number list (a comma seperated list of message * numbers) into a set of Acknowledgement Ranges. This breaks the list, sort * the items and group them to create the ack_range objects. * * @param msg_no_str * @return */ AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL sandesha2_utils_get_ack_range_list( const axutil_env_t *env, axis2_char_t *msg_no_str, axis2_char_t *rm_ns_value); AXIS2_EXTERN axis2_bool_t AXIS2_CALL sandesha2_utils_is_all_msgs_acked_upto( const axutil_env_t *env, long highest_in_msg_no, axis2_char_t *internal_seq_id, sandesha2_seq_property_mgr_t *seq_prop_mgr); axis2_status_t AXIS2_CALL sandesha2_utils_execute_and_store( const axutil_env_t *env, sandesha2_msg_ctx_t *rm_msg_ctx, axis2_char_t *storage_key); axis2_bool_t AXIS2_CALL sandesha2_utils_is_wsrm_anon_reply_to( const axutil_env_t *env, const axis2_char_t *reply_to); axis2_bool_t AXIS2_CALL sandesha2_utils_is_anon_uri( const axutil_env_t *env, const axis2_char_t *address); AXIS2_EXTERN axis2_status_t AXIS2_CALL sandesha2_utils_stop_invoker( const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx); AXIS2_EXTERN axis2_status_t AXIS2_CALL sandesha2_utils_stop_sender( const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx); axutil_array_list_t *AXIS2_CALL sandesha2_utils_split( const axutil_env_t *env, axis2_char_t *str, axis2_char_t *pattern); /** * In this function it checks whether acks_to_addr is anonymous and rm_version is 1.0. * Form this it concludes that this is possibly a rm 1.0 replay mode. Note that it * does not check message exchange pattern. * * @param rm_version Reliable messaging spec version * @param acks_to_addr Acknowledgment to address */ axis2_bool_t AXIS2_CALL sandesha2_utils_is_rm_1_0_anonymous_acks_to( const axutil_env_t *env, const axis2_char_t *rm_version, const axis2_char_t *acks_to_addr); AXIS2_EXTERN axis2_msg_ctx_t * AXIS2_CALL sandesha2_utils_create_out_msg_ctx( const axutil_env_t *env, axis2_msg_ctx_t *in_msg_ctx); AXIS2_EXTERN axis2_char_t *AXIS2_CALL sandesha2_util_get_dbname( const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx); axis2_bool_t AXIS2_CALL sandesha2_util_is_fault_envelope( const axutil_env_t *env, axiom_soap_envelope_t *soap_envelope); axis2_bool_t AXIS2_CALL sandesha2_util_is_ack_already_piggybacked( const axutil_env_t *env, sandesha2_msg_ctx_t *rm_msg_ctx); axis2_bool_t AXIS2_CALL sandesha2_util_is_piggybackable_msg_type( const axutil_env_t *env, int msg_type); axutil_property_t *AXIS2_CALL sandesha2_util_property_clone( const axutil_env_t * env, axutil_property_t * property); axis2_endpoint_ref_t *AXIS2_CALL sandesha2_util_endpoint_ref_clone( const axutil_env_t * env, axis2_endpoint_ref_t * endpoint_ref); axis2_rm_assertion_t *AXIS2_CALL sandesha2_util_get_rm_assertion( const axutil_env_t * env, axis2_svc_t * svc); axis2_char_t *AXIS2_CALL sandesha2_util_get_string_from_node_list( const axutil_env_t *env, axutil_array_list_t *node_list); axutil_array_list_t *AXIS2_CALL sandesha2_util_get_node_list_from_string( const axutil_env_t *env, axis2_char_t *node_list_str); axis2_bool_t AXIS2_CALL sandesha2_util_is_rstr_msg( const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx); void AXIS2_CALL sandesha2_util_clone_property_map( const axutil_env_t * env, axis2_msg_ctx_t *ref_msg_ctx, axis2_msg_ctx_t *new_msg_ctx); /** @} */ #ifdef __cplusplus } #endif #endif /* SANDESHA2_UTILS_H */