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 45 of file recursionhelper.hxx.
|
private |
Definition at line 47 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 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, 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 131 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< typename Value, typename Compare, template< typename, typename > class Find, bool >::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 77 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 94 of file recursionhelper.hxx.
References bConverging.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 78 of file recursionhelper.hxx.
References nDependencyComputationLevel.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 93 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 100 of file recursionhelper.hxx.
References aLastIterationStart.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 107 of file recursionhelper.hxx.
References aRecursionFormulas.
|
inline |
Definition at line 106 of file recursionhelper.hxx.
References aRecursionFormulas.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 75 of file recursionhelper.hxx.
References nRecursionCount.
Referenced by CleanTemporaryGroupCells(), and ScFormulaCell::Interpret().
|
inline |
Definition at line 108 of file recursionhelper.hxx.
References aRecursionInIterationStack.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 128 of file recursionhelper.hxx.
References pFGSet.
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 76 of file recursionhelper.hxx.
References nRecursionCount.
|
private |
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, aRecursionFormulas, and p.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 122 of file recursionhelper.hxx.
References bAbortingDependencyComputation.
Referenced by ScFormulaCell::Interpret(), and ScFormulaCell::InterpretTail().
|
inline |
Definition at line 92 of file recursionhelper.hxx.
References nIteration.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 85 of file recursionhelper.hxx.
References bDoingRecursion.
Referenced by ScFormulaCell::Interpret().
|
inline |
Definition at line 90 of file recursionhelper.hxx.
References bInIterationReturn.
Referenced by ScFormulaCell::Interpret().
|
inline |
A pure recursion return, no iteration.
Definition at line 82 of file recursionhelper.hxx.
References bInIterationReturn, and bInRecursionReturn.
Referenced by ScFormulaCell::CheckComputeDependencies(), and ScFormulaCell::Interpret().
|
inline |
Any return, recursion or iteration, iteration is always coupled with recursion.
Definition at line 105 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, 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, 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 86 of file recursionhelper.hxx.
References bDoingRecursion.
Referenced by ScFormulaCell::Interpret().
void ScRecursionHelper::SetFormulaGroupDepEvalMode | ( | bool | bSet | ) |
Definition at line 191 of file recursionhelper.cxx.
References aFGList, and aInDependencyEvalMode.
Referenced by ScFormulaGroupDependencyComputeGuard::ScFormulaGroupDependencyComputeGuard(), and ScFormulaGroupDependencyComputeGuard::~ScFormulaGroupDependencyComputeGuard().
|
inline |
Definition at line 127 of file recursionhelper.hxx.
References pFGSet.
Referenced by ScCheckIndependentFGGuard::ScCheckIndependentFGGuard(), and ScCheckIndependentFGGuard::~ScCheckIndependentFGGuard().
|
inline |
Definition at line 130 of file recursionhelper.hxx.
References bGroupsIndependent.
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 52 of file recursionhelper.hxx.
Referenced by AnyCycleMemberInDependencyEvalMode(), AnyParentFGInCycle(), PopFormulaGroup(), PushFormulaGroup(), and SetFormulaGroupDepEvalMode().
|
private |
Definition at line 55 of file recursionhelper.hxx.
Referenced by AnyCycleMemberInDependencyEvalMode(), PopFormulaGroup(), PushFormulaGroup(), and SetFormulaGroupDepEvalMode().
|
private |
Definition at line 49 of file recursionhelper.hxx.
Referenced by Init(), Insert(), and SetInRecursionReturn().
|
private |
Definition at line 50 of file recursionhelper.hxx.
Referenced by GetLastIterationStart(), ResetIteration(), ResumeIteration(), and StartIteration().
|
private |
Definition at line 48 of file recursionhelper.hxx.
Referenced by Clear(), EndIteration(), GetIterationEnd(), GetIterationStart(), GetList(), Insert(), and SetInRecursionReturn().
|
private |
Definition at line 51 of file recursionhelper.hxx.
Referenced by Clear(), and GetRecursionInIterationStack().
|
private |
Definition at line 66 of file recursionhelper.hxx.
Referenced by AddTemporaryGroupCell(), and CleanTemporaryGroupCells().
|
private |
Definition at line 65 of file recursionhelper.hxx.
Referenced by AbortDependencyComputation(), DecDepComputeLevel(), Init(), and IsAbortingDependencyComputation().
|
private |
Definition at line 63 of file recursionhelper.hxx.
Referenced by GetConvergingReference(), ResetIteration(), and StartIteration().
|
private |
Definition at line 61 of file recursionhelper.hxx.
Referenced by Init(), IsDoingRecursion(), and SetDoingRecursion().
|
private |
Definition at line 64 of file recursionhelper.hxx.
Referenced by AreGroupsIndependent(), CheckFGIndependence(), ScRecursionHelper(), and SetGroupsIndependent().
|
private |
Definition at line 62 of file recursionhelper.hxx.
Referenced by Init(), IsInIterationReturn(), IsInRecursionReturn(), and SetInIterationReturn().
|
private |
Definition at line 60 of file recursionhelper.hxx.
Referenced by Init(), IsInRecursionReturn(), IsInReturn(), and SetInRecursionReturn().
|
private |
Definition at line 59 of file recursionhelper.hxx.
Referenced by AbortDependencyComputation(), DecDepComputeLevel(), GetDepComputeLevel(), IncDepComputeLevel(), and Init().
|
private |
Definition at line 57 of file recursionhelper.hxx.
Referenced by GetIteration(), IncIteration(), IsDoingIteration(), ResetIteration(), and StartIteration().
|
private |
Definition at line 56 of file recursionhelper.hxx.
Referenced by DecRecursionCount(), GetRecursionCount(), IncRecursionCount(), and Init().
|
private |
Definition at line 67 of file recursionhelper.hxx.
Referenced by CheckFGIndependence(), HasFormulaGroupSet(), ScRecursionHelper(), and SetFormulaGroupSet().