|
STXXL
1.4.1
|
External FIFO queue container.
Introduction to queue container: see STXXL Queue tutorial
Design and Internals of queue container: see Queue.
| ValueType | type of the contained objects (POD with no references to internal memory) |
| BlockSize | size of the external memory block in bytes, default is STXXL_DEFAULT_BLOCK_SIZE(ValueType) |
| AllocStr | parallel disk allocation strategy, default is STXXL_DEFAULT_ALLOC_STRATEGY |
| SizeType | size data type, default is stxxl::uint64 |
Inheritance diagram for stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >:
Collaboration diagram for stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >:Public Types | |
| enum | { block_size = BlockSize } |
| typedef AllocStr | alloc_strategy_type |
| typedef BID< block_size > | bid_type |
| typedef typed_block < block_size, value_type > | block_type |
| typedef SizeType | size_type |
| typedef ValueType | value_type |
Public Member Functions | |
Constructors/Destructors | |
| queue (int_type D=-1) | |
| Constructs empty queue with own write and prefetch block pool. More... | |
| queue (unsigned_type w_pool_size, unsigned_type p_pool_size, int blocks2prefetch_=-1) | |
| Constructs empty queue with own write and prefetch block pool. More... | |
| queue (write_pool< block_type > &w_pool, prefetch_pool< block_type > &p_pool, int blocks2prefetch_=-1) | |
| Constructs empty queue. More... | |
| queue (pool_type &pool_, int blocks2prefetch_=-1) | |
| Constructs empty queue. More... | |
| ~queue () | |
Modifiers | |
| void | swap (queue &obj) |
| void | push (const value_type &val) |
| Adds an element in the queue. More... | |
| void | pop () |
| Removes element from the queue. More... | |
Miscellaneous | |
| void | set_prefetch_aggr (int_type blocks2prefetch_) |
Defines the number of blocks to prefetch (front side). This method should be called whenever the prefetch pool is resized. More... | |
| unsigned_type | get_prefetch_aggr () const |
Returns the number of blocks prefetched from the front side. More... | |
Operators | |
| value_type & | back () |
| Returns a mutable reference at the back of the queue. More... | |
| const value_type & | back () const |
| Returns a const reference at the back of the queue. More... | |
| value_type & | front () |
| Returns a mutable reference at the front of the queue. More... | |
| const value_type & | front () const |
| Returns a const reference at the front of the queue. More... | |
Capacity | |
| size_type | size () const |
| Returns the size of the queue. More... | |
| bool | empty () const |
Returns true if queue is empty. More... | |
Private Types | |
| typedef read_write_pool < block_type > | pool_type |
Private Member Functions | |
| void | init (int blocks2prefetch_=-1) |
Private Member Functions inherited from stxxl::noncopyable | |
| noncopyable () | |
Private Attributes | |
| unsigned_type | alloc_count |
| alloc_strategy_type | alloc_strategy |
| block_type * | back_block |
| value_type * | back_element |
| std::deque< bid_type > | bids |
| unsigned_type | blocks2prefetch |
| block_manager * | bm |
| bool | delete_pool |
| block_type * | front_block |
| value_type * | front_element |
| size_type | m_size |
| pool_type * | pool |
| typedef AllocStr stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::alloc_strategy_type |
| typedef BID<block_size> stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::bid_type |
| typedef typed_block<block_size, value_type> stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::block_type |
|
private |
| typedef SizeType stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::size_type |
| typedef ValueType stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::value_type |
| anonymous enum |
|
inlineexplicit |
Constructs empty queue with own write and prefetch block pool.
| D | number of parallel disks, defaulting to the configured number of scratch disks, memory consumption will be 2 * D + 2 blocks (first and last block, D blocks as write cache, D block for prefetching) |
Definition at line 89 of file queue.h.
References STXXL_VERBOSE_QUEUE.
|
inlineexplicit |
Constructs empty queue with own write and prefetch block pool.
| w_pool_size | number of blocks in the write pool, must be at least 2, recommended at least 3 |
| p_pool_size | number of blocks in the prefetch pool, recommended at least 1 |
| blocks2prefetch_ | defines the number of blocks to prefetch (front side), default is number of block in the prefetch pool |
Definition at line 108 of file queue.h.
References STXXL_VERBOSE_QUEUE.
|
inline |
Constructs empty queue.
| w_pool | write pool |
| p_pool | prefetch pool |
| blocks2prefetch_ | defines the number of blocks to prefetch (front side), default is number of blocks in the prefetch pool |
Definition at line 128 of file queue.h.
References STXXL_VERBOSE_QUEUE.
|
inline |
Constructs empty queue.
| pool_ | block write/prefetch pool |
| blocks2prefetch_ | defines the number of blocks to prefetch (front side), default is number of blocks in the prefetch pool |
Definition at line 146 of file queue.h.
References STXXL_VERBOSE_QUEUE.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprivate |
Definition at line 181 of file queue.h.
References STXXL_ERRMSG, and STXXL_MSG.
|
inline |
Removes element from the queue.
Definition at line 288 of file queue.h.
References FMT_BID, STXXL_VERBOSE1, STXXL_VERBOSE_QUEUE, and UNLIKELY.
|
inline |
Adds an element in the queue.
Definition at line 230 of file queue.h.
References FMT_BID, STXXL_VERBOSE1, STXXL_VERBOSE_QUEUE, and UNLIKELY.
|
inline |
Defines the number of blocks to prefetch (front side). This method should be called whenever the prefetch pool is resized.
| blocks2prefetch_ | defines the number of blocks to prefetch (front side), a negative value means to use the number of blocks in the prefetch pool |
|
inline |
|
inline |
Definition at line 162 of file queue.h.
References stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::alloc_count, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::alloc_strategy, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::back_block, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::back_element, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::bids, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::blocks2prefetch, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::bm, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::delete_pool, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::front_block, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::front_element, stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::m_size, and stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::pool.
|
private |
Definition at line 75 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 74 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 71 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 73 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 76 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 78 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 77 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 68 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 70 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 72 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 67 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().
|
private |
Definition at line 69 of file queue.h.
Referenced by stxxl::queue< ValueType, BlockSize, AllocStr, SizeType >::swap().