X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fgnunet_set_service.h;h=44773f1872457753d44769225482e0b58ffe8c5f;hb=7a7ec54a324da4820202582126795a8ac6bbe94d;hp=f9ae122b445fc5c17ec5b95f422598211528b8d6;hpb=68e2709a38f9c481f96024138a6f9ae57a280a57;p=oweals%2Fgnunet.git diff --git a/src/include/gnunet_set_service.h b/src/include/gnunet_set_service.h index f9ae122b4..44773f187 100644 --- a/src/include/gnunet_set_service.h +++ b/src/include/gnunet_set_service.h @@ -1,6 +1,6 @@ /* This file is part of GNUnet - Copyright (C) 2013, 2014 Christian Grothoff (and other contributing authors) + Copyright (C) 2013, 2014 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -19,10 +19,18 @@ */ /** - * @file include/gnunet_set_service.h - * @brief two-peer set operations * @author Florian Dold * @author Christian Grothoff + * + * @file + * Two-peer set operations + * + * @defgroup set Set service + * Two-peer set operations + * + * @see [Documentation](https://gnunet.org/set-subsystem) + * + * @{ */ #ifndef GNUNET_SET_SERVICE_H @@ -161,7 +169,7 @@ enum GNUNET_SET_ResultMode * Client gets notified of the required changes * for both the local and the remote set. * - * Only supported for set + * Only supported for set */ GNUNET_SET_RESULT_SYMMETRIC, @@ -208,7 +216,8 @@ struct GNUNET_SET_Element * * @param cls closure */ -typedef void (*GNUNET_SET_Continuation) (void *cls); +typedef void +(*GNUNET_SET_Continuation) (void *cls); /** @@ -219,9 +228,10 @@ typedef void (*GNUNET_SET_Continuation) (void *cls); * @param element a result element, only valid if status is #GNUNET_SET_STATUS_OK * @param status see `enum GNUNET_SET_Status` */ -typedef void (*GNUNET_SET_ResultIterator) (void *cls, - const struct GNUNET_SET_Element *element, - enum GNUNET_SET_Status status); +typedef void +(*GNUNET_SET_ResultIterator) (void *cls, + const struct GNUNET_SET_Element *element, + enum GNUNET_SET_Status status); /** * Iterator for set elements. @@ -231,8 +241,9 @@ typedef void (*GNUNET_SET_ResultIterator) (void *cls, * iterated over * @return #GNUNET_YES to continue iterating, #GNUNET_NO to stop. */ -typedef int (*GNUNET_SET_ElementIterator) (void *cls, - const struct GNUNET_SET_Element *element); +typedef int +(*GNUNET_SET_ElementIterator) (void *cls, + const struct GNUNET_SET_Element *element); /** @@ -470,6 +481,26 @@ GNUNET_SET_iterate (struct GNUNET_SET_Handle *set, void GNUNET_SET_iterate_cancel (struct GNUNET_SET_Handle *set); +/** + * Create a copy of an element. The copy + * must be GNUNET_free-d by the caller. + * + * @param element the element to copy + * @return the copied element + */ +struct GNUNET_SET_Element * +GNUNET_SET_element_dup (const struct GNUNET_SET_Element *element); + +/** + * Hash a set element. + * + * @param element the element that should be hashed + * @param ret_hash a pointer to where the hash of @a element + * should be stored + */ +void +GNUNET_SET_element_hash (const struct GNUNET_SET_Element *element, struct GNUNET_HashCode *ret_hash); + #if 0 /* keep Emacsens' auto-indent happy */ { @@ -479,3 +510,5 @@ GNUNET_SET_iterate_cancel (struct GNUNET_SET_Handle *set); #endif #endif + +/** @} */ /* end of group */