20 #ifndef __TPIE_QUEUE_H__
21 #define __TPIE_QUEUE_H__
31 #include <tpie/file_stream.h>
64 , m_currentQueue(true)
66 m_queueA.open(0, cacheHint, compressionFlags);
67 m_queueB.open(0, cacheHint, compressionFlags);
74 inline bool empty() {
return m_size == 0;}
80 inline stream_size_type
size() {
return m_size;}
86 inline void push(
const T & t) {
87 if (push_queue().
size() == 0 && !m_centerQueue.full()) {
89 m_centerQueue.push(t);
92 push_queue().write(t);
103 if(pop_queue().can_read()) {
105 return pop_queue().read();
106 }
else if (!m_centerQueue.empty()) {
108 const T & i = m_centerQueue.front();
115 return pop_queue().read();
124 if(pop_queue().can_read())
125 return pop_queue().peek();
126 else if(!m_centerQueue.empty())
127 return m_centerQueue.front();
130 return pop_queue().peek();
149 file_stream<T> & pop_queue() {
155 void swap_file_streams() {
156 m_currentQueue = !m_currentQueue;
158 push_queue().truncate(0);
161 stream_size_type m_size;
162 file_stream<T> m_queueA;
163 file_stream<T> m_queueB;
164 internal_queue<T> m_centerQueue;
169 TPIE_DEPRECATED_CLASS_A(
170 template <typename T>
174 queue(
const std::string& basename): tpie::queue<T>(basename) {}
181 return this->empty();
188 err enqueue(
const T &t) {
197 err dequeue(
const T **t) {
200 }
catch (end_of_stream_exception e) {
210 err peek(
const T **t) {
226 void persist(persistence) {
233 #endif // __TPIE_QUEUE_H__
Sequential access is intended.
memory_size_type get_block_size()
Get the TPIE block size.
Macros for deprecating classes, methods and typedefs.
Generic internal queue with known memory requirements.
This file contains a few deprecated definitions for legacy code.
stream_size_type size()
Returns the number of items currently on the queue.
const T & pop()
Dequeues an item.
bool empty()
Check if the queue is empty.
static memory_size_type memory_usage(double blockFactor=1.0)
Compute the memory used by the queue.
Persistence tags for deprecated TPIE AMI streams.
void push(const T &t)
Enqueue an item.
Basic Implementation of I/O Efficient FIFO queue.
compression_flags
Possible values for the compressionFlags parameter to stream::open.
err
Legacy TPIE error codes.
Compress some blocks according to available resources (time, memory).
queue(cache_hint cacheHint=access_sequential, compression_flags compressionFlags=compression_normal)
Constructor for Temporary Queue.
const T & front()
Returns at the frontmost item in the queue.
An attempt was made to read past the end of a stream or write past the end of a substream.