00001 #ifndef MICROFEEDITEM_H 00002 #define MICROFEEDITEM_H 00003 00004 #include <microfeed-common/microfeedstore.h> 00005 00006 #include <sys/types.h> 00007 00026 typedef struct _MicrofeedItem MicrofeedItem; 00027 00031 typedef struct _MicrofeedItemIterator MicrofeedItemIterator; 00032 00033 typedef enum { 00034 MICROFEED_ITEM_STATUS_NONE = 0, 00035 MICROFEED_ITEM_STATUS_ACTIVE = 1 << 0, 00036 MICROFEED_ITEM_STATUS_UNREAD = 1 << 1, 00037 MICROFEED_ITEM_STATUS_MARKED = 1 << 2, 00038 MICROFEED_ITEM_STATUS_SET = 1 << 7 00039 } MicrofeedItemStatus; 00040 00041 #define MICROFEED_ITEM_STATUS_NEW (MICROFEED_ITEM_STATUS_ACTIVE | MICROFEED_ITEM_STATUS_UNREAD) 00042 00043 typedef enum { 00044 MICROFEED_ITEM_PERMISSION_NONE = 0, 00045 MICROFEED_ITEM_PERMISSION_MODIFY = 1 << 0, 00046 MICROFEED_ITEM_PERMISSION_REMOVE = 1 << 1, 00047 MICROFEED_ITEM_PERMISSION_REPLY = 1 << 2 00048 } MicrofeedItemPermission; 00049 00050 MicrofeedItem* microfeed_item_new_temporary(void); 00051 MicrofeedItem* microfeed_item_new(const char* uid, time_t timestamp); 00052 MicrofeedItem* microfeed_item_new_with_status(const char* uid, time_t timestamp, MicrofeedItemStatus status); 00053 void microfeed_item_free(MicrofeedItem* item); 00054 MicrofeedItem* microfeed_item_duplicate(MicrofeedItem* item); 00055 00056 int microfeed_item_demarshal_properties(MicrofeedItem* item, const void* data, size_t size); 00057 const char* microfeed_item_get_uid(MicrofeedItem* item); 00058 time_t microfeed_item_get_timestamp(MicrofeedItem* item); 00059 void microfeed_item_set_timestamp(MicrofeedItem* item, time_t timestamp); 00060 MicrofeedItemStatus microfeed_item_get_status(MicrofeedItem* item); 00061 const char* microfeed_item_get_property(MicrofeedItem* item, const char* key); 00062 MicrofeedItemIterator* microfeed_item_iterate_properties(MicrofeedItem* item, const char* start_key); 00063 void microfeed_item_marshal_properties(MicrofeedItem* item, const void** data_pointer, size_t* size_pointer); 00064 void microfeed_item_set_property(MicrofeedItem* item, const char* key, const char* value); 00065 void microfeed_item_set_property_with_length(MicrofeedItem* item, const char* key, const char* value, size_t value_length); 00066 void microfeed_item_set_property_full(MicrofeedItem* item, const char* key, size_t key_length, const char* value, size_t value_length); 00067 char* microfeed_item_get_properties_as_string(MicrofeedItem* item); 00068 int microfeed_item_set_properties_from_string(MicrofeedItem* item, const char* string); 00069 MicrofeedItemPermission microfeed_item_permission_from_string(const char* string); 00070 char* microfeed_item_permission_to_string(MicrofeedItemPermission item_permission); 00071 00072 void microfeed_item_iterator_free(MicrofeedItemIterator* iterator); 00073 int microfeed_item_iterator_get(MicrofeedItemIterator* iterator, const char** key, const char** value); 00074 void microfeed_item_iterator_next(MicrofeedItemIterator* iterator); 00075 00081 #endif