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