Stxxl
1.4.0
|
Stack type generator. More...
#include <stack.h>
Public Types | |
typedef IF< Externality==internal, IntStackTp, MigrOrNotStackTp > ::result | result |
Private Types | |
typedef stack_config_generator < ValTp, BlocksPerPage, BlkSz, AllocStr, SzTp > | cfg |
typedef IF< Behaviour==grow_shrink, grow_shrink_stack< cfg > , grow_shrink_stack2< cfg > >::result | GrShrTp |
typedef IF< Behaviour==normal, normal_stack< cfg >, GrShrTp > ::result | ExtStackTp |
typedef IF< Externality==migrating, migrating_stack< MigrCritSize, ExtStackTp, IntStackTp > , ExtStackTp >::result | MigrOrNotStackTp |
Stack type generator.
ValTp | type of contained objects (POD with no references to internal memory) |
Externality | one of
|
Behaviour | chooses external implementation, one of:
|
BlocksPerPage | defines how many blocks has one page of internal cache of an external implementation, default is four. All external implementations have two pages. |
BlkSz | external block size in bytes, default is 2 MiB |
IntStackTp | type of internal stack used for some implementations |
MigrCritSize | threshold value for number of elements when stxxl::migrating_stack migrates to the external memory |
AllocStr | one of allocation strategies: striping , RC , SR , or FR default is RC |
SzTp | size type, default is stxxl::int64 |
Configured stack type is available as STACK_GENERATOR<>::result
.
Examples:
STACK_GENERATOR<double>::result
external stack of double's
,STACK_GENERATOR<double,internal>::result
internal stack of double's
,STACK_GENERATOR<double,external,grow_shrink>::result
external grow-shrink stack of double's
,STACK_GENERATOR<double,migrating,grow_shrink>::result
migrating grow-shrink stack of double's
, internal implementation is std::stack<double>
,STACK_GENERATOR<double,migrating,grow_shrink,1,512*1024>::result
migrating grow-shrink stack of double's
with 1 block per page and block size 512 KiB (total memory occupied = 1 MiB). For configured stack method semantics see documentation of the STL std::stack
. typedef stack_config_generator<ValTp, BlocksPerPage, BlkSz, AllocStr, SzTp> stxxl::STACK_GENERATOR< ValTp, Externality, Behaviour, BlocksPerPage, BlkSz, IntStackTp, MigrCritSize, AllocStr, SzTp >::cfg [private] |
typedef IF<Behaviour == normal, normal_stack<cfg>, GrShrTp>::result stxxl::STACK_GENERATOR< ValTp, Externality, Behaviour, BlocksPerPage, BlkSz, IntStackTp, MigrCritSize, AllocStr, SzTp >::ExtStackTp [private] |
typedef IF<Behaviour == grow_shrink, grow_shrink_stack<cfg>, grow_shrink_stack2<cfg> >::result stxxl::STACK_GENERATOR< ValTp, Externality, Behaviour, BlocksPerPage, BlkSz, IntStackTp, MigrCritSize, AllocStr, SzTp >::GrShrTp [private] |
typedef IF<Externality == migrating, migrating_stack<MigrCritSize, ExtStackTp, IntStackTp>, ExtStackTp>::result stxxl::STACK_GENERATOR< ValTp, Externality, Behaviour, BlocksPerPage, BlkSz, IntStackTp, MigrCritSize, AllocStr, SzTp >::MigrOrNotStackTp [private] |
typedef IF<Externality == internal, IntStackTp, MigrOrNotStackTp>::result stxxl::STACK_GENERATOR< ValTp, Externality, Behaviour, BlocksPerPage, BlkSz, IntStackTp, MigrCritSize, AllocStr, SzTp >::result |