External FIFO queue container. More...
#include <queue.h>
Inherits noncopyable.

Public Types | |
| enum | { block_size = BlkSz } |
| typedef ValTp | value_type |
| typedef AllocStr | alloc_strategy_type |
| typedef SzTp | size_type |
|
typedef typed_block < block_size, value_type > | block_type |
| typedef BID< block_size > | bid_type |
Public Member Functions | |
| queue (unsigned_type w_pool_size=3, unsigned_type p_pool_size=1, int blocks2prefetch_=-1) | |
| Constructs empty queue with own write and prefetch block pool. | |
| _STXXL_DEPRECATED (queue(write_pool< block_type > &w_pool, prefetch_pool< block_type > &p_pool, int blocks2prefetch_=-1)) | |
| Constructs empty queue. | |
| queue (pool_type &pool_, int blocks2prefetch_=-1) | |
| Constructs empty queue. | |
| 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. | |
| unsigned_type | get_prefetch_aggr () const |
Returns the number of blocks prefetched from the front side. | |
| void | push (const value_type &val) |
| Adds an element in the queue. | |
| void | pop () |
| Removes element from the queue. | |
| size_type | size () const |
| Returns the size of the queue. | |
| bool | empty () const |
Returns true if queue is empty. | |
| value_type & | back () |
| Returns a mutable reference at the back of the queue. | |
| const value_type & | back () const |
| Returns a const reference at the back of the queue. | |
| value_type & | front () |
| Returns a mutable reference at the front of the queue. | |
| const value_type & | front () const |
| Returns a const reference at the front of the queue. | |
External FIFO queue container.
| ValTp | type of the contained objects (POD with no references to internal memory) | |
| BlkSz | size of the external memory block in bytes, default is STXXL_DEFAULT_BLOCK_SIZE(ValTp) | |
| AllocStr | parallel disk allocation strategy, default is STXXL_DEFAULT_ALLOC_STRATEGY | |
| SzTp | size data type, default is stxxl::uint64 |
| queue< ValTp, BlkSz, AllocStr, SzTp >::queue | ( | unsigned_type | w_pool_size = 3, |
|
| unsigned_type | p_pool_size = 1, |
|||
| int | blocks2prefetch_ = -1 | |||
| ) | [inline, explicit] |
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 |
| queue< ValTp, BlkSz, AllocStr, SzTp >::queue | ( | pool_type & | pool_, | |
| int | blocks2prefetch_ = -1 | |||
| ) | [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 |
| queue< ValTp, BlkSz, AllocStr, SzTp >::_STXXL_DEPRECATED | ( | queue< ValTp, BlkSz, AllocStr, SzTp >(write_pool< block_type > &w_pool, prefetch_pool< block_type > &p_pool, int blocks2prefetch_=-1) | ) | [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 |
| value_type& queue< ValTp, BlkSz, AllocStr, SzTp >::back | ( | ) | [inline] |
Returns a mutable reference at the back of the queue.
References queue< ValTp, BlkSz, AllocStr, SzTp >::empty().
| const value_type& queue< ValTp, BlkSz, AllocStr, SzTp >::back | ( | ) | const [inline] |
Returns a const reference at the back of the queue.
References queue< ValTp, BlkSz, AllocStr, SzTp >::empty().
| bool queue< ValTp, BlkSz, AllocStr, SzTp >::empty | ( | ) | const [inline] |
Returns true if queue is empty.
Referenced by queue< ValTp, BlkSz, AllocStr, SzTp >::back(), queue< ValTp, BlkSz, AllocStr, SzTp >::front(), and queue< ValTp, BlkSz, AllocStr, SzTp >::pop().
| const value_type& queue< ValTp, BlkSz, AllocStr, SzTp >::front | ( | ) | const [inline] |
Returns a const reference at the front of the queue.
References queue< ValTp, BlkSz, AllocStr, SzTp >::empty().
| value_type& queue< ValTp, BlkSz, AllocStr, SzTp >::front | ( | ) | [inline] |
Returns a mutable reference at the front of the queue.
References queue< ValTp, BlkSz, AllocStr, SzTp >::empty().
| unsigned_type queue< ValTp, BlkSz, AllocStr, SzTp >::get_prefetch_aggr | ( | ) | const [inline] |
Returns the number of blocks prefetched from the front side.
| void queue< ValTp, BlkSz, AllocStr, SzTp >::pop | ( | ) | [inline] |
Removes element from the queue.
References element_block< T, Size_ >::begin(), block_manager::delete_block(), queue< ValTp, BlkSz, AllocStr, SzTp >::empty(), read_write_pool< BlockType >::hint(), read_write_pool< BlockType >::read(), queue< ValTp, BlkSz, AllocStr, SzTp >::size(), and typed_block< RawSize_, T_, NRef_, InfoType_ >::size.
| void queue< ValTp, BlkSz, AllocStr, SzTp >::push | ( | const value_type & | val | ) | [inline] |
Adds an element in the queue.
References element_block< T, Size_ >::begin(), read_write_pool< BlockType >::hint(), block_manager::new_block(), typed_block< RawSize_, T_, NRef_, InfoType_ >::size, read_write_pool< BlockType >::steal(), and read_write_pool< BlockType >::write().
| void queue< ValTp, BlkSz, AllocStr, SzTp >::set_prefetch_aggr | ( | int_type | blocks2prefetch_ | ) | [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 |
References read_write_pool< BlockType >::size_prefetch().
| size_type queue< ValTp, BlkSz, AllocStr, SzTp >::size | ( | ) | const [inline] |
Returns the size of the queue.
Referenced by queue< ValTp, BlkSz, AllocStr, SzTp >::pop().
1.7.1