Efficient implementation that uses prefetching and overlapping using (shared) buffers pools. More...
#include <stack.h>
Inherits noncopyable.
Public Types | |
enum | { blocks_per_page = cfg::blocks_per_page, block_size = cfg::block_size } |
typedef Config_ | cfg |
typedef cfg::value_type | value_type |
typedef cfg::alloc_strategy | alloc_strategy_type |
typedef cfg::size_type | size_type |
typedef typed_block < block_size, value_type > | block_type |
typedef BID< block_size > | bid_type |
Public Member Functions | |
grow_shrink_stack2 (pool_type &pool_, unsigned_type prefetch_aggressiveness=0) | |
Constructs stack. | |
_STXXL_DEPRECATED (grow_shrink_stack2(prefetch_pool< block_type > &p_pool_, write_pool< block_type > &w_pool_, unsigned_type prefetch_aggressiveness=0)) | |
Constructs stack. | |
void | swap (grow_shrink_stack2 &obj) |
size_type | size () const |
bool | empty () const |
void | push (const value_type &val) |
value_type & | top () |
const value_type & | top () const |
void | pop () |
void | set_prefetch_aggr (unsigned_type new_p) |
Sets level of prefetch aggressiveness (number of blocks from the prefetch pool used for prefetching). | |
unsigned_type | get_prefetch_aggr () const |
Returns number of blocks used for prefetching. |
Efficient implementation that uses prefetching and overlapping using (shared) buffers pools.
grow_shrink_stack2< Config_ >::grow_shrink_stack2 | ( | pool_type & | pool_, | |
unsigned_type | prefetch_aggressiveness = 0 | |||
) | [inline] |
Constructs stack.
pool_ | block write/prefetch pool | |
prefetch_aggressiveness | number of blocks that will be used from prefetch pool |
grow_shrink_stack2< Config_ >::_STXXL_DEPRECATED | ( | grow_shrink_stack2< Config_ >(prefetch_pool< block_type > &p_pool_,write_pool< block_type > &w_pool_,unsigned_type prefetch_aggressiveness=0) | ) | [inline] |
Constructs stack.
p_pool_ | prefetch pool, that will be used for block prefetching | |
w_pool_ | write pool, that will be used for block writing | |
prefetch_aggressiveness | number of blocks that will be used from prefetch pool |
unsigned_type grow_shrink_stack2< Config_ >::get_prefetch_aggr | ( | ) | const [inline] |
Returns number of blocks used for prefetching.
void grow_shrink_stack2< Config_ >::set_prefetch_aggr | ( | unsigned_type | new_p | ) | [inline] |
Sets level of prefetch aggressiveness (number of blocks from the prefetch pool used for prefetching).
new_p | new value for the prefetch aggressiveness |