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

Block scheduling algorithm caching via the longest forward distance policy (offline). More...

#include <block_scheduler.h>

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

List of all members.

Classes

class  priority

Public Member Functions

 block_scheduler_algorithm_offline_lfd (block_scheduler_type &bs)
 block_scheduler_algorithm_offline_lfd (block_scheduler_algorithm_type *old)
virtual ~block_scheduler_algorithm_offline_lfd ()
virtual bool evictable_blocks_empty ()
virtual
swappable_block_identifier_type 
evictable_blocks_pop ()
virtual internal_block_typeacquire (const swappable_block_identifier_type sbid, const bool uninitialized=false)
virtual void release (swappable_block_identifier_type sbid, const bool dirty)
virtual void deinitialize (swappable_block_identifier_type sbid)
virtual void initialize (swappable_block_identifier_type sbid, external_block_type eblock)
virtual external_block_type extract_external_block (swappable_block_identifier_type sbid)

Protected Types

typedef block_scheduler
< SwappableBlockType > 
block_scheduler_type
typedef
block_scheduler_algorithm
< SwappableBlockType > 
block_scheduler_algorithm_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_algorithm_type::time_type 
time_type
typedef
block_scheduler_type::prediction_sequence_type 
prediction_sequence_type

Protected Member Functions

internal_block_typeget_free_internal_block ()
void return_free_internal_block (internal_block_type *iblock)
void init (block_scheduler_algorithm_type *old_algo)

Protected Attributes

addressable_priority_queue
< swappable_block_identifier_type,
priority
evictable_blocks
 Holds swappable blocks, whose internal block can be freed, i.e. that are internal but unacquired.
std::deque< std::pair< bool,
time_type > > 
next_use
 stores for the sequence of releases extracted from the prediction_sequence: (true, timestamp of the blocks next acquire) if it is acquired next (false, 0) if it is deinitialized next (false, 1) if it is not accessed any more (false, 2) if it is extracted next (false, 3) if it is initialized next

Detailed Description

template<class SwappableBlockType>
class stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >

Block scheduling algorithm caching via the longest forward distance policy (offline).

Definition at line 853 of file block_scheduler.h.


Member Typedef Documentation

template<class SwappableBlockType >
typedef block_scheduler_algorithm<SwappableBlockType> stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::block_scheduler_algorithm_type [protected]

Definition at line 857 of file block_scheduler.h.

template<class SwappableBlockType >
typedef block_scheduler<SwappableBlockType> stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::block_scheduler_type [protected]

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 856 of file block_scheduler.h.

template<class SwappableBlockType >
typedef block_scheduler_type::external_block_type stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::external_block_type [protected]

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 859 of file block_scheduler.h.

template<class SwappableBlockType >
typedef block_scheduler_type::internal_block_type stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::internal_block_type [protected]

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 858 of file block_scheduler.h.

template<class SwappableBlockType >
typedef block_scheduler_type::prediction_sequence_type stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::prediction_sequence_type [protected]

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 862 of file block_scheduler.h.

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 860 of file block_scheduler.h.

template<class SwappableBlockType >
typedef block_scheduler_algorithm_type::time_type stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::time_type [protected]

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 861 of file block_scheduler.h.


Constructor & Destructor Documentation

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

Definition at line 966 of file block_scheduler.h.

References init().

template<class SwappableBlockType >
stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::block_scheduler_algorithm_offline_lfd ( block_scheduler_algorithm_type old) [inline]

Definition at line 971 of file block_scheduler.h.

References init().

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

Definition at line 975 of file block_scheduler.h.


Member Function Documentation

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

Definition at line 911 of file block_scheduler.h.

template<class SwappableBlockType >
void stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::init ( block_scheduler_algorithm_type old_algo) [inline, protected]
template<class SwappableBlockType >
virtual void stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::initialize ( swappable_block_identifier_type  sbid,
external_block_type  eblock 
) [inline, virtual]
template<class SwappableBlockType >
virtual void stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::release ( swappable_block_identifier_type  sbid,
const bool  dirty 
) [inline, virtual]
template<class SwappableBlockType >
void stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::return_free_internal_block ( internal_block_type iblock) [inline, protected]

Definition at line 921 of file block_scheduler.h.


Member Data Documentation

Holds swappable blocks, whose internal block can be freed, i.e. that are internal but unacquired.

Definition at line 902 of file block_scheduler.h.

template<class SwappableBlockType >
std::deque< std::pair<bool, time_type> > stxxl::block_scheduler_algorithm_offline_lfd< SwappableBlockType >::next_use [protected]

stores for the sequence of releases extracted from the prediction_sequence: (true, timestamp of the blocks next acquire) if it is acquired next (false, 0) if it is deinitialized next (false, 1) if it is not accessed any more (false, 2) if it is extracted next (false, 3) if it is initialized next

Definition at line 909 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