applying callDetectorMember in getTimerLeft

This commit is contained in:
Erik Frojdh 2018-05-29 16:08:08 +02:00
parent 7e2f2cd31b
commit 27ebd9c713

View File

@ -1833,30 +1833,15 @@ int64_t multiSlsDetector::setTimer(timerIndex index, int64_t t)
} }
int64_t multiSlsDetector::getTimeLeft(timerIndex index) int64_t multiSlsDetector::getTimeLeft(timerIndex index)
{ {
int i; int64_t ret = -100;
int64_t ret1 = -100, ret;
if (thisMultiDetector->masterPosition >= 0) if (thisMultiDetector->masterPosition >= 0)
if (detectors[thisMultiDetector->masterPosition]) { if (detectors[thisMultiDetector->masterPosition]) {
ret1 = detectors[thisMultiDetector->masterPosition]->getTimeLeft(index); ret = detectors[thisMultiDetector->masterPosition]->getTimeLeft(index);
if (detectors[thisMultiDetector->masterPosition]->getErrorMask()) if (detectors[thisMultiDetector->masterPosition]->getErrorMask())
setErrorMask(getErrorMask() | (1 << thisMultiDetector->masterPosition)); setErrorMask(getErrorMask() | (1 << thisMultiDetector->masterPosition));
return ret1; return ret;
} }
return callDetectorMember(&slsDetector::getTimeLeft, index);
for (i = 0; i < thisMultiDetector->numberOfDetectors; ++i) {
if (detectors[i]) {
ret = detectors[i]->getTimeLeft(index);
if (detectors[i]->getErrorMask())
setErrorMask(getErrorMask() | (1 << i));
if (ret1 == -100)
ret1 = ret;
else if (ret != ret1)
ret1 = -1;
}
}
return ret1;
} }
int multiSlsDetector::setStoragecellStart(int pos) int multiSlsDetector::setStoragecellStart(int pos)
@ -3337,20 +3322,6 @@ void multiSlsDetector::setErrorMaskFromAllDetectors()
} }
} }
template <typename T>
bool allElementsEqual(const std::vector<T>& v)
{
if (v.empty())
return true;
const T& first = v[0];
for (int i = 1; i != v.size(); ++i) {
if (v[i] != first)
return false;
}
return true;
}
template <typename T> template <typename T>
T multiSlsDetector::callDetectorMember(T (slsDetector::*somefunc)()) T multiSlsDetector::callDetectorMember(T (slsDetector::*somefunc)())
{ {