WIP consider how to seed the evaluation of a JobTicket

This commit is contained in:
Fischlurch 2012-09-04 01:55:11 +02:00
parent 14e6086488
commit ce5b940d39
2 changed files with 19 additions and 1 deletions

View file

@ -114,10 +114,16 @@ namespace engine {
/** integrate another chain of prerequisites into the current evaluation line.
* Further evaluation will start to visit prerequisites from the new starting point,
* and return to the current evaluation chain later on exhaustion of the side chain. */
* and return to the current evaluation chain later on exhaustion of the side chain.
* Especially in case the current evaluation is empty or already exhausted, the
* new starting point effectively replaces the current evaluation point */
friend void
integrate (JobPlanning const& newStartingPoint, JobPlanning& existingPlan)
{
if (isnil (existingPlan.plannedOperations_))
{ // current evaluation is exhausted: switch to new starting point
existingPlan.point_to_calculate_ = newStartingPoint.point_to_calculate_;
}
existingPlan.plannedOperations_.push (newStartingPoint.plannedOperations_);
}

View file

@ -130,6 +130,7 @@ using util::isnil;
}
ExplorationState startExploration() const;
ExplorationState discoverPrerequisites (uint channelNr) const;
Job createJobFor (FrameCoord coordinates);
@ -234,6 +235,17 @@ using util::isnil;
inline JobTicket::ExplorationState
JobTicket::startExploration() const
{
UNIMPLEMENTED ("somehow build a self-referential pseudo-prerequisite, and seed an ExplorationState with that");
/////////////////////TODO problem is: we need an JobTicket::Prerequisite instance, where the descriptor points to "self" (this JobTicket)
/////////////////////TODO : but this instance needs to reside somewhere at a safe location, since we want to embed an LinkedElements-iterator
/////////////////////TODO : into the ExplorationState. And obviously we do not want that instance in each JobTicket, only in the top level ones
}
inline JobTicket::ExplorationState
JobTicket::discoverPrerequisites (uint channelNr) const
{