MicrofeedItem is not thread-safe, so keep one item in one thread only. However, usually the lifetime of an item is short, so there is even no need to access an item from multiple threads. Thus, there is no reference counting available. If you have to access the same item content in multiple threads, use microfeed_item_duplicate.
#define MICROFEED_ITEM_STATUS_NEW (MICROFEED_ITEM_STATUS_ACTIVE | MICROFEED_ITEM_STATUS_UNREAD) |
typedef struct _MicrofeedItem MicrofeedItem |
typedef struct _MicrofeedItemIterator MicrofeedItemIterator |
Opaque data type representing Microfeed item iterator that iterates over the properties of the item.
Definition at line 31 of file microfeeditem.h.
MICROFEED_ITEM_PERMISSION_NONE | |
MICROFEED_ITEM_PERMISSION_MODIFY | |
MICROFEED_ITEM_PERMISSION_REMOVE | |
MICROFEED_ITEM_PERMISSION_REPLY |
Definition at line 43 of file microfeeditem.h.
enum MicrofeedItemStatus |
MICROFEED_ITEM_STATUS_NONE | |
MICROFEED_ITEM_STATUS_ACTIVE | |
MICROFEED_ITEM_STATUS_UNREAD | |
MICROFEED_ITEM_STATUS_MARKED | |
MICROFEED_ITEM_STATUS_SET |
Definition at line 33 of file microfeeditem.h.
int microfeed_item_demarshal_properties | ( | MicrofeedItem * | item, | |
const void * | data, | |||
size_t | size | |||
) |
Definition at line 102 of file microfeeditem.c.
References _MicrofeedItem::buffer, _MicrofeedItem::buffer_size, _MicrofeedItem::properties, _MicrofeedItem::properties_length, and _MicrofeedItem::properties_reserved.
Referenced by microfeed_feed_get_item(), microfeed_feed_iterator_get_item(), microfeed_feed_remove_item(), microfeed_feed_remove_items(), and microfeed_feed_replace_item().
MicrofeedItem* microfeed_item_duplicate | ( | MicrofeedItem * | item | ) |
Definition at line 83 of file microfeeditem.c.
References _MicrofeedItem::buffer, _MicrofeedItem::buffer_size, microfeed_memory_allocate, _MicrofeedItem::properties, _MicrofeedItem::properties_length, _MicrofeedItem::properties_reserved, and _MicrofeedItem::uid.
Referenced by microfeed_feed_call_modify_item_callback().
void microfeed_item_free | ( | MicrofeedItem * | item | ) |
Definition at line 72 of file microfeeditem.c.
References _MicrofeedItem::buffer, microfeed_memory_free(), _MicrofeedItem::properties, and _MicrofeedItem::uid.
Referenced by microfeed_feed_remove_item(), microfeed_feed_remove_items(), microfeed_feed_replace_item(), microfeed_publisher_get_setting_value(), microfeed_publisher_get_setting_value_integer(), and microfeed_publisher_set_setting_value().
char* microfeed_item_get_properties_as_string | ( | MicrofeedItem * | item | ) |
Definition at line 283 of file microfeeditem.c.
References _MicrofeedItem::buffer, _MicrofeedItem::buffer_size, microfeed_memory_allocate_bytes(), _MicrofeedItem::properties, and _MicrofeedItem::properties_length.
const char* microfeed_item_get_property | ( | MicrofeedItem * | item, | |
const char * | key | |||
) |
Definition at line 154 of file microfeeditem.c.
References _MicrofeedItem::buffer, and _MicrofeedItem::properties.
Referenced by microfeed_publisher_add_setting(), microfeed_publisher_get_setting_value(), microfeed_publisher_get_setting_value_integer(), and microfeed_publisher_handle_item_property_change().
MicrofeedItemStatus microfeed_item_get_status | ( | MicrofeedItem * | item | ) |
Definition at line 149 of file microfeeditem.c.
References _MicrofeedItem::status.
Referenced by microfeed_publisher_send_item_signal().
time_t microfeed_item_get_timestamp | ( | MicrofeedItem * | item | ) |
Definition at line 140 of file microfeeditem.c.
References _MicrofeedItem::timestamp.
Referenced by microfeed_feed_ref_item_data(), microfeed_feed_replace_item(), and microfeed_publisher_send_item_signal().
const char* microfeed_item_get_uid | ( | MicrofeedItem * | item | ) |
Definition at line 135 of file microfeeditem.c.
References _MicrofeedItem::uid.
Referenced by microfeed_feed_replace_item(), microfeed_publisher_send_item_signal(), microfeed_subscriber_add_item(), and microfeed_subscriber_modify_item().
MicrofeedItemIterator* microfeed_item_iterate_properties | ( | MicrofeedItem * | item, | |
const char * | start_key | |||
) |
Definition at line 171 of file microfeeditem.c.
References _MicrofeedItemIterator::index, _MicrofeedItemIterator::item, _MicrofeedItem::iterators, microfeed_memory_allocate, _MicrofeedItemIterator::next, _MicrofeedItemIterator::previous, and _MicrofeedItem::properties_length.
Referenced by microfeed_publisher_send_item_signal(), microfeed_subscriber_add_item(), and microfeed_subscriber_modify_item().
void microfeed_item_iterator_free | ( | MicrofeedItemIterator * | iterator | ) |
Definition at line 402 of file microfeeditem.c.
References _MicrofeedItemIterator::item, _MicrofeedItem::iterators, microfeed_memory_free(), _MicrofeedItemIterator::next, and _MicrofeedItemIterator::previous.
Referenced by microfeed_publisher_send_item_signal(), microfeed_subscriber_add_item(), and microfeed_subscriber_modify_item().
int microfeed_item_iterator_get | ( | MicrofeedItemIterator * | iterator, | |
const char ** | key, | |||
const char ** | value | |||
) |
Definition at line 416 of file microfeeditem.c.
References _MicrofeedItem::buffer, _MicrofeedItemIterator::index, _MicrofeedItemIterator::item, _MicrofeedItem::properties, and _MicrofeedItem::properties_length.
Referenced by microfeed_publisher_send_item_signal(), microfeed_subscriber_add_item(), and microfeed_subscriber_modify_item().
void microfeed_item_iterator_next | ( | MicrofeedItemIterator * | iterator | ) |
Definition at line 430 of file microfeeditem.c.
References _MicrofeedItemIterator::index, _MicrofeedItemIterator::item, and _MicrofeedItem::properties_length.
Referenced by microfeed_publisher_send_item_signal(), microfeed_subscriber_add_item(), and microfeed_subscriber_modify_item().
void microfeed_item_marshal_properties | ( | MicrofeedItem * | item, | |
const void ** | data_pointer, | |||
size_t * | size_pointer | |||
) |
Definition at line 201 of file microfeeditem.c.
References _MicrofeedItem::buffer, and _MicrofeedItem::buffer_size.
Referenced by microfeed_feed_ref_item_data(), and microfeed_feed_replace_item().
MicrofeedItem* microfeed_item_new | ( | const char * | uid, | |
time_t | timestamp | |||
) |
Definition at line 36 of file microfeeditem.c.
References microfeed_memory_allocate, _MicrofeedItem::timestamp, and _MicrofeedItem::uid.
Referenced by microfeed_feed_get_item(), microfeed_feed_iterator_get_item(), microfeed_feed_new(), microfeed_feed_ref_item_data(), microfeed_feed_remove_item(), microfeed_feed_remove_items(), microfeed_item_new_temporary(), microfeed_item_new_with_status(), and microfeed_publisher_add_setting().
MicrofeedItem* microfeed_item_new_temporary | ( | void | ) |
MicrofeedItem* microfeed_item_new_with_status | ( | const char * | uid, | |
time_t | timestamp, | |||
MicrofeedItemStatus | status | |||
) |
Definition at line 63 of file microfeeditem.c.
References microfeed_item_new(), MICROFEED_ITEM_STATUS_SET, and _MicrofeedItem::status.
Referenced by microfeed_feed_replace_item().
MicrofeedItemPermission microfeed_item_permission_from_string | ( | const char * | string | ) |
Definition at line 360 of file microfeeditem.c.
References MICROFEED_ITEM_PERMISSION_MODIFY, MICROFEED_ITEM_PERMISSION_NONE, MICROFEED_ITEM_PERMISSION_REMOVE, and MICROFEED_ITEM_PERMISSION_REPLY.
char* microfeed_item_permission_to_string | ( | MicrofeedItemPermission | item_permission | ) |
Definition at line 381 of file microfeeditem.c.
References MICROFEED_ITEM_PERMISSION_MODIFY, MICROFEED_ITEM_PERMISSION_REMOVE, and MICROFEED_ITEM_PERMISSION_REPLY.
int microfeed_item_set_properties_from_string | ( | MicrofeedItem * | item, | |
const char * | string | |||
) |
void microfeed_item_set_property | ( | MicrofeedItem * | item, | |
const char * | key, | |||
const char * | value | |||
) |
Definition at line 206 of file microfeeditem.c.
References microfeed_item_set_property_full().
Referenced by microfeed_feed_new(), microfeed_publisher_add_setting(), and microfeed_publisher_set_setting_value().
void microfeed_item_set_property_full | ( | MicrofeedItem * | item, | |
const char * | key, | |||
size_t | key_length, | |||
const char * | value, | |||
size_t | value_length | |||
) |
Definition at line 218 of file microfeeditem.c.
References _MicrofeedItem::buffer, _MicrofeedItem::buffer_size, _MicrofeedItem::properties, _MicrofeedItem::properties_length, and _MicrofeedItem::properties_reserved.
Referenced by microfeed_item_set_properties_from_string(), microfeed_item_set_property(), and microfeed_item_set_property_with_length().
void microfeed_item_set_property_with_length | ( | MicrofeedItem * | item, | |
const char * | key, | |||
const char * | value, | |||
size_t | value_length | |||
) |
void microfeed_item_set_timestamp | ( | MicrofeedItem * | item, | |
time_t | timestamp | |||
) |