API - SmartSlog

subscription_internal.h

Go to the documentation of this file.
00001 
00034 #ifndef SS_SUBSCRIPTION_INTERNAL_H
00035 #define SS_SUBSCRIPTION_INTERNAL_H
00036 
00037 
00038 #include "structures.h"
00039 #include "subscription.h"
00040 #include "utils/list.h"
00041 
00042 
00043 #ifdef  __cplusplus
00044 extern "C" {
00045 #endif
00046 
00047 
00051 #define SS_UNSUBSCRIBE_ATTEMPTS 10
00052 
00053 /******************************************************************************/
00054 /****************************** Structures list *******************************/
00055 
00057 
00063 typedef struct subscription_data_s {
00064     individual_t *ind;  
00065     list_t *properties; 
00066 } subscription_data_t;
00067 
00068 
00069 
00070 
00072 
00073 
00078 struct subscription_s {
00080     int rtti;             
00086     list_t sbrc_data;
00087     list_t sbrc_classes;  
00089     bool is_active;       
00090     bool is_asynchronous; 
00092     ss_subs_info_t info;  
00093     ss_info_t* ss_info;   
00098     subscription_changes_data_t *last_changes;
00099 
00103     void (*changed_handler)(subscription_t *sender);
00104 
00108     void (*unsubscription_handler)(subscription_t *sender);
00110 };
00111 
00112 
00113 /******************************************************************************/
00114 /****************************** Functions list ********************************/
00115 
00117 
00118 subscription_data_t* new_subscription_data(individual_t *individual,
00119         list_t *properties);
00120 void free_subscription_data(subscription_data_t *data, bool free_prop_list);
00121 void stop_all_subscriptions();
00122 
00124 
00125 
00126 #ifdef  __cplusplus
00127 }
00128 #endif
00129 
00130 #endif  /* SS_SUBSCRIPTION_INTERNAL_H */
00131