Invertible Bloom Lookup Table (Invertible Bloom Filter)
More...
#include <iblt.hpp>
Invertible Bloom Lookup Table (Invertible Bloom Filter)
Used by Partial Sync (PartialProducer) and Full Sync (Full Producer)
Definition at line 80 of file iblt.hpp.
psync::IBLT::IBLT |
( |
size_t |
expectedNumEntries | ) |
|
|
explicit |
constructor
- Parameters
-
expectedNumEntries | the expected number of entries in the IBLT |
Definition at line 78 of file iblt.cpp.
void psync::IBLT::appendToName |
( |
ndn::Name & |
name | ) |
const |
Appends self to name.
Encodes our hash table from uint32_t vector to uint8_t vector We create a uin8_t vector 12 times the size of uint32_t vector We put the first count in first 4 cells, keySum in next 4, and keyCheck in next 4. Repeat for all the other cells of the hash table. Then we append this uint8_t vector to the name.
- Parameters
-
Definition at line 229 of file iblt.cpp.
void psync::IBLT::erase |
( |
uint32_t |
key | ) |
|
std::vector< uint32_t > psync::IBLT::extractValueFromName |
( |
const ndn::name::Component & |
ibltName | ) |
const |
Extracts IBLT from name component.
Converts the name into a uint8_t vector which is then decoded to a a uint32_t vector.
- Parameters
-
ibltName | IBLT represented as a Name Component |
- Returns
- a uint32_t vector representing the hash table of the IBLT
Definition at line 272 of file iblt.cpp.
void psync::IBLT::initialize |
( |
const ndn::name::Component & |
ibltName | ) |
|
Populate the hash table using the vector representation of IBLT.
- Parameters
-
ibltName | the Component representation of IBLT |
- Exceptions
-
Error | if size of values is not compatible with this IBF |
Definition at line 92 of file iblt.cpp.
void psync::IBLT::insert |
( |
uint32_t |
key | ) |
|
bool psync::IBLT::listEntries |
( |
std::set< uint32_t > & |
positive, |
|
|
std::set< uint32_t > & |
negative |
|
) |
| const |
List all the entries in the IBLT.
This is called on a difference of two IBLTs: ownIBLT - rcvdIBLT Entries listed in positive are in ownIBLT but not in rcvdIBLT Entries listed in negative are in rcvdIBLT but not in ownIBLT
- Parameters
-
- Returns
- true if decoding is complete successfully
Definition at line 138 of file iblt.cpp.
IBLT psync::IBLT::operator- |
( |
const IBLT & |
other | ) |
const |