Lumiera  0.pre.03
»edit your freedom«
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 250 of file block-flow.hpp.

Public Member Functions

 EpochGate ()
 
ActivityclaimNextSlot ()
 
activity::Instantdeadline ()
 
size_t filledSlots () const
 
bool hasFreeSlot () const
 
bool isAlive (Time deadline)
 
- 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
 
template<class EXE >
activity::Proc activate (Time now, EXE &executionCtx)
 Core Operation: Activate and perform this Activity. More...
 
Time constrainedDeath (Time death)
 
Time constrainedStart (Time start)
 
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. More...
 
void incDependencies ()
 
bool is (Activity::Verb expectedVerb) const
 
 operator std::string () const
 diagnostic representation
 
void setNotificationTarget (Activity *target, Time limitStart=Time::ANYTIME)
 
std::string showData () const
 
std::string showVerb () const
 

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
ArgumentData data_
 
Activitynext
 Activities are organised into chains to represent relations based on verbs.
 
const Verb verb_
 

Constructor & Destructor Documentation

◆ EpochGate()

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 260 of file block-flow.hpp.

References Time::ANYTIME, and vault::gear::test::anonymous_namespace{work-force-test.cpp}::setup().

+ 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: