STXXL  1.4-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stxxl::block_scheduler_algorithm< SwappableBlockType > Class Template Referenceabstract

Detailed Description

template<class SwappableBlockType>
class stxxl::block_scheduler_algorithm< SwappableBlockType >

Interface of a block scheduling algorithm.

Definition at line 235 of file block_scheduler.h.

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

Public Member Functions

 block_scheduler_algorithm (block_scheduler_type &bs)
 
 block_scheduler_algorithm (block_scheduler_algorithm *old)
 
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_type
get_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
 
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

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

Protected Member Functions

block_scheduler_algorithmget_algorithm_from_block_scheduler ()
 
internal_block_typeget_free_internal_block_from_block_scheduler ()
 Get an internal_block from the block_scheduler. More...
 
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
 

Additional Inherited Members

- Private Member Functions inherited from stxxl::noncopyable
 noncopyable ()
 

Member Typedef Documentation

template<class SwappableBlockType>
typedef block_scheduler<SwappableBlockType> stxxl::block_scheduler_algorithm< SwappableBlockType >::block_scheduler_type
protected

Definition at line 524 of file block_scheduler.h.

template<class SwappableBlockType>
typedef block_scheduler_type::external_block_type stxxl::block_scheduler_algorithm< SwappableBlockType >::external_block_type
protected

Definition at line 526 of file block_scheduler.h.

template<class SwappableBlockType>
typedef block_scheduler_type::internal_block_type stxxl::block_scheduler_algorithm< SwappableBlockType >::internal_block_type
protected

Definition at line 525 of file block_scheduler.h.

template<class SwappableBlockType>
typedef block_scheduler_type::prediction_sequence_type stxxl::block_scheduler_algorithm< SwappableBlockType >::prediction_sequence_type
protected

Definition at line 528 of file block_scheduler.h.

template<class SwappableBlockType>
typedef block_scheduler_type::swappable_block_identifier_type stxxl::block_scheduler_algorithm< SwappableBlockType >::swappable_block_identifier_type
protected

Definition at line 527 of file block_scheduler.h.

template<class SwappableBlockType>
typedef block_scheduler_type::time_type stxxl::block_scheduler_algorithm< SwappableBlockType >::time_type
protected

Definition at line 529 of file block_scheduler.h.

Constructor & Destructor Documentation

template<class SwappableBlockType>
stxxl::block_scheduler_algorithm< SwappableBlockType >::block_scheduler_algorithm ( block_scheduler_type bs)
inline

Definition at line 551 of file block_scheduler.h.

template<class SwappableBlockType>
stxxl::block_scheduler_algorithm< SwappableBlockType >::block_scheduler_algorithm ( block_scheduler_algorithm< SwappableBlockType > *  old)
inline

Definition at line 556 of file block_scheduler.h.

template<class SwappableBlockType>
virtual stxxl::block_scheduler_algorithm< SwappableBlockType >::~block_scheduler_algorithm ( )
inlinevirtual

Definition at line 561 of file block_scheduler.h.

Member Function Documentation

template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm< SwappableBlockType >::explicit_timestep ( )
inlinevirtual
template<class SwappableBlockType>
block_scheduler_algorithm* stxxl::block_scheduler_algorithm< SwappableBlockType >::get_algorithm_from_block_scheduler ( )
inlineprotected

Definition at line 538 of file block_scheduler.h.

template<class SwappableBlockType>
internal_block_type* stxxl::block_scheduler_algorithm< SwappableBlockType >::get_free_internal_block_from_block_scheduler ( )
inlineprotected

Get an internal_block from the block_scheduler.

Returns
Pointer to the internal_block. NULL if none available.

Definition at line 543 of file block_scheduler.h.

template<class SwappableBlockType>
virtual const prediction_sequence_type& stxxl::block_scheduler_algorithm< SwappableBlockType >::get_prediction_sequence ( ) const
inlinevirtual
template<class SwappableBlockType>
virtual bool stxxl::block_scheduler_algorithm< SwappableBlockType >::is_initialized ( const swappable_block_identifier_type  sbid) const
inlinevirtual
template<class SwappableBlockType>
virtual bool stxxl::block_scheduler_algorithm< SwappableBlockType >::is_simulating ( ) const
inlinevirtual
template<class SwappableBlockType>
void stxxl::block_scheduler_algorithm< SwappableBlockType >::return_free_internal_block_to_block_scheduler ( internal_block_type iblock)
inlineprotected

Return an internal_block to the block_scheduler.

Definition at line 547 of file block_scheduler.h.

template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm< SwappableBlockType >::swappable_blocks_resize ( swappable_block_identifier_type  )
inlinevirtual

Member Data Documentation

template<class SwappableBlockType>
block_scheduler_type& stxxl::block_scheduler_algorithm< SwappableBlockType >::bs
template<class SwappableBlockType>
prediction_sequence_type stxxl::block_scheduler_algorithm< SwappableBlockType >::prediction_sequence
protected

Definition at line 536 of file block_scheduler.h.

template<class SwappableBlockType>
std::vector<SwappableBlockType>& stxxl::block_scheduler_algorithm< SwappableBlockType >::swappable_blocks
protected

Definition at line 535 of file block_scheduler.h.


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