void EnumLoop::__repeatImpl(LoopFunction* func) { ParametersMap* parametersMap = func->getParameters(); tCurrentBranch = 0; for (tIndex = 0; tIndex < tValueVector.size(); ++tIndex) { parametersMap->putNumber(tKey, tValueVector[tIndex]); this->__repeatBase(func); } }
void ExpLoop::__repeatImpl(LoopFunction* func) { ParametersMap* parametersMap = func->getParameters(); tCurrentBranch = 0; for (tValue = tMin; tValue < tMax; tValue *= tFactor) { parametersMap->putNumber(tKey, tValue); this->__repeatBase(func); } }
void JoinEnumLoop::__repeatImpl(LoopFunction* func) { ParametersMap* parametersMap = func->getParameters(); tCurrentBranch = 0; for (tIndex = 0; tIndex < tValueVector.size(); ++tIndex) { parametersMap->putNumber(tKey, tValueVector[tIndex]); Loop* currentLoop = tInnerLoops[tIndex]; if (currentLoop != NULL){ currentLoop->setCallerLoop(this); currentLoop->__repeatImpl(func); } else if (tInnerLoop != NULL) { tInnerLoop->setCallerLoop(this); tInnerLoop->__repeatImpl(func); } else { func->execute(this); } // It will not call to Loop::repeat__Base ++tCurrentBranch; } }