00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MICROFEEDITEM_H
00021 #define MICROFEEDITEM_H
00022
00023 #include <microfeed-common/microfeedstore.h>
00024
00025 #include <sys/types.h>
00026
00045 typedef struct _MicrofeedItem MicrofeedItem;
00046
00050 typedef struct _MicrofeedItemIterator MicrofeedItemIterator;
00051
00052 typedef enum {
00053 MICROFEED_ITEM_STATUS_NONE = 0,
00054 MICROFEED_ITEM_STATUS_ACTIVE = 1 << 0,
00055 MICROFEED_ITEM_STATUS_UNREAD = 1 << 1,
00056 MICROFEED_ITEM_STATUS_MARKED = 1 << 2,
00057 MICROFEED_ITEM_STATUS_SET = 1 << 7
00058 } MicrofeedItemStatus;
00059
00060 #define MICROFEED_ITEM_STATUS_NEW (MICROFEED_ITEM_STATUS_ACTIVE | MICROFEED_ITEM_STATUS_UNREAD)
00061
00062 typedef enum {
00063 MICROFEED_ITEM_PERMISSION_NONE = 0,
00064 MICROFEED_ITEM_PERMISSION_MODIFY = 1 << 0,
00065 MICROFEED_ITEM_PERMISSION_REMOVE = 1 << 1,
00066 MICROFEED_ITEM_PERMISSION_REPLY = 1 << 2
00067 } MicrofeedItemPermission;
00068
00069 MicrofeedItem* microfeed_item_new_temporary(void);
00070 MicrofeedItem* microfeed_item_new(const char* uid, time_t timestamp);
00071 MicrofeedItem* microfeed_item_new_with_status(const char* uid, time_t timestamp, MicrofeedItemStatus status);
00072 void microfeed_item_free(MicrofeedItem* item);
00073 MicrofeedItem* microfeed_item_duplicate(MicrofeedItem* item);
00074
00075 int microfeed_item_demarshal_properties(MicrofeedItem* item, const void* data, size_t size);
00076 const char* microfeed_item_get_uid(MicrofeedItem* item);
00077 time_t microfeed_item_get_timestamp(MicrofeedItem* item);
00078 void microfeed_item_set_timestamp(MicrofeedItem* item, time_t timestamp);
00079 MicrofeedItemStatus microfeed_item_get_status(MicrofeedItem* item);
00080 const char* microfeed_item_get_property(MicrofeedItem* item, const char* key);
00081 MicrofeedItemIterator* microfeed_item_iterate_properties(MicrofeedItem* item, const char* start_key);
00082 void microfeed_item_marshal_properties(MicrofeedItem* item, const void** data_pointer, size_t* size_pointer);
00083 void microfeed_item_set_property(MicrofeedItem* item, const char* key, const char* value);
00084 void microfeed_item_set_property_with_length(MicrofeedItem* item, const char* key, const char* value, size_t value_length);
00085 void microfeed_item_set_property_full(MicrofeedItem* item, const char* key, size_t key_length, const char* value, size_t value_length);
00086 char* microfeed_item_get_properties_as_string(MicrofeedItem* item);
00087 int microfeed_item_set_properties_from_string(MicrofeedItem* item, const char* string);
00088 MicrofeedItemPermission microfeed_item_permission_from_string(const char* string);
00089 char* microfeed_item_permission_to_string(MicrofeedItemPermission item_permission);
00090
00091 void microfeed_item_iterator_free(MicrofeedItemIterator* iterator);
00092 int microfeed_item_iterator_get(MicrofeedItemIterator* iterator, const char** key, const char** value);
00093 void microfeed_item_iterator_next(MicrofeedItemIterator* iterator);
00094
00100 #endif