14 size_t size(sa_family_t family)
const {
return cache(family).count(); }
15 size_t size()
const {
return size(AF_INET) + size(AF_INET6); }
17 Sp<Node> getNode(
const InfoHash&
id, sa_family_t family);
18 Sp<Node> getNode(
const InfoHash&
id,
const SockAddr&, time_point now,
bool confirmed,
bool client =
false);
19 std::vector<Sp<Node>> getCachedNodes(
const InfoHash&
id, sa_family_t sa_f,
size_t count)
const;
28 NodeCache(std::mt19937_64& r)
33 class NodeMap :
private std::map<InfoHash, std::weak_ptr<Node>>
36 Sp<Node> getNode(
const InfoHash&
id);
38 const InfoHash&
id,
const SockAddr&, time_point now,
bool confirmed,
bool client, std::mt19937_64& rd);
39 std::vector<Sp<Node>> getCachedNodes(
const InfoHash&
id,
size_t count)
const;
43 size_t count()
const {
return size(); }
46 size_t cleanup_counter {0};
49 const NodeMap& cache(sa_family_t af)
const {
return af == AF_INET ? cache_4 : cache_6; }
50 NodeMap& cache(sa_family_t af) {
return af == AF_INET ? cache_4 : cache_6; }