ss_subscribe.c File Reference

#include <stdlib.h>
#include <pthread.h>
#include "ss_subscribe.h"
#include "structures.h"
#include "utils/check_func.h"
#include "kpi_low.h"
#include "ss_func.h"
#include "utils/util_func.h"
#include "utils/kp_debug.h"
#include "classes.h"
#include <string.h>
#include <bits/waitstatus.h>
#include <unistd.h>

Data Structures

struct  async_sbcr_thread_s
 Data for asynchronous subscribe thread. More...

Typedefs

typedef struct async_sbcr_thread_s async_sbcr_thread_t
 Data for asynchronous subscribe thread.

Functions

subscription_container_tnew_subscription_container ()
 New subscription container.
subscription_data_tnew_subscription_data (individual_t *ind, list_t *properties)
 New data for subscription container.
void free_subscription_data (subscription_data_t *data, bool free_prop_list)
 Free subscription container data.
void free_subscription_container (subscription_container_t *container)
 Free subscription container.
void set_subscription_container_callback (subscription_container_t *container, void(*func)(subscription_container_t *, list_t *))
 Sets callback function for subscription.
int add_individual_to_subscription_container (subscription_container_t *container, individual_t *ind, list_t *properties)
 Add individual to subscription.
int wait_subscribe (subscription_container_t *container)
 Wait data from SS for container and update it.
int ss_subscribe_container (subscription_container_t *container, bool is_asynchronous)
 Subscribe container.
int ss_unsubscribe_container (subscription_container_t *container)
 Unsubscribe given container.
void stop_all_subscriptions ()
 Stop asynchronous subscribe. Unsubscribe all asynchronous containers and remove all containers from list.

Typedef Documentation

Data for asynchronous subscribe thread.


Function Documentation

int add_individual_to_subscription_container ( subscription_container_t container,
individual_t ind,
list_t *  properties 
)

Add individual to subscription.

Parameters:
ind individual.
properties list of properties for subscribe or NULL for all properties.
Returns:
0 on success or not otherwise.

void free_subscription_container ( subscription_container_t container  ) 

Free subscription container.

Free subscription container structure. Also free subscription's data structures, individual and properties not freed, only list structure of properties.

Parameters:
container subscription container for free.

void free_subscription_data ( subscription_data_t data,
bool  free_prop_list 
)

Free subscription container data.

Free subscription data structure, individual and properties not freed. You can free properties list (only list structure will be freed, not properties), using parameter free_prop_list.

Parameters:
data subscription data for free.
free_prop_list if it equals true - list structure will be freed, without properties.

subscription_container_t* new_subscription_container (  ) 

New subscription container.

Returns:
new subscription container on success or NULL otherwise.

subscription_data_t* new_subscription_data ( individual_t ind,
list_t *  properties 
)

New data for subscription container.

Subscription data contains individual and list of properties or NULL for all properties of individual.

Parameters:
ind individual.
properties list of properties for subscribe or NULL for all properties.
Returns:
new subscription data on success or NULL otherwise.

void set_subscription_container_callback ( subscription_container_t container,
void(*)(subscription_container_t *, list_t *)  func 
)

Sets callback function for subscription.

This functions call then some properties changed in container.

Parameters:
container subscription container.
reference to callback function.

int ss_subscribe_container ( subscription_container_t container,
bool  is_asynchronous 
)

Subscribe container.

Parameters:
container subscription container for subscribe.
is_asynchronous sibscription mode (true - async, false - sync).
Returns:
0 on seccess or not otherwise.

int ss_unsubscribe_container ( subscription_container_t container  ) 

Unsubscribe given container.

Parameters:
container subscription container for unsubscribe.
Returns:
0 on seccess or not otherwise.

void stop_all_subscriptions (  ) 

Stop asynchronous subscribe. Unsubscribe all asynchronous containers and remove all containers from list.

int wait_subscribe ( subscription_container_t container  ) 

Wait data from SS for container and update it.

Parameters:
container subscription container.
Returns:
0 on seccess or not otherwise.


doxygen