My Project 3.2.0
C++ Distributed Hash Table
|
#include <infohash.h>
Public Types | |
using | T = std::array<uint8_t, N> |
typedef T::iterator | iterator |
typedef T::const_iterator | const_iterator |
Public Member Functions | |
Hash (const uint8_t *h, size_t data_len) | |
Hash (std::string_view hex) | |
Hash (const msgpack::object &o) | |
const uint8_t * | data () const |
uint8_t * | data () |
iterator | begin () |
const_iterator | cbegin () const |
iterator | end () |
const_iterator | cend () const |
bool | operator== (const Hash &h) const |
bool | operator!= (const Hash &h) const |
bool | operator< (const Hash &o) const |
Hash | operator^ (const Hash &o) const |
operator bool () const | |
uint8_t & | operator[] (size_t index) |
const uint8_t & | operator[] (size_t index) const |
int | lowbit () const |
int | xorCmp (const Hash &id1, const Hash &id2) const |
bool | getBit (unsigned nbit) const |
void | setBit (unsigned nbit, bool b) |
double | toFloat () const |
std::string_view | to_view () const |
const char * | to_c_str () const |
std::string | toString () const |
template<typename Packer> | |
void | msgpack_pack (Packer &pk) const |
void | msgpack_unpack (msgpack::object o) |
template<typename Rd> | |
Hash< N > | getRandom (Rd &rdev) |
Static Public Member Functions | |
static constexpr size_t | size () noexcept |
static constexpr Hash | zero () noexcept |
static int | cmp (const Hash &id1, const Hash &id2) |
static unsigned | commonBits (const Hash &id1, const Hash &id2) |
static Hash | get (std::string_view data) |
static Hash | get (const std::vector< uint8_t > &data) |
template<size_t H> | |
static Hash | get (const Hash< H > &o) |
static Hash | get (const uint8_t *data, size_t data_len) |
static Hash | getRandom () |
template<typename Rd> | |
static Hash | getRandom (Rd &) |
Friends | |
template<size_t M> | |
OPENDHT_PUBLIC friend std::ostream & | operator<< (std::ostream &s, const Hash< M > &h) |
template<size_t M> | |
OPENDHT_PUBLIC friend std::istream & | operator>> (std::istream &s, Hash< M > &h) |
Represents an Hash, a byte array of N bytes. Hashes identify nodes and values in the Dht.
Definition at line 66 of file infohash.h.
typedef T::const_iterator dht::Hash< N >::const_iterator |
Definition at line 70 of file infohash.h.
typedef T::iterator dht::Hash< N >::iterator |
Definition at line 69 of file infohash.h.
using dht::Hash< N >::T = std::array<uint8_t, N> |
Definition at line 68 of file infohash.h.
|
inlinenoexcept |
Definition at line 72 of file infohash.h.
|
inline |
Definition at line 75 of file infohash.h.
|
inlineexplicit |
Constructor from an hexadecimal string (without "0x"). hex must be at least 2.HASH_LEN characters long. If too long, only the first 2.HASH_LEN characters are read.
Definition at line 86 of file infohash.h.
|
inline |
Definition at line 93 of file infohash.h.
|
inline |
Definition at line 100 of file infohash.h.
|
inline |
Definition at line 101 of file infohash.h.
|
inline |
Definition at line 103 of file infohash.h.
|
inlinestatic |
Definition at line 158 of file infohash.h.
|
inlinestatic |
Find how many bits two ids have in common.
Definition at line 164 of file infohash.h.
|
inline |
Definition at line 99 of file infohash.h.
|
inline |
Definition at line 98 of file infohash.h.
|
inline |
Definition at line 102 of file infohash.h.
|
inlinestatic |
Definition at line 234 of file infohash.h.
|
inlinestatic |
Definition at line 229 of file infohash.h.
|
inlinestatic |
Computes the hash from a given data buffer of size data_len.
Definition at line 241 of file infohash.h.
Definition at line 225 of file infohash.h.
|
inline |
Definition at line 202 of file infohash.h.
Definition at line 323 of file infohash.h.
Definition at line 337 of file infohash.h.
|
inline |
Find the lowest 1 bit in an id. Result will allways be lower than 8*N
Definition at line 145 of file infohash.h.
|
inline |
Definition at line 266 of file infohash.h.
|
inline |
Definition at line 272 of file infohash.h.
|
inlineexplicit |
Definition at line 128 of file infohash.h.
Definition at line 110 of file infohash.h.
Definition at line 112 of file infohash.h.
Definition at line 107 of file infohash.h.
|
inline |
Definition at line 138 of file infohash.h.
|
inline |
Definition at line 139 of file infohash.h.
Definition at line 120 of file infohash.h.
|
inline |
Definition at line 210 of file infohash.h.
|
inlinestaticconstexprnoexcept |
Definition at line 97 of file infohash.h.
const char * dht::Hash< N >::to_c_str | ( | ) | const |
Definition at line 379 of file infohash.h.
|
inline |
Returns view to thread-allocated memory, only valid until the next call to this function.
Definition at line 260 of file infohash.h.
|
inline |
Definition at line 217 of file infohash.h.
std::string dht::Hash< N >::toString | ( | ) | const |
Definition at line 392 of file infohash.h.
|
inline |
Determine whether id1 or id2 is closer to this
Definition at line 189 of file infohash.h.
Definition at line 105 of file infohash.h.