Lumiera  0.pre.03
»edit your freedom«
BlockFlow< CONF >::AllocatorHandle Class Reference

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

Description

template<class CONF = blockFlow::DefaultConfig>
class vault::gear::BlockFlow< CONF >::AllocatorHandle

Local handle to allow allocating a collection of Activities, all sharing a common deadline.

Internally, these records are maintained in fixed-sized extents and thus allocations may overflow — leading to allocation of further extents. However, this extension is handled transparently by the embedded iterator. Moreover, a back-connection to the BlockFlow instance is maintained, enabling the latter to manage the Epoch spacing dynamically.

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

Public Member Functions

 AllocatorHandle (RawIter slot, BlockFlow *parent)
 
template<typename... ARGS>
Activitycreate (ARGS &&...args)
 Main API operation: allocate a new Activity record.
 
Time currDeadline () const
 
bool hasFreeSlot () const
 

Private Member Functions

void * claimSlot ()
 

Private Attributes

EpochIter epoch_
 
BlockFlowflow_
 
+ Collaboration diagram for BlockFlow< CONF >::AllocatorHandle:

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