5#include <ChimeraTK/Exception.h>
7namespace ChimeraTK::detail {
9 size_t CircularDependencyDetectionRecursionStopper::_globalScanCounter{0};
11 void CircularDependencyDetectionRecursionStopper::startNewScan() {
14 void CircularDependencyDetectionRecursionStopper::setRecursionDetected() {
15 _localScanCounter = _globalScanCounter;
17 bool CircularDependencyDetectionRecursionStopper::recursionDetected()
const {
18 if(_globalScanCounter == 0) {
19 throw ChimeraTK::logic_error(
20 "CircularDependencyDetectionRecursionStopper::recursionDetected() called without starting a scan.");
22 return _localScanCounter == _globalScanCounter;