LibreOffice Module sc (master)
1
|
#include <recursionhelper.hxx>
Private Types | |
typedef ::std::stack< ScFormulaCell * > | ScRecursionInIterationStack |
Private Member Functions | |
void | Init () |
void | ResetIteration () |
Private Attributes | |
ScFormulaRecursionList | aRecursionFormulas |
ScFormulaRecursionList::iterator | aInsertPos |
ScFormulaRecursionList::iterator | aLastIterationStart |
ScRecursionInIterationStack | aRecursionInIterationStack |
std::vector< ScFormulaCell * > | aFGList |
std::vector< bool > | aInDependencyEvalMode |
sal_uInt16 | nRecursionCount |
sal_uInt16 | nIteration |
sal_uInt16 | nDependencyComputationLevel |
bool | bInRecursionReturn |
bool | bDoingRecursion |
bool | bInIterationReturn |
bool | bConverging |
bool | bGroupsIndependent |
bool | bAbortingDependencyComputation |
std::vector< ScFormulaCell * > | aTemporaryGroupCells |
o3tl::sorted_vector< ScFormulaCellGroup * > * | pFGSet |
Definition at line 46 of file recursionhelper.hxx.
|
private |
Definition at line 48 of file recursionhelper.hxx.
ScRecursionHelper::ScRecursionHelper | ( | ) |
Definition at line 31 of file recursionhelper.cxx.
References bGroupsIndependent, Init(), and pFGSet.
void ScRecursionHelper::AbortDependencyComputation | ( | ) |
Definition at line 199 of file recursionhelper.cxx.
References assert(), bAbortingDependencyComputation, and nDependencyComputationLevel.
Referenced by ScFormulaCell::Interpret().
void ScRecursionHelper::AddTemporaryGroupCell | ( | ScFormulaCell * | cell | ) |
Definition at line 216 of file recursionhelper.cxx.
References aTemporaryGroupCells.
bool ScRecursionHelper::AnyCycleMemberInDependencyEvalMode | ( | const ScFormulaCell * | pCell | ) |
Definition at line 153 of file recursionhelper.cxx.
References aFGList, aInDependencyEvalMode, assert(), and ScFormulaCell::GetSeenInPath().
Referenced by ScFormulaCell::Interpret().
bool ScRecursionHelper::AnyParentFGInCycle | ( | ) |
Definition at line 178 of file recursionhelper.cxx.
References aFGList.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 132 of file recursionhelper.hxx.
References bGroupsIndependent.
Referenced by ScCheckIndependentFGGuard::AreGroupsIndependent(), ScFormulaCell::CheckComputeDependencies(), ScFormulaCell::Interpret(), lcl_EvalDirty(), and lcl_InterpretSpan().
bool ScRecursionHelper::CheckFGIndependence | ( | ScFormulaCellGroup * | pFG | ) |
Definition at line 231 of file recursionhelper.cxx.
References bGroupsIndependent, o3tl::sorted_vector< Value, Compare, Find, class >::count(), and pFGSet.
Referenced by ScFormulaCell::Interpret().
void ScRecursionHelper::CleanTemporaryGroupCells | ( | ) |
Definition at line 221 of file recursionhelper.cxx.
References aTemporaryGroupCells, and GetRecursionCount().
void ScRecursionHelper::Clear | ( | ) |
Definition at line 95 of file recursionhelper.cxx.
References aRecursionFormulas, aRecursionInIterationStack, and Init().
Referenced by ScFormulaCell::Interpret().
void ScRecursionHelper::DecDepComputeLevel | ( | ) |
Definition at line 210 of file recursionhelper.cxx.
References bAbortingDependencyComputation, and nDependencyComputationLevel.
Referenced by ScFormulaGroupDependencyComputeGuard::~ScFormulaGroupDependencyComputeGuard().
|
inline |
Definition at line 78 of file recursionhelper.hxx.
References nRecursionCount.
void ScRecursionHelper::EndIteration | ( | ) |
Definition at line 79 of file recursionhelper.cxx.
References aRecursionFormulas, GetIterationEnd(), GetIterationStart(), and ResetIteration().
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 95 of file recursionhelper.hxx.
References bConverging.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 79 of file recursionhelper.hxx.
References nDependencyComputationLevel.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 94 of file recursionhelper.hxx.
References nIteration.
Referenced by ScFormulaCell::Interpret(), and ScFormulaCell::InterpretTail().
ScFormulaRecursionList::iterator ScRecursionHelper::GetIterationEnd | ( | ) |
Definition at line 90 of file recursionhelper.cxx.
References aRecursionFormulas.
Referenced by EndIteration(), Init(), ScFormulaCell::Interpret(), and ResetIteration().
ScFormulaRecursionList::iterator ScRecursionHelper::GetIterationStart | ( | ) |
Definition at line 85 of file recursionhelper.cxx.
References aRecursionFormulas.
Referenced by EndIteration(), ScFormulaCell::Interpret(), ResumeIteration(), and StartIteration().
|
inline |
Definition at line 101 of file recursionhelper.hxx.
References aLastIterationStart.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 107 of file recursionhelper.hxx.
References aRecursionFormulas.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 108 of file recursionhelper.hxx.
References aRecursionFormulas.
|
inline |
Definition at line 76 of file recursionhelper.hxx.
References nRecursionCount.
Referenced by CleanTemporaryGroupCells(), and ScFormulaCell::Interpret().
|
inline |
Definition at line 109 of file recursionhelper.hxx.
References aRecursionInIterationStack.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 129 of file recursionhelper.hxx.
Referenced by ScFormulaCell::InterpretFormulaGroupThreading(), and ScCheckIndependentFGGuard::ScCheckIndependentFGGuard().
void ScRecursionHelper::IncDepComputeLevel | ( | ) |
Definition at line 205 of file recursionhelper.cxx.
References nDependencyComputationLevel.
Referenced by ScFormulaGroupDependencyComputeGuard::ScFormulaGroupDependencyComputeGuard().
void ScRecursionHelper::IncIteration | ( | ) |
Definition at line 74 of file recursionhelper.cxx.
References nIteration.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 77 of file recursionhelper.hxx.
References nRecursionCount.
Definition at line 13 of file recursionhelper.cxx.
References aInsertPos, bAbortingDependencyComputation, bDoingRecursion, bInIterationReturn, bInRecursionReturn, GetIterationEnd(), nDependencyComputationLevel, nRecursionCount, and ResetIteration().
Referenced by Clear(), and ScRecursionHelper().
void ScRecursionHelper::Insert | ( | ScFormulaCell * | p, |
bool | bOldRunning, | ||
const ScFormulaResult & | rRes | ||
) |
Definition at line 46 of file recursionhelper.cxx.
References aInsertPos, and aRecursionFormulas.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 123 of file recursionhelper.hxx.
References bAbortingDependencyComputation.
Referenced by ScFormulaCell::Interpret(), and ScFormulaCell::InterpretTail().
|
inline |
Definition at line 93 of file recursionhelper.hxx.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 86 of file recursionhelper.hxx.
References bDoingRecursion.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 91 of file recursionhelper.hxx.
References bInIterationReturn.
Referenced by ScFormulaCell::Interpret().
|
inline |
A pure recursion return, no iteration.
Definition at line 83 of file recursionhelper.hxx.
References bInIterationReturn.
Referenced by ScFormulaCell::CheckComputeDependencies(), and ScFormulaCell::Interpret().
|
inline |
Any return, recursion or iteration, iteration is always coupled with recursion.
Definition at line 106 of file recursionhelper.hxx.
References bInRecursionReturn.
Referenced by ScFormulaCell::Interpret(), and ScFormulaCell::InterpretTail().
void ScRecursionHelper::PopFormulaGroup | ( | ) |
Definition at line 142 of file recursionhelper.cxx.
References aFGList, aInDependencyEvalMode, assert(), and ScFormulaCell::SetSeenInPath().
Referenced by ScFormulaGroupCycleCheckGuard::~ScFormulaGroupCycleCheckGuard().
bool ScRecursionHelper::PushFormulaGroup | ( | ScFormulaCell * | pCell | ) |
Detects a simple cycle involving formula-groups and singleton formula-cells.
Definition at line 114 of file recursionhelper.cxx.
References aFGList, aInDependencyEvalMode, assert(), ScFormulaCell::GetSeenInPath(), and ScFormulaCell::SetSeenInPath().
Referenced by ScFormulaGroupCycleCheckGuard::ScFormulaGroupCycleCheckGuard().
|
private |
Definition at line 24 of file recursionhelper.cxx.
References aLastIterationStart, bConverging, GetIterationEnd(), and nIteration.
Referenced by EndIteration(), and Init().
void ScRecursionHelper::ResumeIteration | ( | ) |
Definition at line 68 of file recursionhelper.cxx.
References aLastIterationStart, GetIterationStart(), and SetInIterationReturn().
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 87 of file recursionhelper.hxx.
Referenced by ScFormulaCell::Interpret().
void ScRecursionHelper::SetFormulaGroupDepEvalMode | ( | bool | bSet | ) |
Definition at line 191 of file recursionhelper.cxx.
References aFGList, aInDependencyEvalMode, and assert().
Referenced by ScFormulaGroupDependencyComputeGuard::ScFormulaGroupDependencyComputeGuard(), and ScFormulaGroupDependencyComputeGuard::~ScFormulaGroupDependencyComputeGuard().
|
inline |
Definition at line 128 of file recursionhelper.hxx.
Referenced by ScCheckIndependentFGGuard::ScCheckIndependentFGGuard(), and ScCheckIndependentFGGuard::~ScCheckIndependentFGGuard().
|
inline |
Definition at line 131 of file recursionhelper.hxx.
Referenced by ScCheckIndependentFGGuard::ScCheckIndependentFGGuard(), and ScCheckIndependentFGGuard::~ScCheckIndependentFGGuard().
void ScRecursionHelper::SetInIterationReturn | ( | bool | b | ) |
Definition at line 53 of file recursionhelper.cxx.
References bInIterationReturn, and SetInRecursionReturn().
Referenced by ScFormulaCell::Interpret(), ResumeIteration(), and StartIteration().
void ScRecursionHelper::SetInRecursionReturn | ( | bool | b | ) |
Definition at line 38 of file recursionhelper.cxx.
References aInsertPos, aRecursionFormulas, and bInRecursionReturn.
Referenced by ScFormulaCell::Interpret(), and SetInIterationReturn().
void ScRecursionHelper::StartIteration | ( | ) |
Definition at line 60 of file recursionhelper.cxx.
References aLastIterationStart, bConverging, GetIterationStart(), nIteration, and SetInIterationReturn().
Referenced by ScFormulaCell::Interpret().
|
private |
Definition at line 53 of file recursionhelper.hxx.
Referenced by AnyCycleMemberInDependencyEvalMode(), AnyParentFGInCycle(), PopFormulaGroup(), PushFormulaGroup(), and SetFormulaGroupDepEvalMode().
|
private |
Definition at line 56 of file recursionhelper.hxx.
Referenced by AnyCycleMemberInDependencyEvalMode(), PopFormulaGroup(), PushFormulaGroup(), and SetFormulaGroupDepEvalMode().
|
private |
Definition at line 50 of file recursionhelper.hxx.
Referenced by Init(), Insert(), and SetInRecursionReturn().
|
private |
Definition at line 51 of file recursionhelper.hxx.
Referenced by GetLastIterationStart(), ResetIteration(), ResumeIteration(), and StartIteration().
|
private |
Definition at line 49 of file recursionhelper.hxx.
Referenced by Clear(), EndIteration(), GetIterationEnd(), GetIterationStart(), GetList(), Insert(), and SetInRecursionReturn().
|
private |
Definition at line 52 of file recursionhelper.hxx.
Referenced by Clear(), and GetRecursionInIterationStack().
|
private |
Definition at line 67 of file recursionhelper.hxx.
Referenced by AddTemporaryGroupCell(), and CleanTemporaryGroupCells().
|
private |
Definition at line 66 of file recursionhelper.hxx.
Referenced by AbortDependencyComputation(), DecDepComputeLevel(), Init(), and IsAbortingDependencyComputation().
|
private |
Definition at line 64 of file recursionhelper.hxx.
Referenced by GetConvergingReference(), ResetIteration(), and StartIteration().
|
private |
Definition at line 62 of file recursionhelper.hxx.
Referenced by Init(), and IsDoingRecursion().
|
private |
Definition at line 65 of file recursionhelper.hxx.
Referenced by AreGroupsIndependent(), CheckFGIndependence(), and ScRecursionHelper().
|
private |
Definition at line 63 of file recursionhelper.hxx.
Referenced by Init(), IsInIterationReturn(), IsInRecursionReturn(), and SetInIterationReturn().
|
private |
Definition at line 61 of file recursionhelper.hxx.
Referenced by Init(), IsInReturn(), and SetInRecursionReturn().
|
private |
Definition at line 60 of file recursionhelper.hxx.
Referenced by AbortDependencyComputation(), DecDepComputeLevel(), GetDepComputeLevel(), IncDepComputeLevel(), and Init().
|
private |
Definition at line 58 of file recursionhelper.hxx.
Referenced by GetIteration(), IncIteration(), ResetIteration(), and StartIteration().
|
private |
Definition at line 57 of file recursionhelper.hxx.
Referenced by DecRecursionCount(), GetRecursionCount(), IncRecursionCount(), and Init().
|
private |
Definition at line 68 of file recursionhelper.hxx.
Referenced by CheckFGIndependence(), and ScRecursionHelper().