| 2303 | } |
| 2304 | |
| 2305 | bool TxGraphImpl::Exists(const Ref& arg, Level level_select) noexcept |
| 2306 | { |
| 2307 | if (GetRefGraph(arg) == nullptr) return false; |
| 2308 | Assume(GetRefGraph(arg) == this); |
| 2309 | size_t level = GetSpecifiedLevel(level_select); |
| 2310 | // Make sure the transaction isn't scheduled for removal. |
| 2311 | ApplyRemovals(level); |
| 2312 | auto cluster = FindCluster(GetRefIndex(arg), level); |
| 2313 | return cluster != nullptr; |
| 2314 | } |
| 2315 | |
| 2316 | void GenericClusterImpl::GetAncestorRefs(const TxGraphImpl& graph, std::span<std::pair<Cluster*, DepGraphIndex>>& args, std::vector<TxGraph::Ref*>& output) noexcept |
| 2317 | { |