blob: 4b38f81f9d40eb2247bae9503d4616829dd538f4 [file] [log] [blame]
/*
* 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_SUBSCRIBER_H
#define SAVAN_SUBSCRIBER_H
/**
* @defgroup savan_subscribers
* @ingroup savan_subscribers
* subscriber represents a client subscribing to an eventing service
* @{
*/
/**
* @file savan_sub_processor.h
*/
#include <axis2_defines.h>
#include <axutil_env.h>
#ifdef __cplusplus
extern "C"
{
#endif
struct savan_filter_mod;
typedef struct savan_subscriber_t savan_subscriber_t;
/* Set the filter dialect
* @param subscriber pointer to the subscriber
* @param env pointer to the environment
* @param filter_dailect pointer to the dialect
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_subscriber_set_filter_dialect(
savan_subscriber_t *subscriber,
const axutil_env_t *env,
const axis2_char_t *filter_dialect);
/* Get the filter dialect
* @param subscriber pointer to the filter dialect
* @param env pointer to the enviornment
*/
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
savan_subscriber_get_filter_dialect(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
/*
* Get the delivery mode
* @param subscriber pointer to the subscriber
* @param env pointer to the environment
*/
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
savan_subscriber_get_delivery_mode(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
/**
* Retrive subscriber id.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @return the unique id assigned to the subscriber
*/
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
savan_subscriber_get_id(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
/**
* Set id.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @param id the id
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_subscriber_set_id(
savan_subscriber_t *subscriber,
const axutil_env_t *env,
const axis2_char_t *id);
/**
* Set EndTo end point.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @param end_to the EndTo reference
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_subscriber_set_end_to(
savan_subscriber_t *subscriber,
const axutil_env_t *env,
axis2_endpoint_ref_t *end_to);
/**
* Get EndTo end point.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @return end_to
*/
AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
savan_subscriber_get_end_to(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
/**
* Set NotifyTo end point.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @param notify_to the NotifyTo reference
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_subscriber_set_notify_to(
savan_subscriber_t *subscriber,
const axutil_env_t *env,
axis2_endpoint_ref_t *notify_to);
/**
* Get NotifyTo end point.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @return notify_to
*/
AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
savan_subscriber_get_notify_to(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
/**
* Set delivery mode.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @param mode the delivery mode
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_subscriber_set_delivery_mode(
savan_subscriber_t *subscriber,
const axutil_env_t *env,
const axis2_char_t *mode);
/**
* Set expires.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @param expires the expires date and time
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_subscriber_set_expires(
savan_subscriber_t *subscriber,
const axutil_env_t *env,
const axis2_char_t *expires);
/**
* Get expires.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @return expire date and time as string
*/
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
savan_subscriber_get_expires(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
/**
* Set filter.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @param filter the filter string
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_subscriber_set_filter(
savan_subscriber_t *subscriber,
const axutil_env_t *env,
const axis2_char_t *filter);
/**
* Get filter.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @return filter the filter string
*/
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
savan_subscriber_get_filter(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
/**
* Set whether the subscription is renewed or not.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @param msg_ctx the msg to be published
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
savan_subscriber_set_renew_status(
savan_subscriber_t *subscriber,
const axutil_env_t *env,
axis2_bool_t renewed);
/**
* Check whether the subscription is renewed or not.
* @param subscriber pointer to subscriber
* @param env pointer to environment struct
* @param msg_ctx the msg to be published
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
savan_subscriber_get_renew_status(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
/**
* Creates a subscriber instance.
* @param env pointer to environment struct
* @return pointer to newly created subscriber struct
*/
AXIS2_EXTERN savan_subscriber_t * AXIS2_CALL
savan_subscriber_create(
const axutil_env_t *env);
AXIS2_EXTERN void AXIS2_CALL
savan_subscriber_free(
savan_subscriber_t *subscriber,
const axutil_env_t *env);
AXIS2_EXTERN void AXIS2_CALL
savan_subscriber_free_void_arg(
void *subscriber,
const axutil_env_t *env);
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* SAVAN_SUBSCRIBER_H */