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

Block scheduling algorithm caching via the least recently used policy (online). More...

#include <block_scheduler.h>

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

List of all members.

Public Member Functions

 block_scheduler_algorithm_online_lru (block_scheduler_type &bs)
 block_scheduler_algorithm_online_lru (block_scheduler_algorithm_type *old)
virtual ~block_scheduler_algorithm_online_lru ()
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

Protected Member Functions

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

Protected Attributes

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

Detailed Description

template<class SwappableBlockType>
class stxxl::block_scheduler_algorithm_online_lru< SwappableBlockType >

Block scheduling algorithm caching via the least recently used policy (online).

Definition at line 564 of file block_scheduler.h.


Member Typedef Documentation

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

Definition at line 568 of file block_scheduler.h.

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

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 567 of file block_scheduler.h.

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

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 570 of file block_scheduler.h.

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

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 569 of file block_scheduler.h.

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 571 of file block_scheduler.h.


Constructor & Destructor Documentation

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

Definition at line 603 of file block_scheduler.h.

References init().

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

Definition at line 607 of file block_scheduler.h.

References init().

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

Definition at line 611 of file block_scheduler.h.


Member Function Documentation

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

Definition at line 582 of file block_scheduler.h.

template<class SwappableBlockType>
void stxxl::block_scheduler_algorithm_online_lru< SwappableBlockType >::init ( ) [inline, protected]

Definition at line 595 of file block_scheduler.h.

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

Definition at line 592 of file block_scheduler.h.


Member Data Documentation

template<class SwappableBlockType>
addressable_fifo_queue<swappable_block_identifier_type> stxxl::block_scheduler_algorithm_online_lru< SwappableBlockType >::evictable_blocks [protected]

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

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