![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "vault/gear/block-flow.hpp"
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 456 of file block-flow.hpp.
Public Member Functions | |
| AllocatorHandle (RawIter slot, BlockFlow *parent) | |
| template<typename... ARGS> | |
| Activity & | create (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_ |
| BlockFlow * | flow_ |
|
inline |
Definition at line 462 of file block-flow.hpp.
|
inline |
Main API operation: allocate a new Activity record.
Definition at line 472 of file block-flow.hpp.
References BlockFlow< CONF >::AllocatorHandle::claimSlot().
Referenced by BlockFlow_test::placeActivity(), BlockFlow_test::simpleUsage(), and BlockFlow_test::storageFlow().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 477 of file block-flow.hpp.
References BlockFlow< CONF >::AllocatorHandle::epoch_.
Referenced by BlockFlow_test::placeActivity().
Here is the caller graph for this function:
|
inline |
Definition at line 478 of file block-flow.hpp.
References BlockFlow< CONF >::AllocatorHandle::epoch_.
Referenced by BlockFlow_test::placeActivity().
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 483 of file block-flow.hpp.
References Epoch< ALO >::deadline(), BlockFlow< CONF >::AllocatorHandle::epoch_, BlockFlow< CONF >::AllocatorHandle::flow_, BlockFlow< CONF >::getEpochStep(), BlockFlow< CONF >::lastEpoch(), BlockFlow< CONF >::markEpochOverflow(), and Epoch< ALO >::setup().
Referenced by BlockFlow< CONF >::AllocatorHandle::create().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 458 of file block-flow.hpp.
Referenced by BlockFlow< CONF >::AllocatorHandle::claimSlot(), BlockFlow< CONF >::AllocatorHandle::currDeadline(), and BlockFlow< CONF >::AllocatorHandle::hasFreeSlot().
|
private |
Definition at line 459 of file block-flow.hpp.
Referenced by BlockFlow< CONF >::AllocatorHandle::claimSlot().
Collaboration diagram for BlockFlow< CONF >::AllocatorHandle: