![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "vault/gear/activity-term.hpp"
A Term of the »Activity Language«, describing the steps necessary to perform the calculation of a single frame or similar tasks.
Definition at line 93 of file activity-term.hpp.
Public Types | |
| enum | Template { CALC_JOB , LOAD_JOB , META_JOB } |
Public Member Functions | |
| Term (AllocHandle &&allocHandle, Template kind, Time start, Time dead, Job job) | |
| operator std::string () const | |
| Activity & | post () |
| Activity & | callback () |
| Term & | expectNotification (Activity ¬ificationSrc, bool unlimitedTime=false) |
| Builder operation: block this Term waiting for prerequisite notification. | |
| Term & | appendNotificationTo (Term &targetTerm, bool unlimitedTime=false) |
| Builder operation: append a Notification link to the end of this Term's chain. | |
| Term & | requireDirectActivation () |
| Insert a self-inhibition to enforce activation is possible only after the scheduled start time. | |
Private Types | |
| using | AllocHandle = BlockFlowAlloc::AllocatorHandle |
Private Member Functions | |
| void | configureTemplate (Template kind) |
| Activity * | setupInvocation (Job &job) |
| Activity * | setupPost (Time start, Time dead, Activity *followUp) |
| void | setupGate () |
| void | insertWorkBracket () |
| void | severAsyncChain () |
Static Private Member Functions | |
| static void | insert (Activity *anchor, Activity *target) |
| static Activity * | findTail (Activity *chain) |
Private Attributes | |
| AllocHandle | alloc_ |
| Activity * | invoke_ {nullptr} |
| Activity * | post_ {nullptr} |
| Activity * | gate_ {nullptr} |
| Activity * | callback_ {nullptr} |
Definition at line 114 of file activity-term.hpp.
References Term::configureTemplate().
Here is the call graph for this function:
|
private |
Definition at line 96 of file activity-term.hpp.
| enum Template |
| Enumerator | |
|---|---|
| CALC_JOB | scheme for a synchronous media calculation job |
| LOAD_JOB | scheme for an asynchronous data retrieval job |
| META_JOB | scheme for planning and organisational job |
Definition at line 108 of file activity-term.hpp.
|
inline |
Definition at line 124 of file activity-term.hpp.
References Term::invoke_, and Term::post_.
|
inline |
Definition at line 138 of file activity-term.hpp.
References Term::post_.
|
inline |
Definition at line 149 of file activity-term.hpp.
References Term::callback_.
Builder operation: block this Term waiting for prerequisite notification.
| notificationSrc | an NOTIFY-Activity to attach the notification-link |
GATE-Activity (if not already present) and to increase the Gate's latch counter. Moreover, the Argument, must be a NOTIFY and will be modified to store the link to this receiving Gate; typically this function is actually invoked starting from the other Term — the prerequisite — by invoking #appendNotificationTo(targetTerm). Definition at line 165 of file activity-term.hpp.
References Time::ANYTIME, Activity::data_, Term::gate_, Activity::incDependencies(), Activity::is(), Activity::TimeWindow::life, Activity::NOTIFY, Term::post_, Activity::setNotificationTarget(), Term::setupGate(), and Activity::ArgumentData::timeWindow.
Referenced by Term::appendNotificationTo(), and Term::requireDirectActivation().
Here is the call graph for this function:
Here is the caller graph for this function:Builder operation: append a Notification link to the end of this Term's chain.
NOTIFY. Definition at line 182 of file activity-term.hpp.
References Term::alloc_, Term::callback_, Term::expectNotification(), Term::findTail(), Term::insert(), Term::invoke_, and Activity::NOTIFY.
Here is the call graph for this function:
|
inline |
Insert a self-inhibition to enforce activation is possible only after the scheduled start time.
Relevant for Jobs, which are to be triggered by external events, while the actual computation must not be start prior to activating the main chain, even if all prerequisites are already fulfilled.
GroomingToken, the dispatch() actually happens synchronous and immediately processes the activated tail-chain in a nested call. Definition at line 210 of file activity-term.hpp.
References Term::alloc_, Term::expectNotification(), Term::insert(), Activity::NOTIFY, and Term::post_.
Here is the call graph for this function:
|
inlineprivate |
Definition at line 220 of file activity-term.hpp.
References Term::CALC_JOB, Term::insertWorkBracket(), Term::LOAD_JOB, Term::META_JOB, Term::setupGate(), and Term::severAsyncChain().
Referenced by Term::Term().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 242 of file activity-term.hpp.
References Term::alloc_, Activity::FEED, and Activity::next.
Definition at line 258 of file activity-term.hpp.
References Term::alloc_.
|
inlineprivate |
Definition at line 264 of file activity-term.hpp.
References Term::alloc_, Activity::data_, Activity::TimeWindow::dead, Activity::GATE, Term::gate_, Term::insert(), Activity::is(), Term::post_, and Activity::ArgumentData::timeWindow.
Referenced by Term::configureTemplate(), and Term::expectNotification().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 274 of file activity-term.hpp.
References Term::alloc_, Term::findTail(), Term::gate_, Term::insert(), Activity::next, Term::post_, Activity::WORKSTART, and Activity::WORKSTOP.
Referenced by Term::configureTemplate().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 285 of file activity-term.hpp.
References Term::callback_, Activity::FEED, Term::invoke_, Activity::is(), and Activity::next.
Referenced by Term::configureTemplate().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 297 of file activity-term.hpp.
References Activity::next.
Referenced by Term::appendNotificationTo(), Term::insertWorkBracket(), Term::requireDirectActivation(), and Term::setupGate().
Here is the caller graph for this function:Definition at line 306 of file activity-term.hpp.
References Activity::next.
Referenced by Term::appendNotificationTo(), and Term::insertWorkBracket().
Here is the caller graph for this function:
|
private |
Definition at line 98 of file activity-term.hpp.
Referenced by Term::appendNotificationTo(), Term::insertWorkBracket(), Term::requireDirectActivation(), Term::setupGate(), Term::setupInvocation(), and Term::setupPost().
|
private |
Definition at line 100 of file activity-term.hpp.
Referenced by Term::appendNotificationTo(), Term::operator std::string(), and Term::severAsyncChain().
|
private |
Definition at line 101 of file activity-term.hpp.
Referenced by Term::expectNotification(), Term::insertWorkBracket(), Term::operator std::string(), Term::post(), Term::requireDirectActivation(), and Term::setupGate().
|
private |
Definition at line 103 of file activity-term.hpp.
Referenced by Term::expectNotification(), Term::insertWorkBracket(), and Term::setupGate().
|
private |
Definition at line 104 of file activity-term.hpp.
Referenced by Term::appendNotificationTo(), Term::callback(), and Term::severAsyncChain().
Collaboration diagram for Term: