GNUnet  0.11.x
Data Fields
OperationState Struct Reference

State of an evaluate operation with another peer. More...

Collaboration diagram for OperationState:
[legend]

Data Fields

struct GNUNET_CONTAINER_BloomFilterremote_bf
 The bf we currently receive. More...
 
struct GNUNET_CONTAINER_BloomFilterlocal_bf
 BF of the set's element. More...
 
struct GNUNET_CONTAINER_MultiHashMapmy_elements
 Remaining elements in the intersection operation. More...
 
struct GNUNET_CONTAINER_MultiHashMapIteratorfull_result_iter
 Iterator for sending the final set of my_elements to the client. More...
 
struct OperationStatenext
 Evaluate operations are held in a linked list. More...
 
struct OperationStateprev
 Evaluate operations are held in a linked list. More...
 
char * bf_data
 For multipart BF transmissions, we have to store the bloomfilter-data until we fully received it. More...
 
struct GNUNET_HashCode my_xor
 XOR of the keys of all of the elements (remaining) in my set. More...
 
struct GNUNET_HashCode other_xor
 XOR of the keys of all of the elements (remaining) in the other peer's set. More...
 
uint32_t bf_data_offset
 How many bytes of bf_data are valid? More...
 
uint32_t my_element_count
 Current element count contained within my_elements. More...
 
uint32_t bf_data_size
 size of the bloomfilter in bf_data. More...
 
uint32_t bf_bits_per_element
 size of the bloomfilter More...
 
uint32_t salt
 Salt currently used for BF construction (by us or the other peer, depending on where we are in the code). More...
 
enum IntersectionOperationPhase phase
 Current state of the operation. More...
 
unsigned int generation_created
 Generation in which the operation handle was created. More...
 
int client_done_sent
 Did we send the client that we are done? More...
 
int channel_death_expected
 Set whenever we reach the state where the death of the channel is perfectly find and should NOT result in the operation being cancelled. More...
 
struct StrataEstimatorse
 Copy of the set's strata estimator at the time of creation of this operation. More...
 
struct InvertibleBloomFilterremote_ibf
 The IBF we currently receive. More...
 
struct InvertibleBloomFilterlocal_ibf
 The IBF with the local set's element. More...
 
struct GNUNET_CONTAINER_MultiHashMap32key_to_element
 Maps unsalted IBF-Keys to elements. More...
 
enum UnionOperationPhase phase
 Current state of the operation. More...
 
unsigned int ibf_buckets_received
 Number of ibf buckets already received into the remote_ibf. More...
 
struct GNUNET_CONTAINER_MultiHashMapdemanded_hashes
 Hashes for elements that we have demanded from the other peer. More...
 
uint32_t salt_send
 Salt that we're using for sending IBFs. More...
 
uint32_t salt_receive
 Salt for the IBF we've received and that we're currently decoding. More...
 
uint32_t received_fresh
 Number of elements we received from the other peer that were not in the local set yet. More...
 
uint32_t received_total
 Total number of elements received from the other peer. More...
 
uint64_t initial_size
 Initial size of our set, just before the operation started. More...
 

Detailed Description

State of an evaluate operation with another peer.

Definition at line 82 of file gnunet-service-set_intersection.c.

Field Documentation

◆ remote_bf

struct GNUNET_CONTAINER_BloomFilter* OperationState::remote_bf

◆ local_bf

struct GNUNET_CONTAINER_BloomFilter* OperationState::local_bf

BF of the set's element.

Definition at line 92 of file gnunet-service-set_intersection.c.

Referenced by intersection_op_cancel(), iterator_bf_create(), process_bf(), and send_bloomfilter().

◆ my_elements

struct GNUNET_CONTAINER_MultiHashMap* OperationState::my_elements

◆ full_result_iter

struct GNUNET_CONTAINER_MultiHashMapIterator* OperationState::full_result_iter

Iterator for sending the final set of my_elements to the client.

Definition at line 103 of file gnunet-service-set_intersection.c.

Referenced by handle_intersection_p2p_done(), intersection_op_cancel(), process_bf(), and send_remaining_elements().

◆ next

struct OperationState* OperationState::next

Evaluate operations are held in a linked list.

Definition at line 108 of file gnunet-service-set_intersection.c.

◆ prev

struct OperationState* OperationState::prev

Evaluate operations are held in a linked list.

Definition at line 113 of file gnunet-service-set_intersection.c.

◆ bf_data

char* OperationState::bf_data

For multipart BF transmissions, we have to store the bloomfilter-data until we fully received it.

Definition at line 119 of file gnunet-service-set_intersection.c.

Referenced by handle_intersection_p2p_bf(), and send_bloomfilter().

◆ my_xor

struct GNUNET_HashCode OperationState::my_xor

XOR of the keys of all of the elements (remaining) in my set.

Always updated when elements are added or removed to my_elements.

Definition at line 126 of file gnunet-service-set_intersection.c.

Referenced by filter_all(), filtered_map_initialization(), handle_intersection_p2p_done(), initialize_map_unfiltered(), iterator_bf_reduce(), process_bf(), send_bloomfilter(), and send_p2p_done().

◆ other_xor

struct GNUNET_HashCode OperationState::other_xor

XOR of the keys of all of the elements (remaining) in the other peer's set.

Updated when we receive the other peer's Bloom filter.

Definition at line 133 of file gnunet-service-set_intersection.c.

Referenced by handle_intersection_p2p_bf(), and process_bf().

◆ bf_data_offset

