|
@@ -63,6 +63,13 @@ void release_subscription(subscription_t *s);
|
|
|
* to client. It must contain all information
|
|
|
* for processing the status info. */
|
|
|
|
|
|
+typedef enum {
|
|
|
+ qsa_subscription_active,
|
|
|
+ qsa_subscription_pending,
|
|
|
+ qsa_subscription_terminated,
|
|
|
+ qsa_subscription_rejected
|
|
|
+} qsa_subscription_status_t;
|
|
|
+
|
|
|
typedef struct {
|
|
|
/* replacement for record_id, package, ... it is much more efficient */
|
|
|
subscription_t *subscription;
|
|
@@ -70,6 +77,7 @@ typedef struct {
|
|
|
void *data;
|
|
|
int data_len;
|
|
|
destroy_function_f destroy_func; /* function used to destroy data */
|
|
|
+ qsa_subscription_status_t status;
|
|
|
} client_notify_info_t;
|
|
|
|
|
|
|
|
@@ -77,9 +85,11 @@ void free_client_notify_info_content(client_notify_info_t *info);
|
|
|
|
|
|
/* notifications SHOULD be sent through this method */
|
|
|
int notify_subscriber(subscription_t *s,
|
|
|
+ notifier_t *n,
|
|
|
int data_type,
|
|
|
- void *data, int data_len,
|
|
|
- destroy_function_f data_destroy);
|
|
|
+ void *data,
|
|
|
+ destroy_function_f data_destroy,
|
|
|
+ qsa_subscription_status_t status);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
}
|