0024166: Unable to create file with "Save" menu of voxeldemo Qt sample
[occt.git] / src / NCollection / NCollection_TListIterator.hxx
CommitLineData
b311480e 1// Created on: 2002-04-23
2// Created by: Alexander KARTOMIN
3// Copyright (c) 2002-2012 OPEN CASCADE SAS
4//
5// The content of this file is subject to the Open CASCADE Technology Public
6// License Version 6.5 (the "License"). You may not use the content of this file
7// except in compliance with the License. Please obtain a copy of the License
8// at http://www.opencascade.org and read it completely before using this file.
9//
10// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12//
13// The Original Code and all software distributed under the License is
14// distributed on an "AS IS" basis, without warranty of any kind, and the
15// Initial Developer hereby disclaims all such warranties, including without
16// limitation, any warranties of merchantability, fitness for a particular
17// purpose or non-infringement. Please see the License for the specific terms
18// and conditions governing the rights and limitations under the License.
19
7fd59977 20
21#ifndef NCollection_TListIterator_HeaderFile
22#define NCollection_TListIterator_HeaderFile
23
24#include <NCollection_BaseCollection.hxx>
25#include <NCollection_BaseList.hxx>
26#include <NCollection_TListNode.hxx>
27
7fd59977 28/**
29 * Purpose: This Iterator class iterates on BaseList of TListNode and is
30 * instantiated in List/Set/Queue/Stack
31 * Remark: TListIterator is internal class
32 */
33template <class TheItemType> class NCollection_TListIterator
34 : public NCollection_BaseCollection<TheItemType>::Iterator,
35 public NCollection_BaseList::Iterator
36{
37 public:
38 //! Empty constructor - for later Init
39 NCollection_TListIterator (void) :
40 NCollection_BaseList::Iterator () {}
41 //! Constructor with initialisation
42 NCollection_TListIterator (const NCollection_BaseList& theList) :
43 NCollection_BaseList::Iterator (theList) {}
44 //! Assignment
45 NCollection_TListIterator& operator= (const NCollection_TListIterator& theIt)
46 {
47 NCollection_BaseList::Iterator& me = * this;
48 me.operator= (theIt);
49 return * this;
50 }
51 //! Check end
52 virtual Standard_Boolean More (void) const
53 { return (myCurrent!=NULL); }
54 //! Make step
55 virtual void Next (void)
56 {
57 myPrevious = myCurrent;
58 myCurrent = myCurrent->Next();
59 }
60 //! Constant Value access
61 virtual const TheItemType& Value (void) const
62 { return ((const NCollection_TListNode<TheItemType>*) myCurrent)->Value(); }
63 //! Variable Value access
64 virtual TheItemType& ChangeValue (void) const
65 { return ((NCollection_TListNode<TheItemType> *)myCurrent)->ChangeValue(); }
7fd59977 66};
67
7fd59977 68#endif