uint32_t OperationState::bf_data_offset

How many bytes of bf_data are valid?

Definition at line 138 of file gnunet-service-set_intersection.c.

Referenced by handle_intersection_p2p_bf().

◆ my_element_count

uint32_t OperationState::my_element_count

◆ bf_data_size

uint32_t OperationState::bf_data_size

size of the bloomfilter in bf_data.

Definition at line 149 of file gnunet-service-set_intersection.c.

Referenced by handle_intersection_p2p_bf().

◆ bf_bits_per_element

uint32_t OperationState::bf_bits_per_element

size of the bloomfilter

Definition at line 154 of file gnunet-service-set_intersection.c.

Referenced by handle_intersection_p2p_bf().

◆ salt

uint32_t OperationState::salt

Salt currently used for BF construction (by us or the other peer, depending on where we are in the code).

Definition at line 160 of file gnunet-service-set_intersection.c.

Referenced by filtered_map_initialization(), get_ibf_key(), handle_intersection_p2p_bf(), iterator_bf_create(), iterator_bf_reduce(), and send_bloomfilter().

◆ phase [1/2]

enum IntersectionOperationPhase OperationState::phase

◆ generation_created

unsigned int OperationState::generation_created

Generation in which the operation handle was created.

Definition at line 171 of file gnunet-service-set_intersection.c.

◆ client_done_sent

int OperationState::client_done_sent

Did we send the client that we are done?

Definition at line 176 of file gnunet-service-set_intersection.c.

Referenced by handle_intersection_p2p_done(), and send_client_done().

◆ channel_death_expected

int OperationState::channel_death_expected

Set whenever we reach the state where the death of the channel is perfectly find and should NOT result in the operation being cancelled.

Definition at line 183 of file gnunet-service-set_intersection.c.

Referenced by finished_local_operations(), intersection_channel_death(), and send_p2p_done().

◆ se

struct StrataEstimator* OperationState::se

Copy of the set's strata estimator at the time of creation of this operation.

Definition at line 148 of file gnunet-service-set_union.c.

Referenced by handle_union_p2p_strata_estimator(), union_accept(), union_evaluate(), and union_op_cancel().

◆ remote_ibf

struct InvertibleBloomFilter* OperationState::remote_ibf

The IBF we currently receive.

Definition at line 153 of file gnunet-service-set_union.c.

Referenced by check_union_p2p_ibf(), decode_and_send(), handle_union_p2p_ibf(), and union_op_cancel().

◆ local_ibf

struct InvertibleBloomFilter* OperationState::local_ibf

The IBF with the local set's element.

Definition at line 158 of file gnunet-service-set_union.c.

Referenced by decode_and_send(), prepare_ibf(), send_ibf(), and union_op_cancel().

◆ key_to_element

struct GNUNET_CONTAINER_MultiHashMap32* OperationState::key_to_element

Maps unsalted IBF-Keys to elements.

Used as a multihashmap, the keys being the lower 32bit of the IBF-Key. Colliding IBF-Keys are linked.

Definition at line 165 of file gnunet-service-set_union.c.

Referenced by handle_union_p2p_full_done(), initialize_key_to_element(), op_get_element(), op_register_element(), prepare_ibf(), send_client_done(), send_client_element(), send_offers_for_key(), union_accept(), union_evaluate(), and union_op_cancel().

◆ phase [2/2]

enum UnionOperationPhase OperationState::phase

Current state of the operation.

Definition at line 170 of file gnunet-service-set_union.c.

◆ ibf_buckets_received

unsigned int OperationState::ibf_buckets_received

Number of ibf buckets already received into the remote_ibf.

Definition at line 180 of file gnunet-service-set_union.c.

Referenced by check_union_p2p_ibf(), and handle_union_p2p_ibf().

◆ demanded_hashes

struct GNUNET_CONTAINER_MultiHashMap* OperationState::demanded_hashes

Hashes for elements that we have demanded from the other peer.

Definition at line 185 of file gnunet-service-set_union.c.

Referenced by check_union_p2p_elements(), handle_union_p2p_elements(), handle_union_p2p_offer(), maybe_finish(), union_accept(), union_evaluate(), and union_op_cancel().

◆ salt_send

uint32_t OperationState::salt_send

Salt that we're using for sending IBFs.

Definition at line 190 of file gnunet-service-set_union.c.

Referenced by decode_and_send(), send_ibf(), union_accept(), and union_evaluate().

◆ salt_receive

uint32_t OperationState::salt_receive

Salt for the IBF we've received and that we're currently decoding.

Definition at line 195 of file gnunet-service-set_union.c.

Referenced by check_union_p2p_ibf(), decode_and_send(), handle_union_p2p_ibf(), union_accept(), and union_evaluate().

◆ received_fresh

uint32_t OperationState::received_fresh

Number of elements we received from the other peer that were not in the local set yet.

Definition at line 201 of file gnunet-service-set_union.c.

Referenced by handle_union_p2p_elements(), and handle_union_p2p_full_element().

◆ received_total

uint32_t OperationState::received_total

Total number of elements received from the other peer.

Definition at line 206 of file gnunet-service-set_union.c.

Referenced by handle_union_p2p_elements(), and handle_union_p2p_full_element().

◆ initial_size

uint64_t OperationState::initial_size

Initial size of our set, just before the operation started.

Definition at line 212 of file gnunet-service-set_union.c.

Referenced by handle_union_p2p_strata_estimator(), union_accept(), and union_evaluate().


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