GNUnet 0.22.2
Set Struct Reference

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>

Collaboration diagram for Set:
[legend]

Data Fields

struct Setnext
 Sets are held in a doubly linked list (in sets_head and sets_tail). More...
 
struct Setprev
 Sets are held in a doubly linked list. More...
 
struct ClientStatecs
 Client that owns the set. More...
 
struct SetContentcontent
 Content, possibly shared by multiple sets, and thus reference counted. More...
 
const struct SetVTvt
 Virtual table for this set. More...
 
struct SetStatestate
 Implementation-specific state. More...
 
struct GNUNET_CONTAINER_MultiHashMapIteratoriter
 Current state of iterating elements for the client. More...
 
struct Operationops_head
 Evaluate operations are held in a linked list. More...
 
struct Operationops_tail
 Evaluate operations are held in a linked list. More...
 
struct GenerationRangeexcluded_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 MultiStrataEstimatorse
 The strata estimator is only generated once for each set. More...
 

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

struct ClientState * Set::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

struct Operation * Set::ops_head

◆ ops_tail

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

◆ 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

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

◆ 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: