| /* |
| * 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 SAVAN_UTIL_H |
| #define SAVAN_UTIL_H |
| |
| #include <axis2_const.h> |
| #include <axutil_error.h> |
| #include <axutil_hash.h> |
| #include <axis2_defines.h> |
| #include <axutil_utils_defines.h> |
| #include <axutil_env.h> |
| #include <axutil_allocator.h> |
| #include <axis2_msg_ctx.h> |
| |
| #include <savan_constants.h> |
| #include <savan_subscriber.h> |
| #include <savan_sub_processor.h> |
| #include <savan_subs_mgr.h> |
| #include <savan_publisher.h> |
| #include <savan_filter_mod.h> |
| #include <axiom_node.h> |
| #include <axiom_element.h> |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| /** |
| * @defgroup savan_util |
| * @ingroup Savan Util |
| * @{ |
| */ |
| |
| struct savan_subs_mgr; |
| |
| /** |
| * Create the fault envelope, to be sent |
| * to the client. |
| * @param msg_ctx msg context |
| * @param env environment |
| * @param code, fault code |
| * @param subcode, fault sub code |
| * @param reason, fault reason |
| * @param detail, fault deails. |
| */ |
| |
| AXIS2_EXTERN axis2_status_t AXIS2_CALL |
| savan_util_create_fault_envelope( |
| axis2_msg_ctx_t *msg_ctx, |
| const axutil_env_t *env, |
| axis2_char_t *code, |
| axis2_char_t *subcode, |
| axis2_char_t *reason, |
| axis2_char_t *detail); |
| |
| /** |
| * Build a savan fault message and send. |
| * @param env, pointer to the environment |
| * @param code, SOAP12:Sender |
| * @param subcode, fault subcode |
| * @param reason, fault reason |
| * @param detail, details about fault, |
| * and solution to avoid. |
| */ |
| |
| /* |
| int AXIS2_CALL |
| savan_util_send_fault_notification( |
| savan_subscriber_t *subscriber, |
| const axutil_env_t *env, |
| axis2_char_t * code, |
| axis2_char_t * subcode, |
| axis2_char_t * reason, |
| axis2_char_t * detail); |
| */ |
| |
| /** |
| * Build a savan fault message |
| * @param env, pointer to the environment |
| * @param code, SOAP12:Sender |
| * @param subcode, fault subcode |
| * @param reason, fault reason |
| * @param detail, details about fault, |
| * and solution to avoid. |
| */ |
| |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| savan_util_build_fault_msg( |
| const axutil_env_t *env, |
| axis2_char_t * code, |
| axis2_char_t * subcode, |
| axis2_char_t * reason, |
| axis2_char_t * detail); |
| |
| AXIS2_EXTERN savan_message_types_t AXIS2_CALL |
| savan_util_get_message_type( |
| axis2_msg_ctx_t *msg_ctx, |
| const axutil_env_t *env); |
| |
| /** |
| * Extracts the subscription ID from the given messsage |
| * context. |
| * @param env pointer to environment struct |
| * @param msg_ctx pointer to message context |
| * @return the ID on success, else NULL |
| */ |
| |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| savan_util_get_subscription_id_from_msg( |
| const axutil_env_t *env, |
| axis2_msg_ctx_t *msg_ctx); |
| |
| /** |
| * Get the subscriber store from the service |
| * Note that if the subscription manager is a separate service from |
| * the publisher service then both SubscriptionMgrName and SubscriptionMgrURL |
| * must be set in the publishers services.xml |
| * @param env pointer to environment struct |
| * @param msg_ctx pointer to message context |
| * @return the store on success, else NULL |
| */ |
| |
| AXIS2_EXTERN axutil_hash_t * AXIS2_CALL |
| savan_util_get_subscriber_store( |
| const axutil_env_t *env, |
| axis2_msg_ctx_t *msg_ctx); |
| |
| /** |
| * Calculate and return an expiry time for the subscription |
| * @param env pointer to environment struct |
| * @return the expiry time on success, else NULL |
| */ |
| |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| savan_util_get_expiry_time( |
| const axutil_env_t *env); |
| |
| /** |
| * Calculate and return a new expiry time for the subscription based on the |
| * current expiry time. |
| * @param env pointer to environment struct |
| * @param expiry current expiry time |
| * @return the new expiry time on success, else NULL |
| */ |
| AXIS2_EXTERN axis2_char_t * AXIS2_CALL |
| savan_util_get_renewed_expiry_time( |
| const axutil_env_t *env, |
| axis2_char_t *expiry); |
| |
| /** |
| * Create subs hash and set as a service parameter. |
| * @param env pointer to environment struct |
| * @param svc subscription service |
| * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE |
| */ |
| AXIS2_EXTERN axis2_status_t AXIS2_CALL |
| savan_util_set_store( |
| axis2_svc_t *svc, |
| const axutil_env_t *env, |
| axis2_char_t *store_name); |
| |
| AXIS2_EXTERN axis2_char_t *AXIS2_CALL |
| savan_util_get_topic_name_from_topic_url( |
| const axutil_env_t *env, |
| axis2_char_t *topic_url); |
| |
| AXIS2_EXTERN axis2_char_t *AXIS2_CALL |
| savan_util_get_resource_connection_string( |
| const axutil_env_t *env, |
| axis2_conf_t *conf); |
| |
| AXIS2_EXTERN axis2_char_t *AXIS2_CALL |
| savan_util_get_resource_username( |
| const axutil_env_t *env, |
| axis2_conf_t *conf); |
| |
| AXIS2_EXTERN axis2_char_t *AXIS2_CALL |
| savan_util_get_resource_password( |
| const axutil_env_t *env, |
| axis2_conf_t *conf); |
| |
| /** |
| * Get the module parameter value by passing the module parameter name. |
| * @param env pointer to environment struct |
| * @param conf Axis2/C configuration structure |
| * @param name module parameter name |
| * @return module parameter value |
| */ |
| AXIS2_EXTERN axis2_char_t *AXIS2_CALL |
| savan_util_get_module_param( |
| const axutil_env_t *env, |
| axis2_conf_t *conf, |
| axis2_char_t *name); |
| |
| AXIS2_EXTERN void *AXIS2_CALL |
| savan_util_get_svc_client( |
| const axutil_env_t *env); |
| |
| AXIS2_EXTERN axis2_status_t AXIS2_CALL |
| savan_util_process_subscriber_node( |
| const axutil_env_t *env, |
| axiom_node_t *sub_node, |
| axiom_element_t *sub_elem, |
| savan_subscriber_t *subscriber); |
| |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| savan_util_create_subscriber_node( |
| const axutil_env_t *env, |
| savan_subscriber_t *subscriber, |
| axiom_node_t *parent_node); |
| |
| AXIS2_EXTERN axiom_node_t * AXIS2_CALL |
| savan_util_create_savan_specific_subscriber_node( |
| const axutil_env_t *env, |
| savan_subscriber_t *subscriber, |
| axiom_node_t *parent_node); |
| |
| /** |
| * Retrieve filter handler. If it is already created for this request scope then it should be |
| * available as a message context property. Otherwise create it and set as message context |
| * property. |
| * @param env environment object |
| * @param conf Axis2 main configuration instance |
| * @return filter handler |
| */ |
| AXIS2_EXTERN savan_filter_mod_t * AXIS2_CALL |
| savan_util_get_filter_module( |
| const axutil_env_t *env, |
| axis2_conf_t *conf); |
| |
| /** @} */ |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /*SAVAN_UTIL_H*/ |