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 00023 typedef struct _MicrofeedSubscriber MicrofeedSubscriber; 00024 00025 typedef void* MicrofeedPublisherHandle; 00026 00029 #include <microfeed-common/microfeedstore.h> 00030 #include <microfeed-common/microfeeditem.h> 00031 #include <microfeed-common/microfeedconfiguration.h> 00032 00037 typedef void (*MicrofeedSubscriberReplyCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, const char* error_name, const char* error_message, void* user_data); 00038 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); 00039 typedef void (*MicrofeedSubscriberFeedCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, void* user_data); 00040 typedef void (*MicrofeedSubscriberItemCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedItem* item, void* user_data); 00041 typedef void (*MicrofeedSubscriberItemRemovedCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, void* user_data); 00042 typedef void (*MicrofeedSubscriberStatusCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, const MicrofeedItemStatus status, void* user_data); 00043 typedef void (*MicrofeedSubscriberItemDataCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, const void* data, const size_t length, void* user_data); 00044 typedef void (*MicrofeedSubscriberConfiguredSubscribeCallback)(MicrofeedSubscriber* subscriber, const char* publisher, void* user_data); 00045 typedef void (*MicrofeedSubscriberConfiguredUnsubscribeCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, void* user_data); 00046 00047 typedef struct { 00048 MicrofeedSubscriberErrorCallback error_occured; 00049 MicrofeedSubscriberFeedCallback feed_update_started; 00050 MicrofeedSubscriberFeedCallback feed_update_ended; 00051 MicrofeedSubscriberFeedCallback feed_republishing_started; 00052 MicrofeedSubscriberFeedCallback feed_republishing_ended; 00053 MicrofeedSubscriberItemCallback item_added; 00054 MicrofeedSubscriberItemCallback item_changed; 00055 MicrofeedSubscriberItemCallback item_republished; 00056 MicrofeedSubscriberItemRemovedCallback item_removed; 00057 MicrofeedSubscriberStatusCallback item_status_changed; 00058 MicrofeedSubscriberItemDataCallback item_data_received; 00059 } MicrofeedSubscriberCallbacks; 00060 00061 MicrofeedSubscriber* microfeed_subscriber_new(const char* identifier, const char* object_path, DBusConnection* connection); 00062 void microfeed_subscriber_free(MicrofeedSubscriber* subscriber); 00063 00064 const char* microfeed_subscriber_get_identifier(MicrofeedSubscriber* subscriber); 00065 int microfeed_subscriber_add_item(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedItem* item, MicrofeedSubscriberReplyCallback callback, void* user_data); 00066 int microfeed_subscriber_modify_item(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedItem* item, MicrofeedSubscriberReplyCallback callback, void* user_data); 00067 int microfeed_subscriber_remove_item(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, MicrofeedSubscriberReplyCallback callback, void* user_data); 00068 int microfeed_subscriber_subscribe_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberCallbacks* callbacks, MicrofeedSubscriberReplyCallback callback, void* user_data); 00069 int microfeed_subscriber_unsubscribe_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberReplyCallback callback, void* user_data); 00070 int microfeed_subscriber_update_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberReplyCallback callback, void* user_data); 00071 int microfeed_subscriber_republish_items(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* start_uid, const char* end_uid, unsigned int max_count, MicrofeedSubscriberReplyCallback callback, void* user_data); 00072 int microfeed_subscriber_create_publisher(MicrofeedSubscriber* subscriber, const char* publisher, MicrofeedSubscriberReplyCallback callback, void* user_data); 00073 int microfeed_subscriber_destroy_publisher(MicrofeedSubscriber* subscriber, const char* publisher, MicrofeedSubscriberReplyCallback callback, void* user_data); 00074 int microfeed_subscriber_send_item_data(MicrofeedSubscriber* subscriber, const char* publisher_identifier, const char* uri, const char* uid, MicrofeedSubscriberReplyCallback callback, void* user_data); 00075 int microfeed_subscriber_mark_item(MicrofeedSubscriber* subscriber, const char* publisher_identifier, const char* uri, const char* uid, MicrofeedSubscriberReplyCallback callback, void* user_data); 00076 int microfeed_subscriber_unmark_item(MicrofeedSubscriber* subscriber, const char* publisher_identifier, const char* uri, const char* uid, MicrofeedSubscriberReplyCallback callback, void* user_data); 00077 int microfeed_subscriber_read_items(MicrofeedSubscriber* subscriber, const char* publisher_identifier, const char* uri, const char* start_uid, const char* end_uid, MicrofeedSubscriberReplyCallback callback, void* user_data); 00078 int microfeed_subscriber_handle_configured_subscriptions(MicrofeedSubscriber* subscriber, MicrofeedSubscriberConfiguredSubscribeCallback configured_subscribe, MicrofeedSubscriberConfiguredUnsubscribeCallback configured_unsubscribe, void* user_data); 00079 00085 #endif