|
My Project 2.4.4
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 |
| 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) |
| 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 64 of file infohash.h.
| typedef T::const_iterator dht::Hash< N >::const_iterator |
Definition at line 68 of file infohash.h.
| typedef T::iterator dht::Hash< N >::iterator |
Definition at line 67 of file infohash.h.
| using dht::Hash< N >::T = std::array<uint8_t, N> |
Definition at line 66 of file infohash.h.
|
inlinenoexcept |
Definition at line 70 of file infohash.h.
|
inline |
Definition at line 73 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 84 of file infohash.h.
|
inline |
Definition at line 91 of file infohash.h.
|
inline |
Definition at line 98 of file infohash.h.
|
inline |
Definition at line 99 of file infohash.h.
|
inline |
Definition at line 101 of file infohash.h.
|
inlinestatic |
Definition at line 162 of file infohash.h.
|
inlinestatic |
Find how many bits two ids have in common.
Definition at line 168 of file infohash.h.
|
inline |
Definition at line 97 of file infohash.h.
|
inline |
Definition at line 96 of file infohash.h.
|
inline |
Definition at line 100 of file infohash.h.
|
inlinestatic |
Definition at line 233 of file infohash.h.
|
inlinestatic |
Computes the hash from a given data buffer of size data_len.
Definition at line 240 of file infohash.h.
Definition at line 229 of file infohash.h.
|
inline |
Definition at line 206 of file infohash.h.
Definition at line 320 of file infohash.h.
Definition at line 334 of file infohash.h.
|
inline |
Find the lowest 1 bit in an id. Result will allways be lower than 8*N
Definition at line 149 of file infohash.h.
|
inline |
Definition at line 263 of file infohash.h.
|
inline |
Definition at line 269 of file infohash.h.
|
inlineexplicit |
Definition at line 132 of file infohash.h.
Definition at line 114 of file infohash.h.
Definition at line 116 of file infohash.h.
Definition at line 105 of file infohash.h.
|
inline |
Definition at line 142 of file infohash.h.
|
inline |
Definition at line 143 of file infohash.h.
Definition at line 124 of file infohash.h.
|
inline |
Definition at line 214 of file infohash.h.
|
inlinestaticconstexprnoexcept |
Definition at line 95 of file infohash.h.
| const char * dht::Hash< N >::to_c_str |
Definition at line 376 of file infohash.h.
|
inline |
Definition at line 221 of file infohash.h.
| std::string dht::Hash< N >::toString |
Definition at line 389 of file infohash.h.
|
inline |
Determine whether id1 or id2 is closer to this
Definition at line 193 of file infohash.h.
Definition at line 103 of file infohash.h.