A set that supports a specific operation with other peers. More...
#include </home/buildbot/bb-worker/worker/gnunet_firefly/build/src/contrib/service/set/gnunet-service-set.h>
Data Fields | |
struct Set * | next |
Sets are held in a doubly linked list (in sets_head and sets_tail ). More... | |
struct Set * | prev |
Sets are held in a doubly linked list. More... | |
struct ClientState * | cs |
Client that owns the set. More... | |
struct SetContent * | content |
Content, possibly shared by multiple sets, and thus reference counted. More... | |
const struct SetVT * | vt |
Virtual table for this set. More... | |
struct SetState * | state |
Implementation-specific state. More... | |
struct GNUNET_CONTAINER_MultiHashMapIterator * | iter |
Current state of iterating elements for the client. More... | |
struct Operation * | ops_head |
Evaluate operations are held in a linked list. More... | |
struct Operation * | ops_tail |
Evaluate operations are held in a linked list. More... | |
struct GenerationRange * | excluded_generations |
List of generations we have to exclude, due to lazy copies. More... | |
unsigned int | current_generation |
Current generation, that is, number of previously executed operations and lazy copies on the underlying set content. More... | |
unsigned int | excluded_generations_size |
Number of elements in array excluded_generations. More... | |
enum GNUNET_SET_OperationType | operation |
Type of operation supported for this set. More... | |
unsigned int | iter_generation |
Generation we're currently iteration over. More... | |
uint16_t | iteration_id |
Each iter is assigned a unique number, so that the client can distinguish iterations. More... | |
uint32_t | current_set_element_count |
Number of currently valid elements in the set which have not been removed. More... | |
struct MultiStrataEstimator * | se |
The strata estimator is only generated once for each set. More... | |
A set that supports a specific operation with other peers.
Definition at line 517 of file gnunet-service-set.h.
struct Set * Set::next |
Sets are held in a doubly linked list (in sets_head
and sets_tail
).
Definition at line 522 of file gnunet-service-set.h.
struct Set * Set::prev |
Sets are held in a doubly linked list.
Definition at line 527 of file gnunet-service-set.h.
struct ClientState * Set::cs |
Client that owns the set.
Only one client may own a set, and there can only be one set per client.
Definition at line 533 of file gnunet-service-set.h.
Referenced by client_disconnect_cb(), handle_client_accept(), handle_client_copy_lazy_connect(), handle_client_copy_lazy_prepare(), handle_client_create_set(), handle_client_iter_ack(), handle_client_iterate(), handle_client_mutation(), and send_client_element().
struct SetContent * Set::content |
Content, possibly shared by multiple sets, and thus reference counted.
Definition at line 539 of file gnunet-service-set.h.
Referenced by advance_generation(), client_disconnect_cb(), collect_generation_garbage(), execute_add(), execute_delayed_mutations(), execute_remove(), handle_client_copy_lazy_connect(), handle_client_create_set(), handle_client_iterate(), handle_client_mutation(), handle_client_set_add(), and send_client_element().
const struct SetVT* Set::vt |
Virtual table for this set.
Determined by the operation type of this set.
Used only for Add/remove of elements and when receiving an incoming operation from a remote peer.
Definition at line 548 of file gnunet-service-set.h.
Referenced by _GSS_operation_destroy(), client_disconnect_cb(), execute_add(), execute_remove(), handle_client_accept(), handle_client_copy_lazy_connect(), handle_client_create_set(), and handle_client_evaluate().
struct SetState* Set::state |
Implementation-specific state.
Definition at line 553 of file gnunet-service-set.h.
Referenced by client_disconnect_cb(), execute_add(), execute_remove(), handle_client_copy_lazy_connect(), and handle_client_create_set().
struct GNUNET_CONTAINER_MultiHashMapIterator* Set::iter |
Current state of iterating elements for the client.
NULL if we are not currently iterating.
Definition at line 559 of file gnunet-service-set.h.
Referenced by client_disconnect_cb(), handle_client_iter_ack(), handle_client_iterate(), and send_client_element().
struct Operation * Set::ops_head |
Evaluate operations are held in a linked list.
Definition at line 564 of file gnunet-service-set.h.
Referenced by _GSS_operation_destroy(), client_disconnect_cb(), collect_generation_garbage(), handle_client_accept(), handle_client_cancel(), and handle_client_evaluate().
struct Operation * Set::ops_tail |
Evaluate operations are held in a linked list.
Definition at line 569 of file gnunet-service-set.h.
Referenced by _GSS_operation_destroy(), handle_client_accept(), and handle_client_evaluate().
struct GenerationRange* Set::excluded_generations |
List of generations we have to exclude, due to lazy copies.
Definition at line 574 of file gnunet-service-set.h.
Referenced by advance_generation(), client_disconnect_cb(), execute_add(), execute_remove(), handle_client_copy_lazy_connect(), and send_client_element().
unsigned int Set::current_generation |
Current generation, that is, number of previously executed operations and lazy copies on the underlying set content.
Definition at line 580 of file gnunet-service-set.h.
Referenced by advance_generation(), execute_add(), execute_remove(), handle_client_accept(), handle_client_copy_lazy_connect(), handle_client_evaluate(), handle_client_iterate(), and handle_client_set_add().
unsigned int Set::excluded_generations_size |
Number of elements in array excluded_generations.
Definition at line 585 of file gnunet-service-set.h.
Referenced by advance_generation(), execute_add(), execute_remove(), handle_client_copy_lazy_connect(), and send_client_element().
enum GNUNET_SET_OperationType Set::operation |
Type of operation supported for this set.
Definition at line 590 of file gnunet-service-set.h.
Referenced by handle_client_copy_lazy_connect(), handle_client_create_set(), and handle_client_evaluate().
unsigned int Set::iter_generation |
Generation we're currently iteration over.
Definition at line 595 of file gnunet-service-set.h.
Referenced by handle_client_iterate(), and send_client_element().
uint16_t Set::iteration_id |
Each iter is assigned a unique number, so that the client can distinguish iterations.
Definition at line 601 of file gnunet-service-set.h.
Referenced by client_disconnect_cb(), handle_client_iter_ack(), and send_client_element().
uint32_t Set::current_set_element_count |
Number of currently valid elements in the set which have not been removed.
Definition at line 397 of file gnunet-service-seti.c.
Referenced by handle_client_set_add().
struct MultiStrataEstimator* Set::se |
The strata estimator is only generated once for each set.
The IBF keys are derived from the element hashes with salt=0.
Definition at line 603 of file gnunet-service-setu.c.
Referenced by client_disconnect_cb(), handle_client_create_set(), and handle_client_set_add().