/*
This file is part of GNUnet
- (C) 2012 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2012 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
#endif
+/**
+ * Keys that can be inserted into and removed from an IBF.
+ */
struct IBF_Key
{
uint64_t key_val;
};
+
+/**
+ * Hash of an IBF key.
+ */
struct IBF_KeyHash
{
uint32_t key_hash_val;
};
+
+/**
+ * Type of the count field of IBF buckets.
+ */
struct IBF_Count
{
int8_t count_val;
};
+
/**
* Size of one ibf bucket in bytes
*/
#define IBF_BUCKET_SIZE (sizeof (struct IBF_Count) + sizeof (struct IBF_Key) + \
sizeof (struct IBF_KeyHash))
+
/**
* Invertible bloom filter (IBF).
*
struct InvertibleBloomFilter *
ibf_dup (const struct InvertibleBloomFilter *ibf);
+
/**
* Destroy all resources associated with the invertible bloom filter.
* No more ibf_*-functions may be called on ibf after calling destroy.