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