Thrill  0.1
block_scheduler_algorithm< SwappableBlockType > Class Template Referenceabstract

Detailed Description

template<class SwappableBlockType>
class foxxll::block_scheduler_algorithm< SwappableBlockType >

Interface of a block scheduling algorithm.

Definition at line 250 of file block_scheduler.hpp.

+ Inheritance diagram for block_scheduler_algorithm< SwappableBlockType >:
+ Collaboration diagram for block_scheduler_algorithm< SwappableBlockType >:

#include <block_scheduler.hpp>

Public Member Functions

 block_scheduler_algorithm (block_scheduler_type &bs)
 
 block_scheduler_algorithm (block_scheduler_algorithm *old)
 
 block_scheduler_algorithm (const block_scheduler_algorithm &)=delete
 non-copyable: delete copy-constructor More...
 
virtual ~block_scheduler_algorithm ()
 
virtual internal_block_typeacquire (const swappable_block_identifier_type sbid, const bool uninitialized=false)=0
 
virtual void deinitialize (swappable_block_identifier_type sbid)=0
 
virtual bool evictable_blocks_empty ()=0
 
virtual swappable_block_identifier_type evictable_blocks_pop ()=0
 
virtual void explicit_timestep ()
 
virtual external_block_type extract_external_block (swappable_block_identifier_type sbid)=0
 
virtual const prediction_sequence_typeget_prediction_sequence () const
 
virtual void initialize (swappable_block_identifier_type sbid, external_block_type eblock)=0
 
virtual bool is_initialized (const swappable_block_identifier_type sbid) const
 
virtual bool is_simulating () const
 
block_scheduler_algorithmoperator= (const block_scheduler_algorithm &)=delete
 non-copyable: delete assignment operator More...
 
virtual void release (swappable_block_identifier_type sbid, const bool dirty)=0
 
virtual void swappable_blocks_resize (swappable_block_identifier_type)
 

Public Attributes

block_scheduler_typebs
 

Protected Types

using block_scheduler_type = block_scheduler< SwappableBlockType >
 
using external_block_type = typename block_scheduler_type::external_block_type
 
using internal_block_type = typename block_scheduler_type::internal_block_type
 
using prediction_sequence_type = typename block_scheduler_type::prediction_sequence_type
 
using swappable_block_identifier_type = typename block_scheduler_type::swappable_block_identifier_type
 
using time_type = typename block_scheduler_type::time_type
 

Protected Member Functions

block_scheduler_algorithmget_algorithm_from_block_scheduler ()
 
internal_block_typeget_free_internal_block_from_block_scheduler ()
 
void return_free_internal_block_to_block_scheduler (internal_block_type *iblock)
 Return an internal_block to the block_scheduler. More...
 

Protected Attributes

prediction_sequence_type prediction_sequence
 
std::vector< SwappableBlockType > & swappable_blocks
 

Member Typedef Documentation

◆ block_scheduler_type

using block_scheduler_type = block_scheduler<SwappableBlockType>
protected

Definition at line 546 of file block_scheduler.hpp.

◆ external_block_type

Definition at line 548 of file block_scheduler.hpp.

◆ internal_block_type

Definition at line 547 of file block_scheduler.hpp.

◆ prediction_sequence_type

◆ swappable_block_identifier_type

◆ time_type

using time_type = typename block_scheduler_type::time_type
protected

Definition at line 551 of file block_scheduler.hpp.

Constructor & Destructor Documentation

◆ block_scheduler_algorithm() [1/3]

Definition at line 573 of file block_scheduler.hpp.

◆ block_scheduler_algorithm() [2/3]

block_scheduler_algorithm ( block_scheduler_algorithm< SwappableBlockType > *  old)
inlineexplicit

Definition at line 578 of file block_scheduler.hpp.

◆ block_scheduler_algorithm() [3/3]

block_scheduler_algorithm ( const block_scheduler_algorithm< SwappableBlockType > &  )
delete

non-copyable: delete copy-constructor

◆ ~block_scheduler_algorithm()

virtual ~block_scheduler_algorithm ( )
inlinevirtual

Definition at line 588 of file block_scheduler.hpp.

Member Function Documentation

◆ acquire()

◆ deinitialize()

◆ evictable_blocks_empty()

◆ evictable_blocks_pop()

◆ explicit_timestep()

virtual void explicit_timestep ( )
inlinevirtual

◆ extract_external_block()

◆ get_algorithm_from_block_scheduler()

block_scheduler_algorithm* get_algorithm_from_block_scheduler ( )
inlineprotected

Definition at line 560 of file block_scheduler.hpp.

References block_scheduler< SwappableBlockType >::algo.

◆ get_free_internal_block_from_block_scheduler()

internal_block_type* get_free_internal_block_from_block_scheduler ( )
inlineprotected

Get an internal_block from the block_scheduler.

Returns
Pointer to the internal_block. nullptr if none available.

Definition at line 565 of file block_scheduler.hpp.

References block_scheduler< SwappableBlockType >::get_free_internal_block().

◆ get_prediction_sequence()

◆ initialize()

◆ is_initialized()

virtual bool is_initialized ( const swappable_block_identifier_type  sbid) const
inlinevirtual

◆ is_simulating()

virtual bool is_simulating ( ) const
inlinevirtual

◆ operator=()

block_scheduler_algorithm& operator= ( const block_scheduler_algorithm< SwappableBlockType > &  )
delete

non-copyable: delete assignment operator

◆ release()

◆ return_free_internal_block_to_block_scheduler()

void return_free_internal_block_to_block_scheduler ( internal_block_type iblock)
inlineprotected

Return an internal_block to the block_scheduler.

Definition at line 569 of file block_scheduler.hpp.

References block_scheduler< SwappableBlockType >::return_free_internal_block().

◆ swappable_blocks_resize()

Member Data Documentation

◆ bs

◆ prediction_sequence

prediction_sequence_type prediction_sequence
protected

Definition at line 558 of file block_scheduler.hpp.

◆ swappable_blocks

std::vector<SwappableBlockType>& swappable_blocks
protected

Definition at line 557 of file block_scheduler.hpp.


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