X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fregex%2Fregex_internal_lib.h;h=2703565fe6c7213de1964a5e8f9be0ad1eece9f2;hb=c2d9d1e64c9801122caaa6b429fc67706db5c9d7;hp=391a33fd26674fad7078ca21d0be7fd748699a08;hpb=3999807382f98843cdde19211fc94484d0793087;p=oweals%2Fgnunet.git diff --git a/src/regex/regex_internal_lib.h b/src/regex/regex_internal_lib.h index 391a33fd2..2703565fe 100644 --- a/src/regex/regex_internal_lib.h +++ b/src/regex/regex_internal_lib.h @@ -1,6 +1,6 @@ /* This file is part of GNUnet - (C) 2012, 2013 Christian Grothoff (and other contributing authors) + Copyright (C) 2012, 2013 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 @@ -139,6 +139,22 @@ REGEX_INTERNAL_iterate_all_edges (struct REGEX_INTERNAL_Automaton *a, void *iterator_cls); +/** + * Iterate over all edges of automaton 'a' that are reachable from a state with + * a proof of at least GNUNET_REGEX_INITIAL_BYTES characters. + * + * Call the iterator for each such edge. + * + * @param a automaton. + * @param iterator iterator called for each reachable edge. + * @param iterator_cls closure. + */ +void +REGEX_INTERNAL_iterate_reachable_edges (struct REGEX_INTERNAL_Automaton *a, + REGEX_INTERNAL_KeyIterator iterator, + void *iterator_cls); + + /** * Handle to store cached data about a regex announce. @@ -154,19 +170,19 @@ struct REGEX_INTERNAL_Search; /** * Announce a regular expression: put all states of the automaton in the DHT. * Does not free resources, must call REGEX_INTERNAL_announce_cancel for that. - * + * * @param dht An existing and valid DHT service handle. CANNOT be NULL. * @param priv our private key, must remain valid until the announcement is cancelled * @param regex Regular expression to announce. * @param compression How many characters per edge can we squeeze? * @param stats Optional statistics handle to report usage. Can be NULL. - * + * * @return Handle to reuse o free cached resources. * Must be freed by calling REGEX_INTERNAL_announce_cancel. */ struct REGEX_INTERNAL_Announcement * REGEX_INTERNAL_announce (struct GNUNET_DHT_Handle *dht, - const struct GNUNET_CRYPTO_EccPrivateKey *priv, + const struct GNUNET_CRYPTO_EddsaPrivateKey *priv, const char *regex, uint16_t compression, struct GNUNET_STATISTICS_Handle *stats); @@ -175,7 +191,7 @@ REGEX_INTERNAL_announce (struct GNUNET_DHT_Handle *dht, /** * Announce again a regular expression previously announced. * Does use caching to speed up process. - * + * * @param h Handle returned by a previous REGEX_INTERNAL_announce call. */ void @@ -185,7 +201,7 @@ REGEX_INTERNAL_reannounce (struct REGEX_INTERNAL_Announcement *h); /** * Clear all cached data used by a regex announce. * Does not close DHT connection. - * + * * @param h Handle returned by a previous REGEX_INTERNAL_announce call. */ void @@ -220,7 +236,7 @@ typedef void (*REGEX_INTERNAL_Found)(void *cls, * @param callback Callback for found peers. * @param callback_cls Closure for @c callback. * @param stats Optional statistics handle to report usage. Can be NULL. - * + * * @return Handle to stop search and free resources. * Must be freed by calling REGEX_INTERNAL_search_cancel. */ @@ -234,7 +250,7 @@ REGEX_INTERNAL_search (struct GNUNET_DHT_Handle *dht, /** * Stop search and free all data used by a REGEX_INTERNAL_search call. * Does not close DHT connection. - * + * * @param h Handle returned by a previous REGEX_INTERNAL_search call. */ void