00001 00002 #ifndef MICROFEEDSUBSCRIBER_H 00003 #define MICROFEEDSUBSCRIBER_H 00004 00005 #define DBUS_API_SUBJECT_TO_CHANGE 00006 #include <dbus/dbus.h> 00007 00008 #include <time.h> 00009 00021 typedef struct _MicrofeedSubscriber MicrofeedSubscriber; 00022 00023 typedef void* MicrofeedPublisherHandle; 00024 00027 #include <microfeed/microfeedstore.h> 00028 #include <microfeed/microfeeditem.h> 00029 #include <microfeed/microfeedmisc.h> 00030 #include <microfeed/microfeedconfiguration.h> 00031 00036 typedef void (*MicrofeedSubscriberErrorCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, const char* error_name, const char* error_message, void* user_data); 00037 typedef void (*MicrofeedSubscriberFeedCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, void* user_data); 00038 typedef void (*MicrofeedSubscriberItemCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedItem* item, void* user_data); 00039 typedef void (*MicrofeedSubscriberItemRemovedCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, void* user_data); 00040 typedef void (*MicrofeedSubscriberStatusCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, const MicrofeedItemStatus status, void* user_data); 00041 typedef void (*MicrofeedSubscriberItemDataCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, const void* data, const size_t length, void* user_data); 00042 00043 typedef struct { 00044 MicrofeedSubscriberErrorCallback error_occured; 00045 MicrofeedSubscriberFeedCallback feed_update_started; 00046 MicrofeedSubscriberFeedCallback feed_update_ended; 00047 MicrofeedSubscriberFeedCallback feed_republishing_started; 00048 MicrofeedSubscriberFeedCallback feed_republishing_ended; 00049 MicrofeedSubscriberItemCallback item_added; 00050 MicrofeedSubscriberItemCallback item_changed; 00051 MicrofeedSubscriberItemCallback item_republished; 00052 MicrofeedSubscriberItemRemovedCallback item_removed; 00053 MicrofeedSubscriberStatusCallback item_status_changed; 00054 MicrofeedSubscriberItemDataCallback item_data_received; 00055 } MicrofeedSubscriberCallbacks; 00056 00057 MicrofeedSubscriber* microfeed_subscriber_new(const char* object_path, MicrofeedConfiguration* configuration, DBusConnection* connection); 00058 void microfeed_subscriber_free(MicrofeedSubscriber* subscriber); 00059 00060 void microfeed_subscriber_add_item(MicrofeedSubscriber*subscriber, const char* publisher, const char* uri, MicrofeedItem* item, MicrofeedSubscriberErrorCallback callback, void* user_data); 00061 void microfeed_subscriber_modify_item(MicrofeedSubscriber*subscriber, const char* publisher, const char* uri, MicrofeedItem* item); 00062 void microfeed_subscriber_subscribe_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberCallbacks* callbacks, MicrofeedSubscriberErrorCallback callback, void* user_data); 00063 void microfeed_subscriber_unsubscribe_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberErrorCallback callback, void* user_data); 00064 void microfeed_subscriber_update_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberErrorCallback callback, void* user_data); 00065 void microfeed_subscriber_republish_items(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* start_uid, const char* end_uid, unsigned int max_count, MicrofeedSubscriberErrorCallback callback, void* user_data); 00066 void microfeed_subscriber_create_publisher(MicrofeedSubscriber* subscriber, const char* publisher, MicrofeedSubscriberErrorCallback callback, void* user_data); 00067 void microfeed_subscriber_send_item_data(MicrofeedSubscriber* subscriber, const char* publisher_identifier, const char* uri, const char* uid, MicrofeedSubscriberErrorCallback callback, void* user_data); 00068 00071 #endif