/**************************************************************************** | |
** | |
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). | |
** All rights reserved. | |
** Contact: Nokia Corporation (qt-info@nokia.com) | |
** | |
** This file is part of the documentation of the Qt Toolkit. | |
** | |
** $QT_BEGIN_LICENSE:FDL$ | |
** GNU Free Documentation License | |
** Alternatively, this file may be used under the terms of the GNU Free | |
** Documentation License version 1.3 as published by the Free Software | |
** Foundation and appearing in the file included in the packaging of | |
** this file. | |
** | |
** Other Usage | |
** Alternatively, this file may be used in accordance with the terms | |
** and conditions contained in a signed written agreement between you | |
** and Nokia. | |
** | |
** | |
** | |
** | |
** $QT_END_LICENSE$ | |
** | |
****************************************************************************/ | |
/*! | |
\class Q3PtrQueue | |
\brief The Q3PtrQueue class is a template class that provides a queue. | |
\compat | |
Q3ValueVector can be used as an STL-compatible alternative to this | |
class. | |
A template instance Q3PtrQueue\<X\> is a queue that operates on | |
pointers to X (X*). | |
A queue is a first in, first out structure. Items are added to the | |
tail of the queue with enqueue() and retrieved from the head with | |
dequeue(). You can peek at the head item without dequeing it using | |
head(). | |
You can control the queue's deletion policy with setAutoDelete(). | |
For compatibility with the Q3PtrCollection classes, current() and | |
remove() are provided; both operate on the head(). | |
\sa Q3PtrList Q3PtrStack | |
*/ | |
/*! | |
\fn Q3PtrQueue::Q3PtrQueue () | |
Creates an empty queue with autoDelete() set to FALSE. | |
*/ | |
/*! | |
\fn Q3PtrQueue::Q3PtrQueue( const Q3PtrQueue<type>& queue ) | |
Creates a queue from \a queue. | |
Only the pointers are copied; the items are not. The autoDelete() | |
flag is set to FALSE. | |
*/ | |
/*! | |
\fn Q3PtrQueue::~Q3PtrQueue() | |
Destroys the queue. Items in the queue are deleted if autoDelete() | |
is TRUE. | |
*/ | |
/*! | |
\fn Q3PtrQueue<type>& Q3PtrQueue::operator= (const Q3PtrQueue<type>& queue) | |
Assigns \a queue to this queue and returns a reference to this | |
queue. | |
This queue is first cleared and then each item in \a queue is | |
enqueued to this queue. Only the pointers are copied. | |
\warning The autoDelete() flag is not modified. If it is TRUE for | |
both \a queue and this queue, deleting the two lists will cause \e | |
double-deletion of the items. | |
*/ | |
/*! | |
\fn bool Q3PtrQueue::isEmpty() const | |
Returns TRUE if the queue is empty; otherwise returns FALSE. | |
\sa count() dequeue() head() | |
*/ | |
/*! | |
\fn void Q3PtrQueue::enqueue (const type* d) | |
Adds item \a d to the tail of the queue. | |
\sa count() dequeue() | |
*/ | |
/*! | |
\fn type* Q3PtrQueue::dequeue () | |
Takes the head item from the queue and returns a pointer to it. | |
Returns 0 if the queue is empty. | |
\sa enqueue() count() | |
*/ | |
/*! | |
\fn bool Q3PtrQueue::remove() | |
Removes the head item from the queue, and returns TRUE if there | |
was an item, i.e. the queue wasn't empty; otherwise returns FALSE. | |
The item is deleted if autoDelete() is TRUE. | |
\sa head() isEmpty() dequeue() | |
*/ | |
/*! | |
\fn void Q3PtrQueue::clear() | |
Removes all items from the queue, and deletes them if autoDelete() | |
is TRUE. | |
\sa remove() | |
*/ | |
/*! | |
\fn uint Q3PtrQueue::count() const | |
Returns the number of items in the queue. | |
\sa isEmpty() | |
*/ | |
/*! | |
\fn type* Q3PtrQueue::head() const | |
Returns a pointer to the head item in the queue. The queue is not | |
changed. Returns 0 if the queue is empty. | |
\sa dequeue() isEmpty() | |
*/ | |
/*! | |
\fn Q3PtrQueue::operator type*() const | |
Returns a pointer to the head item in the queue. The queue is not | |
changed. Returns 0 if the queue is empty. | |
\sa dequeue() isEmpty() | |
*/ | |
/*! | |
\fn type* Q3PtrQueue::current() const | |
Returns a pointer to the head item in the queue. The queue is not | |
changed. Returns 0 if the queue is empty. | |
\sa dequeue() isEmpty() | |
*/ | |
/*! | |
\fn bool Q3PtrQueue::autoDelete() const | |
Returns the setting of the auto-delete option. The default is | |
FALSE. | |
\sa setAutoDelete() | |
*/ | |
/*! | |
\fn void Q3PtrQueue::setAutoDelete( bool enable ) | |
Sets the queue to auto-delete its contents if \a enable is TRUE | |
and not to delete them if \a enable is FALSE. | |
If auto-deleting is turned on, all the items in a queue are | |
deleted when the queue itself is deleted. This can be quite | |
convenient if the queue has the only pointer to the items. | |
The default setting is FALSE, for safety. If you turn it on, be | |
careful about copying the queue: you might find yourself with two | |
queues deleting the same items. | |
\sa autoDelete() | |
*/ | |
/*! | |
\fn QDataStream& Q3PtrQueue::read( QDataStream& s, | |
Q3PtrCollection::Item& item ) | |
Reads a queue item, \a item, from the stream \a s and returns a | |
reference to the stream. | |
The default implementation sets \a item to 0. | |
\sa write() | |
*/ | |
/*! | |
\fn QDataStream& Q3PtrQueue::write( QDataStream& s, | |
Q3PtrCollection::Item item ) const | |
Writes a queue item, \a item, to the stream \a s and returns a | |
reference to the stream. | |
The default implementation does nothing. | |
\sa read() | |
*/ |