![]() |
GNUnet
0.11.x
|
Storing of meta data. More...
Go to the source code of this file.
Data Structures | |
struct | MetaItem |
Meta data item. More... | |
struct | GNUNET_CONTAINER_MetaData |
Meta data to associate with a file, directory or namespace. More... | |
struct | MetaDataHeader |
Header for serialized meta data. More... | |
struct | MetaDataEntry |
Entry of serialized meta data. More... | |
Macros | |
#define | LOG(kind, ...) |
#define | HEADER_COMPRESSED 0x80000000 |
Flag in 'version' that indicates compressed meta-data. More... | |
#define | HEADER_VERSION_MASK 0x7FFFFFFF |
Bits in 'version' that give the version number. More... | |
Functions | |
int | GNUNET_try_compression (const char *data, size_t old_size, char **result, size_t *new_size) |
Try to compress the given block of data using libz. More... | |
char * | GNUNET_decompress (const char *input, size_t input_size, size_t output_size) |
Decompress input, return the decompressed data as output. More... | |
struct GNUNET_CONTAINER_MetaData * | GNUNET_CONTAINER_meta_data_create () |
Create a fresh struct CONTAINER_MetaData token. More... | |
static void | meta_item_free (struct MetaItem *mi) |
Free meta data item. More... | |
static void | invalidate_sbuf (struct GNUNET_CONTAINER_MetaData *md) |
The meta data has changed, invalidate its serialization buffer. More... | |
void | GNUNET_CONTAINER_meta_data_destroy (struct GNUNET_CONTAINER_MetaData *md) |
Free meta data. More... | |
void | GNUNET_CONTAINER_meta_data_clear (struct GNUNET_CONTAINER_MetaData *md) |
Remove all items in the container. More... | |
int | GNUNET_CONTAINER_meta_data_test_equal (const struct GNUNET_CONTAINER_MetaData *md1, const struct GNUNET_CONTAINER_MetaData *md2) |
Test if two MDs are equal. More... | |
int | GNUNET_CONTAINER_meta_data_insert (struct GNUNET_CONTAINER_MetaData *md, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_size) |
Extend metadata. More... | |
static int | merge_helper (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_size) |
Merge given meta data. More... | |
void | GNUNET_CONTAINER_meta_data_merge (struct GNUNET_CONTAINER_MetaData *md, const struct GNUNET_CONTAINER_MetaData *in) |
Extend metadata. More... | |
int | GNUNET_CONTAINER_meta_data_delete (struct GNUNET_CONTAINER_MetaData *md, enum EXTRACTOR_MetaType type, const char *data, size_t data_size) |
Remove an item. More... | |
void | GNUNET_CONTAINER_meta_data_add_publication_date (struct GNUNET_CONTAINER_MetaData *md) |
Add the current time as the publication date to the meta-data. More... | |
int | GNUNET_CONTAINER_meta_data_iterate (const struct GNUNET_CONTAINER_MetaData *md, EXTRACTOR_MetaDataProcessor iter, void *iter_cls) |
Iterate over MD entries. More... | |
char * | GNUNET_CONTAINER_meta_data_get_by_type (const struct GNUNET_CONTAINER_MetaData *md, enum EXTRACTOR_MetaType type) |
Get the first MD entry of the given type. More... | |
char * | GNUNET_CONTAINER_meta_data_get_first_by_types (const struct GNUNET_CONTAINER_MetaData *md,...) |
Get the first matching MD entry of the given types. More... | |
size_t | GNUNET_CONTAINER_meta_data_get_thumbnail (const struct GNUNET_CONTAINER_MetaData *md, unsigned char **thumb) |
Get a thumbnail from the meta-data (if present). More... | |
struct GNUNET_CONTAINER_MetaData * | GNUNET_CONTAINER_meta_data_duplicate (const struct GNUNET_CONTAINER_MetaData *md) |
Duplicate a struct GNUNET_CONTAINER_MetaData . More... | |
ssize_t | GNUNET_CONTAINER_meta_data_serialize (const struct GNUNET_CONTAINER_MetaData *md, char **target, size_t max, enum GNUNET_CONTAINER_MetaDataSerializationOptions opt) |
Serialize meta-data to target. More... | |
ssize_t | GNUNET_CONTAINER_meta_data_get_serialized_size (const struct GNUNET_CONTAINER_MetaData *md) |
Get the size of the full meta-data in serialized form. More... | |
struct GNUNET_CONTAINER_MetaData * | GNUNET_CONTAINER_meta_data_deserialize (const char *input, size_t size) |
Deserialize meta-data. More... | |
Storing of meta data.
Definition in file container_meta_data.c.
#define LOG | ( | kind, | |
... | |||
) |
Definition at line 34 of file container_meta_data.c.
#define HEADER_COMPRESSED 0x80000000 |
Flag in 'version' that indicates compressed meta-data.
Definition at line 690 of file container_meta_data.c.
#define HEADER_VERSION_MASK 0x7FFFFFFF |
Bits in 'version' that give the version number.
Definition at line 696 of file container_meta_data.c.
int GNUNET_try_compression | ( | const char * | data, |
size_t | old_size, | ||
char ** | result, | ||
size_t * | new_size | ||
) |
Try to compress the given block of data using libz.
Only returns the compressed block if compression worked and the new block is actually smaller. Decompress using GNUNET_decompress().
data | block to compress; if compression resulted in a smaller block, the first bytes of data are updated to the compressed data | |
old_size | number of bytes in data | |
[out] | result | set to the compressed data, if compression worked |
[out] | new_size | set to size of result, if compression worked |
Definition at line 54 of file container_meta_data.c.
References data, GNUNET_free, GNUNET_malloc, GNUNET_NO, GNUNET_YES, and result.
Referenced by GNUNET_CONTAINER_meta_data_serialize(), and strata_estimator_write().
char* GNUNET_decompress | ( | const char * | input, |
size_t | input_size, | ||
size_t | output_size | ||
) |
Decompress input, return the decompressed data as output.
Dual to GNUNET_try_compression(). Caller must set output_size to the number of bytes that were originally compressed.
input | compressed data |
input_size | number of bytes in input |
output_size | expected size of the output |
Definition at line 101 of file container_meta_data.c.
References GNUNET_free, and GNUNET_malloc.
Referenced by GNUNET_CONTAINER_meta_data_deserialize(), and strata_estimator_read().
|
static |
Free meta data item.
mi | item to free |
Definition at line 218 of file container_meta_data.c.
References MetaItem::data, GNUNET_free, MetaItem::mime_type, and MetaItem::plugin_name.
Referenced by GNUNET_CONTAINER_meta_data_clear(), GNUNET_CONTAINER_meta_data_delete(), and GNUNET_CONTAINER_meta_data_destroy().
|
static |
The meta data has changed, invalidate its serialization buffer.
md | meta data that changed |
Definition at line 234 of file container_meta_data.c.
References GNUNET_free, GNUNET_CONTAINER_MetaData::sbuf, and GNUNET_CONTAINER_MetaData::sbuf_size.
Referenced by GNUNET_CONTAINER_meta_data_delete(), and GNUNET_CONTAINER_meta_data_insert().
|
static |
Merge given meta data.
cls | the struct GNUNET_CONTAINER_MetaData to merge into |
plugin_name | name of the plugin that produced this value; special values can be used (e.g. '<zlib>' for zlib being used in the main libextractor library and yielding meta data). |
type | libextractor-type describing the meta data |
format | basic format information about data |
data_mime_type | mime-type of data (not of the original file); can be NULL (if mime-type is not known) |
data | actual meta-data found |
data_size | number of bytes in data |
Definition at line 442 of file container_meta_data.c.
References data, data_size, GNUNET_CONTAINER_meta_data_insert(), plugin_name, and type.
Referenced by GNUNET_CONTAINER_meta_data_merge().