aboutsummaryrefslogtreecommitdiff
path: root/src/util/container_meta_data.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-04-28 08:07:19 +0000
committerChristian Grothoff <christian@grothoff.org>2010-04-28 08:07:19 +0000
commitb393f0f2c8f2075c16310a8edbe552020fd8b147 (patch)
treed6b91d0939ab540d2f66291cf0659ed40bda9626 /src/util/container_meta_data.c
parent1c90bd35e34a9a237ebde4440367322a8cc2a686 (diff)
downloadgnunet-b393f0f2c8f2075c16310a8edbe552020fd8b147.tar.gz
gnunet-b393f0f2c8f2075c16310a8edbe552020fd8b147.zip
merge meta data for search results
Diffstat (limited to 'src/util/container_meta_data.c')
-rw-r--r--src/util/container_meta_data.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/util/container_meta_data.c b/src/util/container_meta_data.c
index 89a63d659..e44984b64 100644
--- a/src/util/container_meta_data.c
+++ b/src/util/container_meta_data.c
@@ -311,6 +311,54 @@ GNUNET_CONTAINER_meta_data_insert (struct GNUNET_CONTAINER_MetaData *md,
311 311
312 312
313/** 313/**
314 * Merge given meta data.
315 *
316 * @param cls the 'struct GNUNET_CONTAINER_MetaData' to merge into
317 * @param plugin_name name of the plugin that produced this value;
318 * special values can be used (i.e. '<zlib>' for zlib being
319 * used in the main libextractor library and yielding
320 * meta data).
321 * @param type libextractor-type describing the meta data
322 * @param format basic format information about data
323 * @param data_mime_type mime-type of data (not of the original file);
324 * can be NULL (if mime-type is not known)
325 * @param data actual meta-data found
326 * @param data_len number of bytes in data
327 * @return 0 (to continue)
328 */
329static int
330merge_helper(void *cls,
331 const char *plugin_name,
332 enum EXTRACTOR_MetaType type,
333 enum EXTRACTOR_MetaFormat format,
334 const char *data_mime_type,
335 const char *data,
336 size_t data_len)
337{
338 struct GNUNET_CONTAINER_MetaData *md = cls;
339 (void) GNUNET_CONTAINER_meta_data_insert (md, plugin_name,
340 type, format,
341 data_mime_type, data, data_len);
342 return 0;
343}
344
345
346/**
347 * Extend metadata. Merges the meta data from the second argument
348 * into the first, discarding duplicate key-value pairs.
349 *
350 * @param md metadata to extend
351 * @param in metadata to merge
352 */
353void
354GNUNET_CONTAINER_meta_data_merge (struct GNUNET_CONTAINER_MetaData *md,
355 const struct GNUNET_CONTAINER_MetaData *in)
356{
357 GNUNET_CONTAINER_meta_data_iterate (in, &merge_helper, md);
358}
359
360
361/**
314 * Remove an item. 362 * Remove an item.
315 * 363 *
316 * @param md metadata to manipulate 364 * @param md metadata to manipulate