Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
ScheduleSpec Class Reference

#include "vault/gear/scheduler.hpp"

Description

Definition at line 138 of file scheduler.hpp.

Public Member Functions

 ScheduleSpec (Scheduler &sched, Job job)
 
ScheduleSpec startOffset (microseconds afterNow)
 
ScheduleSpec startTime (Time fixedTime)
 
ScheduleSpec lifeWindow (microseconds afterStart)
 
ScheduleSpec manifestation (ManifestationID manID)
 
ScheduleSpec compulsory (bool indeed=true)
 
ScheduleSpec post ()
 build Activity chain and hand-over to the Scheduler.
 
ScheduleSpec linkToSuccessor (ScheduleSpec &, bool unlimitedTime=false)
 
ScheduleSpec linkToPredecessor (ScheduleSpec &, bool unlimitedTime=false)
 

Private Member Functions

void maybeBuildTerm ()
 
- Private Member Functions inherited from MoveAssign
 ~MoveAssign ()=default
 
 MoveAssign ()=default
 
 MoveAssign (MoveAssign &&)=default
 
 MoveAssign (MoveAssign const &)=delete
 
MoveAssignoperator= (MoveAssign &&)=default
 
MoveAssignoperator= (MoveAssign const &)=delete
 

Private Attributes

Job job_
 
TimeVar start_ {Time::ANYTIME}
 
TimeVar death_ {Time::NEVER}
 
ManifestationID manID_ {}
 
bool isCompulsory_ {false}
 
SchedulertheScheduler_
 
std::optional< activity::Termterm_
 

Constructor & Destructor Documentation

◆ ScheduleSpec()

ScheduleSpec ( Scheduler sched,
Job  job 
)
inline

Definition at line 151 of file scheduler.hpp.

Member Function Documentation

◆ startOffset()

ScheduleSpec startOffset ( microseconds  afterNow)
inline

Definition at line 158 of file scheduler.hpp.

References RealClock::now(), and ScheduleSpec::start_.

+ Here is the call graph for this function:

◆ startTime()

ScheduleSpec startTime ( Time  fixedTime)
inline

Definition at line 165 of file scheduler.hpp.

References ScheduleSpec::start_.

Referenced by TestChainLoad< maxFan >::ScheduleCtx::continuation(), and TestChainLoad< maxFan >::ScheduleCtx::disposeStep().

+ Here is the caller graph for this function:

◆ lifeWindow()

ScheduleSpec lifeWindow ( microseconds  afterStart)
inline

Definition at line 172 of file scheduler.hpp.

References ScheduleSpec::death_, and ScheduleSpec::start_.

Referenced by TestChainLoad< maxFan >::ScheduleCtx::continuation(), and TestChainLoad< maxFan >::ScheduleCtx::disposeStep().

+ Here is the caller graph for this function:

◆ manifestation()

ScheduleSpec manifestation ( ManifestationID  manID)
inline

Definition at line 179 of file scheduler.hpp.

References ScheduleSpec::manID_.

Referenced by TestChainLoad< maxFan >::ScheduleCtx::continuation(), and TestChainLoad< maxFan >::ScheduleCtx::disposeStep().

+ Here is the caller graph for this function:

◆ compulsory()

ScheduleSpec compulsory ( bool  indeed = true)
inline

Definition at line 186 of file scheduler.hpp.

References ScheduleSpec::isCompulsory_.

◆ post()

ScheduleSpec post ( )
inline

build Activity chain and hand-over to the Scheduler.

Note
after invoking this terminal operation, the schedule is defined and will be triggered when start time arrives. However, before reaching this trigger point, the embedded activity::Term can still be augmented and dependencies can be established.
Remarks
This ScheduleSpec builder is disposable (and can be moved), while the actual Activities are allocated into the BlockFlow, where they are guaranteed to live until reaching the deadline.

Definition at line 547 of file scheduler.hpp.

References ScheduleSpec::death_, ScheduleSpec::isCompulsory_, ScheduleSpec::manID_, ScheduleSpec::maybeBuildTerm(), Scheduler::postChain(), ScheduleSpec::start_, ScheduleSpec::term_, and ScheduleSpec::theScheduler_.

Referenced by TestChainLoad< maxFan >::ScheduleCtx::continuation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ linkToSuccessor()

ScheduleSpec linkToSuccessor ( ScheduleSpec succSpec,
bool  unlimitedTime = false 
)
inline

Definition at line 573 of file scheduler.hpp.

References ScheduleSpec::maybeBuildTerm(), and ScheduleSpec::term_.

+ Here is the call graph for this function:

◆ linkToPredecessor()

ScheduleSpec linkToPredecessor ( ScheduleSpec predSpec,
bool  unlimitedTime = false 
)
inline

Definition at line 582 of file scheduler.hpp.

References ScheduleSpec::maybeBuildTerm(), and ScheduleSpec::term_.

Referenced by TestChainLoad< maxFan >::ScheduleCtx::continuation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ maybeBuildTerm()

void maybeBuildTerm ( )
inlineprivate

if not done yet, then construct the Activity-Language term describing the schedule according to the parameters set thus far.

Definition at line 564 of file scheduler.hpp.

References Scheduler::activityLang_, ActivityLang::buildCalculationJob(), ScheduleSpec::death_, ScheduleSpec::job_, ScheduleSpec::start_, ScheduleSpec::term_, and ScheduleSpec::theScheduler_.

Referenced by ScheduleSpec::linkToPredecessor(), ScheduleSpec::linkToSuccessor(), and ScheduleSpec::post().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ job_

Job job_
private

Definition at line 141 of file scheduler.hpp.

Referenced by ScheduleSpec::maybeBuildTerm().

◆ start_

◆ death_

TimeVar death_ {Time::NEVER}
private

◆ manID_

ManifestationID manID_ {}
private

Definition at line 144 of file scheduler.hpp.

Referenced by ScheduleSpec::manifestation(), and ScheduleSpec::post().

◆ isCompulsory_

bool isCompulsory_ {false}
private

Definition at line 145 of file scheduler.hpp.

Referenced by ScheduleSpec::compulsory(), and ScheduleSpec::post().

◆ theScheduler_

Scheduler* theScheduler_
private

Definition at line 147 of file scheduler.hpp.

Referenced by ScheduleSpec::maybeBuildTerm(), and ScheduleSpec::post().

◆ term_

+ Inheritance diagram for ScheduleSpec:
+ Collaboration diagram for ScheduleSpec:

The documentation for this class was generated from the following file: