18 #include <unordered_map> 19 #include <unordered_set> 21 #include <glog/logging.h> 24 namespace observer_detail {
26 template <
typename NodeId>
28 using NodeSet = std::unordered_set<NodeId>;
39 dfs(visitedNodes, to);
40 if (visitedNodes.count(from)) {
45 DCHECK_EQ(nodes.count(to), 0u);
53 DCHECK(nodes.count(to));
64 if (visitedNodes.count(node)) {
68 visitedNodes.insert(node);
74 for (
const auto&
to :
edges_[node]) {
75 dfs(visitedNodes,
to);
79 std::unordered_map<NodeId, NodeSet>
edges_;
void dfs(NodeSet &visitedNodes, NodeId node)
—— Concurrent Priority Queue Implementation ——
std::unordered_map< NodeId, NodeSet > edges_
void removeEdge(NodeId from, NodeId to)
std::enable_if< detail::is_chrono_conversion< Tgt, Src >::value, Tgt >::type to(const Src &value)
std::unordered_set< NodeId > NodeSet
PUSHMI_INLINE_VAR constexpr struct folly::pushmi::operators::from_fn from
bool addEdge(NodeId from, NodeId to)