/*
This file is part of GNUnet
- (C) 2012 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2012 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
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.
*/
/**
*/
struct StrataEstimator
{
+ /**
+ * The IBFs of this strata estimator.
+ */
struct InvertibleBloomFilter **strata;
+
+ /**
+ * Size of the IBF array in @e strata
+ */
unsigned int strata_count;
+
+ /**
+ * Size of each IBF stratum (in bytes)
+ */
unsigned int ibf_size;
};
* Write the given strata estimator to the buffer.
*
* @param se strata estimator to serialize
- * @param buf buffer to write to, must be of appropriate size
+ * @param[out] buf buffer to write to, must be of appropriate size
+ * @return number of bytes written to @a buf
*/
-void
-strata_estimator_write (const struct StrataEstimator *se, void *buf);
+size_t
+strata_estimator_write (const struct StrataEstimator *se,
+ void *buf);
/**
* estimator. The strata estimator must already be allocated.
*
* @param buf buffer to read from
- * @param se strata estimator to write to
+ * @param buf_len number of bytes in @a buf
+ * @param is_compressed is the data compressed?
+ * @param[out] se strata estimator to write to
+ * @return #GNUNET_OK on success
*/
-void
-strata_estimator_read (const void *buf, struct StrataEstimator *se);
+int
+strata_estimator_read (const void *buf,
+ size_t buf_len,
+ int is_compressed,
+ struct StrataEstimator *se);
/**
* @param strata_count number of stratas, that is, number of ibfs in the estimator
* @param ibf_size size of each ibf stratum
* @param ibf_hashnum hashnum parameter of each ibf
- * @return a freshly allocated, empty strata estimator
+ * @return a freshly allocated, empty strata estimator, NULL on error
*/
struct StrataEstimator *
-strata_estimator_create (unsigned int strata_count, uint32_t ibf_size, uint8_t ibf_hashnum);
+strata_estimator_create (unsigned int strata_count,
+ uint32_t ibf_size,
+ uint8_t ibf_hashnum);
/**
* @param key key to add
*/
void
-strata_estimator_insert (struct StrataEstimator *se, struct IBF_Key key);
+strata_estimator_insert (struct StrataEstimator *se,
+ struct IBF_Key key);
/**
* @param key key to remove
*/
void
-strata_estimator_remove (struct StrataEstimator *se, struct IBF_Key key);
+strata_estimator_remove (struct StrataEstimator *se,
+ struct IBF_Key key);
/**
#endif
#endif
-