/**************************************************************************** ** ** QPtrStack class documentation ** ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** ** This file is part of the Qt GUI Toolkit. ** ** This file may be used under the terms of the GNU General ** Public License versions 2.0 or 3.0 as published by the Free ** Software Foundation and appearing in the files LICENSE.GPL2 ** and LICENSE.GPL3 included in the packaging of this file. ** Alternatively you may (at your option) use any later version ** of the GNU General Public License if such license has been ** publicly approved by Trolltech ASA (or its successors, if any) ** and the KDE Free Qt Foundation. ** ** Please review the following information to ensure GNU General ** Public Licensing requirements will be met: ** http://trolltech.com/products/qt/licenses/licensing/opensource/. ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://trolltech.com/products/qt/licenses/licensing/licensingoverview ** or contact the sales department at sales@trolltech.com. ** ** This file may be used under the terms of the Q Public License as ** defined by Trolltech ASA and appearing in the file LICENSE.QPL ** included in the packaging of this file. Licensees holding valid Qt ** Commercial licenses may use this file in accordance with the Qt ** Commercial License Agreement provided with the Software. ** ** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted ** herein. ** **********************************************************************/ /***************************************************************************** QPtrStack documentation *****************************************************************************/ /*! \class QPtrStack qptrstack.h \brief The QPtrStack class is a template class that provides a stack. \ingroup tools QValueStack is an STL-compatible alternative to this class. Define a template instance QPtrStack\ to create a stack that operates on pointers to X, (X*). A stack is a last in, first out (LIFO) structure. Items are added to the top of the stack with push() and retrieved from the top with pop(). Use top() to get a reference to the top element without changing the stack. You can control the stack's deletion policy with setAutoDelete(). For compatibility with the QPtrCollection classes current() and remove() are provided; they both operate on the top(). \sa QPtrList QPtrQueue */ /*! \fn QPtrStack::QPtrStack () Creates an empty stack. */ /*! \fn QPtrStack::QPtrStack (const QPtrStack& s) Creates a stack by making a shallow copy of another stack \a s. */ /*! \fn QPtrStack::~QPtrStack () Destroys the stack. All items will be deleted if autoDelete() is TRUE. */ /*! \fn QPtrStack& QPtrStack::operator= (const QPtrStack& s) Sets the contents of this stack by making a shallow copy of another stack \a s. Elements currently in this stack will be deleted if autoDelete() is TRUE. */ /*! \fn bool QPtrStack::isEmpty () const Returns TRUE if the stack contains no elements; otherwise returns FALSE. */ /*! \fn void QPtrStack::push (const type* d) Adds an element \a d to the top of the stack. Last in, first out. */ /*! \fn type* QPtrStack::pop () Removes the top item from the stack and returns it. The stack must not be empty. */ /*! \fn bool QPtrStack::remove () Removes the top item from the stack and deletes it if autoDelete() is TRUE. Returns TRUE if there was an item to pop; otherwise returns FALSE. \sa clear() */ /*! \fn void QPtrStack::clear() Removes all items from the stack, deleting them if autoDelete() is TRUE. \sa remove() */ /*! \fn uint QPtrStack::count() const Returns the number of items in the stack. \sa isEmpty() */ /*! \fn type* QPtrStack::top () const Returns a pointer to the top item on the stack (most recently pushed). The stack is not changed. Returns 0 if the stack is empty. */ /*! \fn QPtrStack::operator type* ()const Returns a pointer to the top item on the stack (most recently pushed). The stack is not changed. Returns 0 if the stack is empty. */ /*! \fn type* QPtrStack::current () const Returns a pointer to the top item on the stack (most recently pushed). The stack is not changed. Returns 0 if the stack is empty. */ /*! \fn bool QPtrStack::autoDelete() const The same as QPtrCollection::autoDelete(). \sa setAutoDelete() */ /*! \fn void QPtrStack::setAutoDelete( bool enable ) Defines whether this stack auto-deletes its contents. The same as QPtrCollection::setAutoDelete(). If \a enable is TRUE the stack auto-deletes its contents; if \a enable is FALSE the stack does not delete its contents. \sa autoDelete() */ /*! \fn QDataStream& QPtrStack::read( QDataStream& s, QPtrCollection::Item& item ) Reads a stack 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& QPtrStack::write( QDataStream& s, QPtrCollection::Item item ) const Writes a stack item, \a item, to the stream \a s and returns a reference to the stream. The default implementation does nothing. \sa read() */