Changeset View
Changeset View
Standalone View
Standalone View
src/net.h
Show First 20 Lines • Show All 178 Lines • ▼ Show 20 Lines | public: | ||||
bool ForNode(NodeId id, std::function<bool(CNode *pnode)> func); | bool ForNode(NodeId id, std::function<bool(CNode *pnode)> func); | ||||
void PushMessage(CNode *pnode, CSerializedNetMsg &&msg); | void PushMessage(CNode *pnode, CSerializedNetMsg &&msg); | ||||
template <typename Callable> void ForEachNode(Callable &&func) { | template <typename Callable> void ForEachNode(Callable &&func) { | ||||
LOCK(cs_vNodes); | LOCK(cs_vNodes); | ||||
for (auto &&node : vNodes) { | for (auto &&node : vNodes) { | ||||
if (NodeFullyConnected(node)) func(node); | if (NodeFullyConnected(node)) { | ||||
func(node); | |||||
} | |||||
} | } | ||||
}; | }; | ||||
template <typename Callable> void ForEachNode(Callable &&func) const { | template <typename Callable> void ForEachNode(Callable &&func) const { | ||||
LOCK(cs_vNodes); | LOCK(cs_vNodes); | ||||
for (auto &&node : vNodes) { | for (auto &&node : vNodes) { | ||||
if (NodeFullyConnected(node)) func(node); | if (NodeFullyConnected(node)) { | ||||
func(node); | |||||
} | |||||
} | } | ||||
}; | }; | ||||
template <typename Callable, typename CallableAfter> | template <typename Callable, typename CallableAfter> | ||||
void ForEachNodeThen(Callable &&pre, CallableAfter &&post) { | void ForEachNodeThen(Callable &&pre, CallableAfter &&post) { | ||||
LOCK(cs_vNodes); | LOCK(cs_vNodes); | ||||
for (auto &&node : vNodes) { | for (auto &&node : vNodes) { | ||||
if (NodeFullyConnected(node)) pre(node); | if (NodeFullyConnected(node)) { | ||||
pre(node); | |||||
} | |||||
} | } | ||||
post(); | post(); | ||||
}; | }; | ||||
template <typename Callable, typename CallableAfter> | template <typename Callable, typename CallableAfter> | ||||
void ForEachNodeThen(Callable &&pre, CallableAfter &&post) const { | void ForEachNodeThen(Callable &&pre, CallableAfter &&post) const { | ||||
LOCK(cs_vNodes); | LOCK(cs_vNodes); | ||||
for (auto &&node : vNodes) { | for (auto &&node : vNodes) { | ||||
if (NodeFullyConnected(node)) pre(node); | if (NodeFullyConnected(node)) { | ||||
pre(node); | |||||
} | |||||
} | } | ||||
post(); | post(); | ||||
}; | }; | ||||
// Addrman functions | // Addrman functions | ||||
size_t GetAddressCount() const; | size_t GetAddressCount() const; | ||||
void SetServices(const CService &addr, ServiceFlags nServices); | void SetServices(const CService &addr, ServiceFlags nServices); | ||||
void MarkAddressGood(const CAddress &addr); | void MarkAddressGood(const CAddress &addr); | ||||
▲ Show 20 Lines • Show All 631 Lines • Show Last 20 Lines |