|
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 |
1.7.6.1