Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
Epoch< ALO >::EpochGate Struct Reference

#include "vault/gear/block-flow.hpp"

Description

template<class ALO>
struct vault::gear::blockFlow::Epoch< ALO >::EpochGate

specifically rigged GATE Activity, used for managing Epoch metadata

  • the Condition::rest tracks pending async IO operations
  • the Condition::deadline is the nominal deadline of this Epoch
  • the field next points to the next free allocation Slot to use

Definition at line 241 of file block-flow.hpp.

Public Member Functions

 EpochGate ()
 
activity::Instantdeadline ()
 
bool isAlive (Time deadline)
 
size_t filledSlots () const
 
bool hasFreeSlot () const
 
ActivityclaimNextSlot ()
 
- Public Member Functions inherited from Activity
 Activity (Verb verb) noexcept
 
 Activity (uint64_t o1, uint64_t o2) noexcept
 
 Activity (JobFunctor &job, Time nominalTime, Activity &feed) noexcept
 
 Activity (Activity *target, Time limitWhen=Time::ANYTIME) noexcept
 
 Activity (int expectNotifications, Time deadline=Time::NEVER) noexcept
 
 Activity (Time when, Activity *followUp) noexcept
 
 Activity (Time start, Time after, Activity *followUp) noexcept
 
 Activity (activity::Hook &callback, size_t arg) noexcept
 
 Activity () noexcept
 
 operator std::string () const
 diagnostic representation
 
std::string showVerb () const
 
std::string showData () const
 
template<class EXE >
activity::Proc activate (Time now, EXE &executionCtx)
 Core Operation: Activate and perform this Activity.
 
template<class EXE >
activity::Proc dispatch (Time now, EXE &executionCtx)
 Entrance point for an activation, which has been dispatched indirectly through the dispatch and/or priority queue; typically this is achieved by invoking the post-λ on the executionCtx, or by activating a POST-Activity.
 
bool is (Activity::Verb expectedVerb) const
 
void incDependencies ()
 
void setNotificationTarget (Activity *target, Time limitStart=Time::ANYTIME)
 
Time constrainedStart (Time start)
 
Time constrainedDeath (Time death)
 

Additional Inherited Members

- Public Types inherited from Activity
enum  Verb {
  INVOKE ,
  WORKSTART ,
  WORKSTOP ,
  NOTIFY ,
  GATE ,
  POST ,
  FEED ,
  HOOK ,
  TICK
}
 All possible kinds of activities. More...
 
- Public Attributes inherited from Activity
const Verb verb_
 
Activitynext
 Activities are organised into chains to represent relations based on verbs.
 
ArgumentData data_
 

Constructor & Destructor Documentation

◆ EpochGate()

template<class ALO >
EpochGate ( )
inline
Note
initially by default there is...
  • effectively no deadline
  • no IO operations pending (i.e. we can just discard the Epoch)
  • the next usable Slot is the last Storage slot, and will be decremented until there is only one slot left (EpochGate itself)
Warning
EpochGate is assumed to sit in the Epoch's first slot

Definition at line 251 of file block-flow.hpp.

References Activity::next.

Member Function Documentation

◆ deadline()

template<class ALO >
activity::Instant & deadline ( )
inline

Definition at line 261 of file block-flow.hpp.

References Activity::ArgumentData::condition, Activity::data_, and Activity::Condition::dead.

Referenced by Epoch< ALO >::deadline(), Epoch< ALO >::EpochGate::isAlive(), and Epoch< ALO >::setup().

+ Here is the caller graph for this function:

◆ isAlive()

template<class ALO >
bool isAlive ( Time  deadline)
inline

Definition at line 267 of file block-flow.hpp.

References Activity::ArgumentData::condition, Activity::data_, Epoch< ALO >::EpochGate::deadline(), Activity::Condition::isDead(), and Activity::Condition::isHold().

+ Here is the call graph for this function:

◆ filledSlots()

template<class ALO >
size_t filledSlots ( ) const
inline

Definition at line 274 of file block-flow.hpp.

References Activity::next.

◆ hasFreeSlot()

template<class ALO >
bool hasFreeSlot ( ) const
inline

Definition at line 281 of file block-flow.hpp.

References Activity::next.

Referenced by Epoch< ALO >::EpochGate::claimNextSlot().

+ Here is the caller graph for this function:

◆ claimNextSlot()

template<class ALO >
Activity * claimNextSlot ( )
inline

Definition at line 287 of file block-flow.hpp.

References Epoch< ALO >::EpochGate::hasFreeSlot(), and Activity::next.

+ Here is the call graph for this function:
+ Inheritance diagram for Epoch< ALO >::EpochGate:
+ Collaboration diagram for Epoch< ALO >::EpochGate:

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