|
My Project 3.7.7
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 | |
| constexpr | Hash (const uint8_t *h, size_t data_len) |
| constexpr | Hash (std::string_view hex) |
| Hash (const msgpack::object &o) | |
| constexpr const uint8_t * | data () const |
| uint8_t * | data () |
| iterator | begin () |
| const_iterator | cbegin () const |
| iterator | end () |
| const_iterator | cend () const |
| constexpr bool | operator== (const Hash &h) const |
| constexpr bool | operator!= (const Hash &h) const |
| constexpr bool | operator< (const Hash &o) const |
| constexpr Hash | operator^ (const Hash &o) const |
| constexpr | operator bool () const |
| uint8_t & | operator[] (size_t index) |
| constexpr const uint8_t & | operator[] (size_t index) const |
| constexpr int | lowbit () const |
| constexpr int | xorCmp (const Hash &id1, const Hash &id2) const |
| constexpr 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 constexpr 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> | |
| std::ostream & | operator<< (std::ostream &s, const Hash< M > &h) |
| template<size_t M> | |
| 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 49 of file infohash.h.
| typedef T::const_iterator dht::Hash< N >::const_iterator |
Definition at line 54 of file infohash.h.
| typedef T::iterator dht::Hash< N >::iterator |
Definition at line 53 of file infohash.h.
| using dht::Hash< N >::T = std::array<uint8_t, N> |
Definition at line 52 of file infohash.h.
|
inlineconstexprnoexcept |
Definition at line 56 of file infohash.h.
|
inlineconstexpr |
Definition at line 59 of file infohash.h.
|
inlineexplicitconstexpr |
Constructor from an hexadecimal string (without "0x"). hex must be at least 2.N characters long. If too long, only the first 2.N characters are read.
Definition at line 67 of file infohash.h.
|
inline |
Definition at line 71 of file infohash.h.
|
inline |
Definition at line 76 of file infohash.h.
|
inline |
Definition at line 77 of file infohash.h.
|
inline |
Definition at line 79 of file infohash.h.
|
inlinestatic |
Definition at line 156 of file infohash.h.
|
inlinestaticconstexpr |
Find how many bits two ids have in common.
Definition at line 162 of file infohash.h.
|
inline |
Definition at line 75 of file infohash.h.
|
inlineconstexpr |
Definition at line 74 of file infohash.h.
|
inline |
Definition at line 78 of file infohash.h.
Definition at line 225 of file infohash.h.
|
inlinestatic |
Definition at line 222 of file infohash.h.
|
inlinestatic |
Computes the hash from a given data buffer of size data_len.
Definition at line 233 of file infohash.h.
|
inlinestatic |
Definition at line 220 of file infohash.h.
|
inlineconstexpr |
Definition at line 197 of file infohash.h.
|
static |
Definition at line 346 of file infohash.h.
Definition at line 360 of file infohash.h.
|
inlineconstexpr |
Find the lowest 1 bit in an id. Result will allways be lower than 8*N
Definition at line 141 of file infohash.h.
|
inline |
Definition at line 258 of file infohash.h.
|
inline |
Definition at line 264 of file infohash.h.
|
inlineexplicitconstexpr |
Definition at line 115 of file infohash.h.
|
inlineconstexpr |
Definition at line 95 of file infohash.h.
|
inlineconstexpr |
Definition at line 97 of file infohash.h.
|
inlineconstexpr |
Definition at line 83 of file infohash.h.
|
inline |
Definition at line 134 of file infohash.h.
|
inlineconstexpr |
Definition at line 135 of file infohash.h.
|
inlineconstexpr |
Definition at line 106 of file infohash.h.
|
inline |
Definition at line 204 of file infohash.h.
|
inlinestaticconstexprnoexcept |
Definition at line 73 of file infohash.h.
| const char * dht::Hash< N >::to_c_str | ( | ) | const |
Definition at line 421 of file infohash.h.
|
inline |
Returns view to thread-allocated memory, only valid until the next call to this function.
Definition at line 252 of file infohash.h.
|
inline |
Definition at line 211 of file infohash.h.
| std::string dht::Hash< N >::toString | ( | ) | const |
Definition at line 435 of file infohash.h.
|
inlineconstexpr |
Determine whether id1 or id2 is closer to this
Definition at line 185 of file infohash.h.
|
inlinestaticconstexprnoexcept |
Definition at line 81 of file infohash.h.