00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MICROFEEDSUBSCRIBER_H
00020 #define MICROFEEDSUBSCRIBER_H
00021
00022 #define DBUS_API_SUBJECT_TO_CHANGE
00023 #include <dbus/dbus.h>
00024
00025 #include <time.h>
00026
00040 typedef struct _MicrofeedSubscriber MicrofeedSubscriber;
00041
00042
00045 #include <microfeed-common/microfeedstore.h>
00046 #include <microfeed-common/microfeeditem.h>
00047 #include <microfeed-common/microfeedconfiguration.h>
00048 #include <microfeed-common/microfeedprotocol.h>
00049
00055 #define MICROFEED_DBUS_OBJECT_PATH_PREFIX_SUBSCRIBER MICROFEED_DBUS_OBJECT_PATH_PREFIX "subscriber/"
00056 #define MICROFEED_SUBSCRIBER_DBUS_METHOD_CALL_TIMEOUT 600000
00057
00058 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);
00059 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);
00060 typedef void (*MicrofeedSubscriberFeedCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, void* user_data);
00061 typedef void (*MicrofeedSubscriberItemCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedItem* item, void* user_data);
00062 typedef void (*MicrofeedSubscriberItemRemovedCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, void* user_data);
00063 typedef void (*MicrofeedSubscriberStatusCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, const MicrofeedItemStatus status, void* user_data);
00064 typedef void (*MicrofeedSubscriberItemDataCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, const void* data, const size_t length, void* user_data);
00065
00066 typedef struct {
00067 MicrofeedSubscriberErrorCallback error_occured;
00068 MicrofeedSubscriberFeedCallback feed_update_started;
00069 MicrofeedSubscriberFeedCallback feed_update_ended;
00070 MicrofeedSubscriberFeedCallback feed_republishing_started;
00071 MicrofeedSubscriberFeedCallback feed_republishing_ended;
00072 MicrofeedSubscriberItemCallback item_added;
00073 MicrofeedSubscriberItemCallback item_changed;
00074 MicrofeedSubscriberItemCallback item_republished;
00075 MicrofeedSubscriberItemRemovedCallback item_removed;
00076 MicrofeedSubscriberStatusCallback item_status_changed;
00077 MicrofeedSubscriberItemDataCallback item_data_received;
00078 } MicrofeedSubscriberCallbacks;
00079
00080 typedef void (*MicrofeedSubscriberConfiguredSubscribeCallback)(MicrofeedSubscriber* subscriber, const char* publisher, void* callback_data);
00081 typedef void (*MicrofeedSubscriberConfiguredUnsubscribeCallback)(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberCallbacks* callbacks, void* callbacks_user_data, void* user_data);
00082
00083 MicrofeedSubscriber* microfeed_subscriber_new(const char* identifier, DBusConnection* connection);
00084 void microfeed_subscriber_free(MicrofeedSubscriber* subscriber);
00085
00086 const char* microfeed_subscriber_get_identifier(MicrofeedSubscriber* subscriber);
00087
00088 int microfeed_subscriber_subscribe_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberCallbacks* callbacks, void* callbacks_user_data, MicrofeedSubscriberReplyCallback callback, void* user_data);
00089 int microfeed_subscriber_unsubscribe_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberCallbacks* callbacks, void* callbacks_user_data, MicrofeedSubscriberReplyCallback callback, void* user_data);
00090
00091 int microfeed_subscriber_add_item(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedItem* item, MicrofeedSubscriberReplyCallback callback, void* user_data);
00092 int microfeed_subscriber_modify_item(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedItem* item, MicrofeedSubscriberReplyCallback callback, void* user_data);
00093 int microfeed_subscriber_remove_item(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, const char* uid, MicrofeedSubscriberReplyCallback callback, void* user_data);
00094 int microfeed_subscriber_update_feed(MicrofeedSubscriber* subscriber, const char* publisher, const char* uri, MicrofeedSubscriberReplyCallback callback, void* user_data);
00095 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);
00096 int microfeed_subscriber_get_item_data(MicrofeedSubscriber* subscriber, const char* publisher_identifier, const char* uri, const char* uid, MicrofeedSubscriberReplyCallback callback, void* user_data);
00097 int microfeed_subscriber_mark_item(MicrofeedSubscriber* subscriber, const char* publisher_identifier, const char* uri, const char* uid, MicrofeedSubscriberReplyCallback callback, void* user_data);
00098 int microfeed_subscriber_unmark_item(MicrofeedSubscriber* subscriber, const char* publisher_identifier, const char* uri, const char* uid, MicrofeedSubscriberReplyCallback callback, void* user_data);
00099 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);
00100
00101 int microfeed_subscriber_create_publisher(MicrofeedSubscriber* subscriber, const char* publisher, MicrofeedSubscriberReplyCallback callback, void* user_data);
00102 int microfeed_subscriber_destroy_publisher(MicrofeedSubscriber* subscriber, const char* publisher, MicrofeedSubscriberReplyCallback callback, void* user_data);
00103
00104 int microfeed_subscriber_handle_configured_subscriptions(MicrofeedSubscriber* subscriber, MicrofeedSubscriberConfiguredSubscribeCallback configured_subscribe, MicrofeedSubscriberConfiguredUnsubscribeCallback configured_unsubscribe, void* user_data);
00105
00111 #endif