My Project 1.7.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 (const std::string &hex) | |
Hash (const msgpack::object &o) | |
size_t | size () const |
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 |
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) |
Static Public Member Functions | |
static int | cmp (const Hash &id1, const Hash &id2) |
static unsigned | commonBits (const Hash &id1, const Hash &id2) |
static Hash | get (const std::string &data) |
static Hash | get (const std::vector< uint8_t > &data) |
static Hash | get (const uint8_t *data, size_t data_len) |
static Hash | getRandom () |
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 InfoHash. An InfoHash is a byte array of HASH_LEN bytes. InfoHashes identify nodes and values in the Dht.
Definition at line 62 of file infohash.h.
typedef T::const_iterator dht::Hash< N >::const_iterator |
Definition at line 66 of file infohash.h.
typedef T::iterator dht::Hash< N >::iterator |
Definition at line 65 of file infohash.h.
using dht::Hash< N >::T = std::array<uint8_t, N> |
Definition at line 64 of file infohash.h.
|
inline |
Definition at line 68 of file infohash.h.
|
inline |
Definition at line 71 of file infohash.h.
|
explicit |
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 290 of file infohash.h.
|
inline |
Definition at line 84 of file infohash.h.
|
inline |
Definition at line 91 of file infohash.h.
|
inline |
Definition at line 92 of file infohash.h.
|
inline |
Definition at line 94 of file infohash.h.
|
inlinestatic |
Forget about the `‘XOR-metric’'. An id is just a path from the root of the tree, so bits are numbered from the start.
Definition at line 149 of file infohash.h.
|
inlinestatic |
Find how many bits two ids have in common.
Definition at line 155 of file infohash.h.
|
inline |
Definition at line 90 of file infohash.h.
|
inline |
Definition at line 89 of file infohash.h.
|
inline |
Definition at line 93 of file infohash.h.
Definition at line 220 of file infohash.h.
|
inlinestatic |
Definition at line 224 of file infohash.h.
|
inlinestatic |
Computes the hash from a given data buffer of size data_len.
Definition at line 231 of file infohash.h.
|
inline |
Definition at line 197 of file infohash.h.
Definition at line 316 of file infohash.h.
|
inline |
Find the lowest 1 bit in an id. Result will allways be lower than 8*N
Definition at line 132 of file infohash.h.
|
inline |
Definition at line 251 of file infohash.h.
|
inline |
Definition at line 257 of file infohash.h.
|
inlineexplicit |
Definition at line 115 of file infohash.h.
Definition at line 105 of file infohash.h.
Definition at line 107 of file infohash.h.
Definition at line 96 of file infohash.h.
|
inline |
Definition at line 125 of file infohash.h.
|
inline |
Definition at line 126 of file infohash.h.
|
inline |
Definition at line 205 of file infohash.h.
|
inline |
Definition at line 88 of file infohash.h.
const char * dht::Hash< N >::to_c_str |
Definition at line 343 of file infohash.h.
|
inline |
Definition at line 212 of file infohash.h.
std::string dht::Hash< N >::toString |
Definition at line 356 of file infohash.h.
|
inline |
Determine whether id1 or id2 is closer to this
Definition at line 180 of file infohash.h.