Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes

block_scheduler_algorithm< SwappableBlockType > Class Template Reference

Interface of a block scheduling algorithm. More...

#include <block_scheduler.h>

Inheritance diagram for block_scheduler_algorithm< SwappableBlockType >:
Inheritance graph
[legend]
Collaboration diagram for block_scheduler_algorithm< SwappableBlockType >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 block_scheduler_algorithm (block_scheduler_type &bs)
 block_scheduler_algorithm (block_scheduler_algorithm *old)
virtual bool evictable_blocks_empty ()=0
virtual
swappable_block_identifier_type 
evictable_blocks_pop ()=0
virtual void swappable_blocks_resize (swappable_block_identifier_type)
virtual internal_block_type & acquire (const swappable_block_identifier_type sbid, const bool uninitialized=false)=0
virtual void release (swappable_block_identifier_type sbid, const bool dirty)=0
virtual void deinitialize (swappable_block_identifier_type sbid)=0
virtual void initialize (swappable_block_identifier_type sbid, external_block_type eblock)=0
virtual external_block_type extract_external_block (swappable_block_identifier_type sbid)=0
virtual bool is_initialized (const swappable_block_identifier_type sbid) const
virtual void explicit_timestep ()
virtual bool is_simulating () const
virtual const
prediction_sequence_type & 
get_prediction_sequence () const

Public Attributes

block_scheduler_typebs

Protected Types

typedef block_scheduler
< SwappableBlockType > 
block_scheduler_type
typedef
block_scheduler_type::internal_block_type 
internal_block_type
typedef
block_scheduler_type::external_block_type 
external_block_type
typedef
block_scheduler_type::swappable_block_identifier_type 
swappable_block_identifier_type
typedef
block_scheduler_type::prediction_sequence_type 
prediction_sequence_type
typedef
block_scheduler_type::time_type 
time_type

Protected Member Functions

block_scheduler_algorithmget_algorithm_from_block_scheduler ()
internal_block_type * get_free_internal_block_from_block_scheduler ()
 Get an internal_block from the block_scheduler.
void return_free_internal_block_to_block_scheduler (internal_block_type *iblock)
 Return an internal_block to the block_scheduler.

Protected Attributes

std::vector< SwappableBlockType > & swappable_blocks
prediction_sequence_type prediction_sequence

Detailed Description

template<class SwappableBlockType>
class block_scheduler_algorithm< SwappableBlockType >

Interface of a block scheduling algorithm.


Member Function Documentation

template<class SwappableBlockType>
internal_block_type* block_scheduler_algorithm< SwappableBlockType >::get_free_internal_block_from_block_scheduler (  )  [inline, protected]

Get an internal_block from the block_scheduler.

Returns:
Pointer to the internal_block. NULL if none available.

References block_scheduler< SwappableBlockType >::get_free_internal_block().

template<class SwappableBlockType>
void block_scheduler_algorithm< SwappableBlockType >::return_free_internal_block_to_block_scheduler ( internal_block_type *  iblock  )  [inline, protected]

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