00001 #ifndef MICROFEEDITEM_H
00002 #define MICROFEEDITEM_H
00003
00004 #include "microfeedstore.h"
00005 #include "microfeedmisc.h"
00006
00023 typedef struct _MicrofeedItem MicrofeedItem;
00024
00028 typedef struct _MicrofeedItemIterator MicrofeedItemIterator;
00029
00030 typedef enum {
00031 MICROFEED_ITEM_STATUS_NONE = 0,
00032 MICROFEED_ITEM_STATUS_ACTIVE = 1,
00033 MICROFEED_ITEM_STATUS_UNREAD = 2,
00034 MICROFEED_ITEM_STATUS_SET = 128
00035 } MicrofeedItemStatus;
00036
00037 #define MICROFEED_ITEM_STATUS_ALL (MICROFEED_ITEM_STATUS_ACTIVE | MICROFEED_ITEM_STATUS_UNREAD)
00038
00039 MicrofeedItem* microfeed_item_new_empty(void);
00040 MicrofeedItem* microfeed_item_new(const char* uid, time_t timestamp);
00041 MicrofeedItem* microfeed_item_new_with_status(const char* uid, time_t timestamp, MicrofeedItemStatus status);
00042 void microfeed_item_free(MicrofeedItem* item);
00043 MicrofeedItem* microfeed_item_duplicate(MicrofeedItem* item);
00044
00045 int microfeed_item_demarshal_properties(MicrofeedItem* item, const void* data, size_t size);
00046 const char* microfeed_item_get_uid(MicrofeedItem* item);
00047 time_t microfeed_item_get_timestamp(MicrofeedItem* item);
00048 void microfeed_item_set_timestamp(MicrofeedItem* item, time_t timestamp);
00049 MicrofeedItemStatus microfeed_item_get_status(MicrofeedItem* item);
00050 const char* microfeed_item_get_property(MicrofeedItem* item, const char* key);
00051 MicrofeedItemIterator* microfeed_item_iterate_properties(MicrofeedItem* item, const char* start_key);
00052 void microfeed_item_marshal_properties(MicrofeedItem* item, const void** data_pointer, size_t* size_pointer);
00053 void microfeed_item_set_property(MicrofeedItem* item, const char* key, const char* value);
00054 void microfeed_item_set_property_full(MicrofeedItem* item, const char* key, size_t key_length, const char* value, size_t value_length);
00055 char* microfeed_item_get_properties_as_string(MicrofeedItem* item);
00056 int microfeed_item_set_properties_from_string(MicrofeedItem* item, const char* string);
00057
00058 void microfeed_item_iterator_free(MicrofeedItemIterator* iterator);
00059 int microfeed_item_iterator_get(MicrofeedItemIterator* iterator, const char** key, const char** value);
00060 void microfeed_item_iterator_next(MicrofeedItemIterator* iterator);
00061
00064 #endif