My Project 1.7.4
C++ Distributed Hash Table
|
Namespaces | |
namespace | crypto |
namespace | log |
Classes | |
struct | Bucket |
struct | Config |
class | Dht |
class | DhtException |
class | DhtInterface |
class | DhtMessage |
class | DhtRunner |
class | EncryptedValue |
class | FieldValue |
Describes a value filter. More... | |
class | FieldValueIndex |
An index for field values. More... | |
class | Hash |
struct | HexMap |
class | IceCandidates |
class | ImMessage |
class | IpServiceAnnouncement |
struct | Logger |
struct | LogMethod |
struct | Node |
struct | NodeCache |
struct | NodeExport |
struct | NodeInfo |
struct | NodeStats |
class | Query |
Describes a query destined to another peer. More... | |
class | RateLimiter |
class | RoutingTable |
class | Scheduler |
Job scheduler. More... | |
class | SecureDht |
struct | SecureDhtConfig |
class | Select |
Serializable Value field selection. More... | |
class | SignedValue |
class | SockAddr |
struct | Socket |
class | SocketException |
class | TrustRequest |
class | TypeStore |
class | uniform_duration_distribution |
struct | Value |
struct | ValueType |
class | Where |
Serializable dht::Value filter. More... | |
Typedefs | |
using | ValuesExport = std::pair< InfoHash, Blob > |
using | QueryCallback = std::function< bool(const std::vector< std::shared_ptr< FieldValueIndex > > &fields)> |
using | GetCallback = std::function< bool(const std::vector< std::shared_ptr< Value > > &values)> |
using | ValueCallback = std::function< bool(const std::vector< std::shared_ptr< Value > > &values, bool expired)> |
using | GetCallbackSimple = std::function< bool(std::shared_ptr< Value > value)> |
using | ShutdownCallback = std::function< void()> |
using | CertificateStoreQuery = std::function< std::vector< std::shared_ptr< crypto::Certificate > >(const InfoHash &pk_id)> |
typedef bool(* | GetCallbackRaw) (std::shared_ptr< Value >, void *user_data) |
using | DoneCallback = std::function< void(bool success, const std::vector< std::shared_ptr< Node > > &nodes)> |
typedef void(* | DoneCallbackRaw) (bool, std::vector< std::shared_ptr< Node > > *, void *user_data) |
typedef void(* | ShutdownCallbackRaw) (void *user_data) |
typedef void(* | DoneCallbackSimpleRaw) (bool, void *user_data) |
typedef bool(* | FilterRaw) (const Value &, void *user_data) |
using | DoneCallbackSimple = std::function< void(bool success)> |
using | byte = uint8_t |
using | InfoHash = Hash< HASH_LEN > |
using | h256 = Hash< 32 > |
using | PkId = h256 |
using | Tid = uint32_t |
using | SocketCb = std::function< void(const Sp< Node > &, net::RequestAnswer &&)> |
using | NetId = uint32_t |
using | want_t = int_fast8_t |
template<class T > | |
using | Sp = std::shared_ptr< T > |
using | clock = std::chrono::steady_clock |
using | time_point = clock::time_point |
using | duration = clock::duration |
using | Blob = std::vector< uint8_t > |
using | StorePolicy = std::function< bool(InfoHash key, std::shared_ptr< Value > &value, const InfoHash &from, const SockAddr &addr)> |
using | EditPolicy = std::function< bool(InfoHash key, const std::shared_ptr< Value > &old_val, std::shared_ptr< Value > &new_val, const InfoHash &from, const SockAddr &addr)> |
Enumerations | |
enum class | NodeStatus { Disconnected , Connecting , Connected } |
enum class | ImStatus : uint8_t { NONE = 0 , TYPING , RECEIVED , READ } |
Functions | |
OPENDHT_PUBLIC GetCallbackSimple | bindGetCb (GetCallbackRaw raw_cb, void *user_data) |
OPENDHT_PUBLIC GetCallback | bindGetCb (GetCallbackSimple cb) |
OPENDHT_PUBLIC ShutdownCallback | bindShutdownCb (ShutdownCallbackRaw shutdown_cb_raw, void *user_data) |
OPENDHT_PUBLIC DoneCallback | bindDoneCb (DoneCallbackSimple donecb) |
OPENDHT_PUBLIC DoneCallback | bindDoneCb (DoneCallbackRaw raw_cb, void *user_data) |
OPENDHT_PUBLIC DoneCallbackSimple | bindDoneCbSimple (DoneCallbackSimpleRaw raw_cb, void *user_data) |
OPENDHT_PUBLIC Value::Filter | bindFilterRaw (FilterRaw raw_filter, void *user_data) |
template<size_t N> | |
std::ostream & | operator<< (std::ostream &s, const Hash< N > &h) |
template<size_t N> | |
std::istream & | operator>> (std::istream &s, Hash< N > &h) |
void | NOLOG (char const *, va_list) |
OPENDHT_PUBLIC std::string | print_addr (const sockaddr *sa, socklen_t slen) |
OPENDHT_PUBLIC std::string | print_addr (const sockaddr_storage &ss, socklen_t sslen) |
OPENDHT_PUBLIC bool | operator== (const SockAddr &a, const SockAddr &b) |
template<typename Key , typename Item , typename Condition > | |
void | erase_if (std::map< Key, Item > &map, const Condition &condition) |
OPENDHT_PUBLIC std::pair< std::string, std::string > | splitPort (const std::string &s) |
time_point | from_time_t (std::time_t t) |
std::time_t | to_time_t (time_point t) |
template<class DT > | |
static double | print_dt (DT d) |
OPENDHT_PUBLIC Blob | unpackBlob (msgpack::object &o) |
template<typename Type > | |
Blob | packMsg (const Type &t) |
template<typename Type > | |
Type | unpackMsg (Blob b) |
msgpack::unpacked | unpackMsg (Blob b) |
msgpack::object * | findMapValue (msgpack::object &map, const std::string &key) |
template<typename T , typename std::enable_if< std::is_base_of< Value::SerializableBase, T >::value, T >::type * = nullptr> | |
Value::Filter | getFilterSet (Value::Filter f) |
template<typename T , typename std::enable_if< std::is_base_of< Value::SerializableBase, T >::value, T >::type * = nullptr> | |
Value::Filter | getFilterSet () |
template<class T > | |
std::vector< T > | unpackVector (const std::vector< std::shared_ptr< Value > > &vals) |
Variables | |
static constexpr size_t | DEFAULT_STORAGE_LIMIT {1024 * 1024 * 64} |
OPENDHT_PUBLIC const std::array< std::reference_wrapper< const ValueType >, 5 > | DEFAULT_TYPES |
OPENDHT_PUBLIC const std::array< std::reference_wrapper< const ValueType >, 1 > | DEFAULT_INSECURE_TYPES |
OPENDHT_PUBLIC const HexMap | hex_map |
const InfoHash | zeroes {} |
static constexpr unsigned | TARGET_NODES {8} |
const ValueType | CERTIFICATE_TYPE |
static constexpr const size_t | MAX_VALUE_SIZE {1024 * 64} |
OpenDHT C++ namespace
using dht::Blob = typedef std::vector<uint8_t> |
using dht::byte = typedef uint8_t |
Definition at line 50 of file infohash.h.
using dht::CertificateStoreQuery = typedef std::function<std::vector<std::shared_ptr<crypto::Certificate> >(const InfoHash& pk_id)> |
Definition at line 126 of file callbacks.h.
using dht::DoneCallback = typedef std::function<void(bool success, const std::vector<std::shared_ptr<Node> >& nodes)> |
Definition at line 133 of file callbacks.h.
typedef void(* dht::DoneCallbackRaw) (bool, std::vector< std::shared_ptr< Node > > *, void *user_data) |
Definition at line 134 of file callbacks.h.
using dht::DoneCallbackSimple = typedef std::function<void(bool success)> |
Definition at line 139 of file callbacks.h.
typedef void(* dht::DoneCallbackSimpleRaw) (bool, void *user_data) |
Definition at line 136 of file callbacks.h.
using dht::EditPolicy = typedef std::function<bool(InfoHash key, const std::shared_ptr<Value>& old_val, std::shared_ptr<Value>& new_val, const InfoHash& from, const SockAddr& addr)> |
An edition policy is applied once to every incoming value storage requests, if a value already exists for this key and value id. If the policy returns false, the edition request is ignored. The default behavior is to deny edition (see {ValueType::DEFAULT_EDIT_POLICY}). Some {ValueType}s may override this behavior (e.g. SignedValue).
key | the key where the value is stored. |
old_val | the previously stored value. |
new_val | the new value to be stored. The value can be edited by the edit policy. |
from | id of the requesting node. |
form_addr | network address of the incoming request. |
from_len | network address lendth of the incoming request. |
typedef bool(* dht::FilterRaw) (const Value &, void *user_data) |
Definition at line 137 of file callbacks.h.
using dht::GetCallback = typedef std::function<bool(const std::vector<std::shared_ptr<Value> >& values)> |
Definition at line 121 of file callbacks.h.
typedef bool(* dht::GetCallbackRaw) (std::shared_ptr< Value >, void *user_data) |
Definition at line 128 of file callbacks.h.
using dht::GetCallbackSimple = typedef std::function<bool(std::shared_ptr<Value> value)> |
Definition at line 123 of file callbacks.h.
Definition at line 269 of file infohash.h.
using dht::InfoHash = typedef Hash<HASH_LEN> |
Definition at line 268 of file infohash.h.
Definition at line 270 of file infohash.h.
using dht::QueryCallback = typedef std::function<bool(const std::vector<std::shared_ptr<FieldValueIndex> >& fields)> |
Definition at line 120 of file callbacks.h.
using dht::ShutdownCallback = typedef std::function<void()> |
Definition at line 124 of file callbacks.h.
typedef void(* dht::ShutdownCallbackRaw) (void *user_data) |
Definition at line 135 of file callbacks.h.
using dht::SocketCb = typedef std::function<void(const Sp<Node>&, net::RequestAnswer&&)> |
using dht::Sp = typedef std::shared_ptr<T> |
using dht::StorePolicy = typedef std::function<bool(InfoHash key, std::shared_ptr<Value>& value, const InfoHash& from, const SockAddr& addr)> |
A storage policy is applied once to every incoming value storage requests. If the policy returns false, the value is dropped.
key | the key where the storage is requested. |
value | the value to be stored. The value can be edited by the storage policy. |
from | id of the requesting node. |
form_addr | network address of the incoming request. |
from_len | network address lendth of the incoming request. |
using dht::ValueCallback = typedef std::function<bool(const std::vector<std::shared_ptr<Value> >& values, bool expired)> |
Definition at line 122 of file callbacks.h.
Definition at line 118 of file callbacks.h.
|
strong |
Definition at line 25 of file default_types.h.
|
strong |
Current status of a DHT node.
Definition at line 41 of file callbacks.h.
void dht::erase_if | ( | std::map< Key, Item > & | map, |
const Condition & | condition | ||
) |
Value::Filter dht::getFilterSet | ( | ) |
Value::Filter dht::getFilterSet | ( | Value::Filter | f | ) |
|
inline |
Dummy function used to disable logging
Definition at line 38 of file log_enable.h.
std::ostream & dht::operator<< | ( | std::ostream & | s, |
const Hash< N > & | h | ||
) |
Definition at line 273 of file infohash.h.
std::istream & dht::operator>> | ( | std::istream & | s, |
Hash< N > & | h | ||
) |
Definition at line 280 of file infohash.h.
Blob dht::packMsg | ( | const Type & | t | ) |
|
static |
OPENDHT_PUBLIC std::pair< std::string, std::string > dht::splitPort | ( | const std::string & | s | ) |
Split "[host]:port" or "host:port" to pair<"host", "port">.
OPENDHT_PUBLIC Blob dht::unpackBlob | ( | msgpack::object & | o | ) |
Provides backward compatibility with msgpack 1.0
std::vector< T > dht::unpackVector | ( | const std::vector< std::shared_ptr< Value > > & | vals | ) |
const ValueType dht::CERTIFICATE_TYPE |
Definition at line 352 of file securedht.h.
|
staticconstexpr |
Definition at line 116 of file callbacks.h.
|
staticconstexpr |
|
staticconstexpr |
Definition at line 26 of file routing_table.h.
const InfoHash dht::zeroes {} |
Definition at line 361 of file infohash.h.