Stxxl  1.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes
stxxl::block_scheduler_algorithm< SwappableBlockType > Class Template Reference

Interface of a block scheduling algorithm. More...

#include <block_scheduler.h>

Inheritance diagram for stxxl::block_scheduler_algorithm< SwappableBlockType >:
Inheritance graph
[legend]
Collaboration diagram for stxxl::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 ~block_scheduler_algorithm ()
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_typeacquire (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_typeget_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 stxxl::block_scheduler_algorithm< SwappableBlockType >

Interface of a block scheduling algorithm.

Definition at line 501 of file block_scheduler.h.


Member Typedef Documentation

template<class SwappableBlockType>
typedef block_scheduler<SwappableBlockType> stxxl::block_scheduler_algorithm< SwappableBlockType >::block_scheduler_type [protected]
template<class SwappableBlockType>
typedef block_scheduler_type::external_block_type stxxl::block_scheduler_algorithm< SwappableBlockType >::external_block_type [protected]
template<class SwappableBlockType>
typedef block_scheduler_type::internal_block_type stxxl::block_scheduler_algorithm< SwappableBlockType >::internal_block_type [protected]
template<class SwappableBlockType>
typedef block_scheduler_type::prediction_sequence_type stxxl::block_scheduler_algorithm< SwappableBlockType >::prediction_sequence_type [protected]
template<class SwappableBlockType>
typedef block_scheduler_type::swappable_block_identifier_type stxxl::block_scheduler_algorithm< SwappableBlockType >::swappable_block_identifier_type [protected]
template<class SwappableBlockType>
typedef block_scheduler_type::time_type stxxl::block_scheduler_algorithm< SwappableBlockType >::time_type [protected]

Constructor & Destructor Documentation

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

Definition at line 530 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 535 of file block_scheduler.h.

template<class SwappableBlockType>
virtual stxxl::block_scheduler_algorithm< SwappableBlockType >::~block_scheduler_algorithm ( ) [inline, virtual]

Definition at line 540 of file block_scheduler.h.


Member Function Documentation

template<class SwappableBlockType>
virtual internal_block_type& stxxl::block_scheduler_algorithm< SwappableBlockType >::acquire ( const swappable_block_identifier_type  sbid,
const bool  uninitialized = false 
) [pure virtual]
template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm< SwappableBlockType >::deinitialize ( swappable_block_identifier_type  sbid) [pure virtual]
template<class SwappableBlockType>
virtual bool stxxl::block_scheduler_algorithm< SwappableBlockType >::evictable_blocks_empty ( ) [pure virtual]
template<class SwappableBlockType>
virtual swappable_block_identifier_type stxxl::block_scheduler_algorithm< SwappableBlockType >::evictable_blocks_pop ( ) [pure virtual]
template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm< SwappableBlockType >::explicit_timestep ( ) [inline, virtual]
template<class SwappableBlockType>
virtual external_block_type stxxl::block_scheduler_algorithm< SwappableBlockType >::extract_external_block ( swappable_block_identifier_type  sbid) [pure virtual]
template<class SwappableBlockType>
block_scheduler_algorithm* stxxl::block_scheduler_algorithm< SwappableBlockType >::get_algorithm_from_block_scheduler ( ) [inline, protected]

Definition at line 517 of file block_scheduler.h.

template<class SwappableBlockType>
internal_block_type* stxxl::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.

Definition at line 522 of file block_scheduler.h.

template<class SwappableBlockType>
virtual const prediction_sequence_type& stxxl::block_scheduler_algorithm< SwappableBlockType >::get_prediction_sequence ( ) const [inline, virtual]
template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm< SwappableBlockType >::initialize ( swappable_block_identifier_type  sbid,
external_block_type  eblock 
) [pure virtual]
template<class SwappableBlockType>
virtual bool stxxl::block_scheduler_algorithm< SwappableBlockType >::is_initialized ( const swappable_block_identifier_type  sbid) const [inline, virtual]
template<class SwappableBlockType>
virtual bool stxxl::block_scheduler_algorithm< SwappableBlockType >::is_simulating ( ) const [inline, virtual]
template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm< SwappableBlockType >::release ( swappable_block_identifier_type  sbid,
const bool  dirty 
) [pure virtual]
template<class SwappableBlockType>
void stxxl::block_scheduler_algorithm< SwappableBlockType >::return_free_internal_block_to_block_scheduler ( internal_block_type iblock) [inline, protected]

Return an internal_block to the block_scheduler.

Definition at line 526 of file block_scheduler.h.

template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm< SwappableBlockType >::swappable_blocks_resize ( swappable_block_identifier_type  ) [inline, virtual]

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 515 of file block_scheduler.h.

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

Definition at line 514 of file block_scheduler.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines