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