GNUnet 0.29.1-dev.1-3-g346358e26
 
Loading...
Searching...
No Matches
Set Struct Reference

A set that supports a specific operation with other peers. More...

#include </home/buildbot/bb-worker/worker/gnunet_release/build/src/contrib/service/set/gnunet-service-set.h>

Collaboration diagram for Set:
[legend]

Data Fields

struct Set * next
 Sets are held in a doubly linked list (in sets_head and sets_tail).
 
struct Set * prev
 Sets are held in a doubly linked list.
 
struct ClientState * cs
 Client that owns the set.
 
struct SetContent * content
 Content, possibly shared by multiple sets, and thus reference counted.
 
const struct SetVT * vt
 Virtual table for this set.
 
struct SetState * state
 Implementation-specific state.
 
struct GNUNET_CONTAINER_MultiHashMapIterator * iter
 Current state of iterating elements for the client.
 
struct Operation * ops_head
 Evaluate operations are held in a linked list.
 
struct Operation * ops_tail
 Evaluate operations are held in a linked list.
 
struct GenerationRange * excluded_generations
 List of generations we have to exclude, due to lazy copies.
 
unsigned int current_generation
 Current generation, that is, number of previously executed operations and lazy copies on the underlying set content.
 
unsigned int excluded_generations_size
 Number of elements in array excluded_generations.
 
enum GNUNET_SET_OperationType operation
 Type of operation supported for this set.
 
unsigned int iter_generation
 Generation we're currently iteration over.
 
uint16_t iteration_id
 Each iter is assigned a unique number, so that the client can distinguish iterations.
 
uint32_t current_set_element_count
 Number of currently valid elements in the set which have not been removed.
 
struct MultiStrataEstimator * se
 The strata estimator is only generated once for each set.
 

Detailed Description

A set that supports a specific operation with other peers.

Definition at line 517 of file gnunet-service-set.h.

Field Documentation

◆ next

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.

◆ prev

struct Set * Set::prev

Sets are held in a doubly linked list.

Definition at line 527 of file gnunet-service-set.h.

◆ cs

◆ content

◆ vt

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().

◆ state

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().

◆ 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().

◆ ops_head

◆ ops_tail

◆ excluded_generations

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().

◆ current_generation

unsigned int Set::current_generation

◆ excluded_generations_size

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().

◆ operation

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().

◆ iter_generation

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().

◆ iteration_id

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().

◆ current_set_element_count

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().

◆ se

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().


The documentation for this struct was generated from the following files: