48 unsigned good_nodes {0},
52 unsigned table_depth {0};
53 unsigned getKnownNodes()
const {
return good_nodes + dubious_nodes; }
54 std::string toString()
const;
60 Json::Value toJson()
const;
65 MSGPACK_DEFINE_MAP(good_nodes, dubious_nodes, cached_nodes, incoming_nodes, table_depth)
78 Json::Value toJson()
const;
80 explicit NodeInfo(
const Json::Value& v);
83 MSGPACK_DEFINE_MAP(
id, node_id, ipv4, ipv6)
116static constexpr size_t DEFAULT_STORAGE_LIMIT {1024 * 1024 * 64};
118using ValuesExport = std::pair<InfoHash, Blob>;
120using QueryCallback = std::function<bool(
const std::vector<std::shared_ptr<FieldValueIndex>>& fields)>;
121using GetCallback = std::function<bool(
const std::vector<std::shared_ptr<Value>>& values)>;
122using ValueCallback = std::function<bool(
const std::vector<std::shared_ptr<Value>>& values,
bool expired)>;
123using GetCallbackSimple = std::function<bool(std::shared_ptr<Value> value)>;
124using ShutdownCallback = std::function<void()>;
126using CertificateStoreQuery = std::function<std::vector<std::shared_ptr<crypto::Certificate>>(
const InfoHash& pk_id)>;
128typedef bool (*GetCallbackRaw)(std::shared_ptr<Value>,
void *user_data);
130OPENDHT_PUBLIC GetCallbackSimple bindGetCb(GetCallbackRaw raw_cb,
void* user_data);
131OPENDHT_PUBLIC GetCallback bindGetCb(GetCallbackSimple cb);
133using DoneCallback = std::function<void(
bool success,
const std::vector<std::shared_ptr<Node>>& nodes)>;
134typedef void (*DoneCallbackRaw)(bool, std::vector<std::shared_ptr<Node>>*,
void *user_data);
135typedef void (*ShutdownCallbackRaw)(
void *user_data);
136typedef void (*DoneCallbackSimpleRaw)(bool,
void *user_data);
137typedef bool (*FilterRaw)(
const Value&,
void *user_data);
139using DoneCallbackSimple = std::function<void(
bool success)>;
141OPENDHT_PUBLIC ShutdownCallback bindShutdownCb(ShutdownCallbackRaw shutdown_cb_raw,
void* user_data);
142OPENDHT_PUBLIC DoneCallback bindDoneCb(DoneCallbackSimple donecb);
143OPENDHT_PUBLIC DoneCallback bindDoneCb(DoneCallbackRaw raw_cb,
void* user_data);
144OPENDHT_PUBLIC DoneCallbackSimple bindDoneCbSimple(DoneCallbackSimpleRaw raw_cb,
void* user_data);
145OPENDHT_PUBLIC Value::Filter bindFilterRaw(FilterRaw raw_filter,
void* user_data);