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_simulation< SwappableBlockType > Class Template Reference

Pseudo block scheduling algorithm only recording the request sequence. More...

#include <block_scheduler.h>

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

List of all members.

Public Member Functions

 block_scheduler_algorithm_simulation (block_scheduler_type &bs)
 block_scheduler_algorithm_simulation (block_scheduler_algorithm_type *old)
virtual ~block_scheduler_algorithm_simulation ()
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)
virtual external_block_type extract_external_block (swappable_block_identifier_type sbid)
virtual void swappable_blocks_resize (swappable_block_identifier_type size)
virtual bool is_initialized (const swappable_block_identifier_type sbid) const
virtual void explicit_timestep ()
virtual bool is_simulating () const

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_type::prediction_sequence_element 
prediction_sequence_element_type
typedef
block_scheduler_algorithm_type::time_type 
time_type

Protected Member Functions

void return_free_internal_block (internal_block_type *iblock)
void init ()

Protected Attributes

std::stack
< swappable_block_identifier_type
evictable_blocks
 Holds swappable blocks, whose internal block can be freed, i.e. that are internal but unacquired.
time_type time_count
bool last_op_release
std::vector< int_typereference_counts
internal_block_type dummy_block

Detailed Description

template<class SwappableBlockType>
class stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >

Pseudo block scheduling algorithm only recording the request sequence.

Definition at line 711 of file block_scheduler.h.


Member Typedef Documentation

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

Definition at line 715 of file block_scheduler.h.

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

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 714 of file block_scheduler.h.

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

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 717 of file block_scheduler.h.

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

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 716 of file block_scheduler.h.

Definition at line 719 of file block_scheduler.h.

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 718 of file block_scheduler.h.

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

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 720 of file block_scheduler.h.


Constructor & Destructor Documentation

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

Definition at line 749 of file block_scheduler.h.

References init().

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

Definition at line 756 of file block_scheduler.h.

References init().

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

Definition at line 763 of file block_scheduler.h.


Member Function Documentation

template<class SwappableBlockType>
virtual internal_block_type& stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::acquire ( const swappable_block_identifier_type  sbid,
const bool  uninitialized = false 
) [inline, virtual]

Implements stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 786 of file block_scheduler.h.

Referenced by main().

template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::deinitialize ( swappable_block_identifier_type  sbid) [inline, virtual]
template<class SwappableBlockType>
virtual bool stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::evictable_blocks_empty ( ) [inline, virtual]
template<class SwappableBlockType>
virtual swappable_block_identifier_type stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::evictable_blocks_pop ( ) [inline, virtual]
template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::explicit_timestep ( ) [inline, virtual]

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 844 of file block_scheduler.h.

template<class SwappableBlockType>
virtual external_block_type stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::extract_external_block ( swappable_block_identifier_type  sbid) [inline, virtual]
template<class SwappableBlockType>
void stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::init ( ) [inline, protected]

Definition at line 739 of file block_scheduler.h.

template<class SwappableBlockType>
virtual void stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::initialize ( swappable_block_identifier_type  sbid,
external_block_type   
) [inline, virtual]
template<class SwappableBlockType>
virtual bool stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::is_initialized ( const swappable_block_identifier_type  sbid) const [inline, virtual]

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 839 of file block_scheduler.h.

template<class SwappableBlockType>
virtual bool stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::is_simulating ( ) const [inline, virtual]

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 847 of file block_scheduler.h.

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

Definition at line 736 of file block_scheduler.h.

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

Reimplemented from stxxl::block_scheduler_algorithm< SwappableBlockType >.

Definition at line 834 of file block_scheduler.h.


Member Data Documentation

template<class SwappableBlockType>
internal_block_type stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::dummy_block [protected]

Definition at line 734 of file block_scheduler.h.

template<class SwappableBlockType>
std::stack<swappable_block_identifier_type> stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::evictable_blocks [protected]

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

Definition at line 730 of file block_scheduler.h.

template<class SwappableBlockType>
bool stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::last_op_release [protected]

Definition at line 732 of file block_scheduler.h.

template<class SwappableBlockType>
std::vector<int_type> stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::reference_counts [protected]

Definition at line 733 of file block_scheduler.h.

template<class SwappableBlockType>
time_type stxxl::block_scheduler_algorithm_simulation< SwappableBlockType >::time_count [protected]

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