1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
// File generated by CPPExt (Value)
//
// Copyright (C) 1991 - 2000 by
// Matra Datavision SA. All rights reserved.
//
// Copyright (C) 2001 - 2004 by
// Open CASCADE SA. All rights reserved.
//
// This file is part of the Open CASCADE Technology software.
//
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA hereby disclaims all such warranties,
// including without limitation, any warranties of merchantability, fitness
// for a particular purpose or non-infringement. Please see the License for
// the specific terms and conditions governing rights and limitations under the
// License.
#ifndef _TCollection_BasicMapIterator_HeaderFile
#define _TCollection_BasicMapIterator_HeaderFile
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Address_HeaderFile
#include <Standard_Address.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class TCollection_BasicMap;
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif
//! This class provides basic services for the <br>
//! iterators on Maps. The iterators are inherited <br>
//! from this one. <br>
//! <br>
//! The iterator contains an array of pointers <br>
//! (buckets). Each bucket is a pointer on a node. A <br>
//! node contains a pointer on the next node. <br>
//! <br>
//! This class provides also basic services for the <br>
//! implementation of Maps. <br>
//! A map iterator provides a step by step exploration of all <br>
//! entries of a map. After initialization of a concrete derived <br>
//! iterator, use in a loop: <br>
//! - the function More to know if there is a current entry for <br>
//! the iterator in the map, <br>
//! - then the functions which read data on an entry of the <br>
//! map (these functions are provided by each type of map), <br>
//! - then the function Next to set the iterator to the next entry of the map. <br>
//! Warning <br>
//! - A map is a non-ordered data structure. The order in <br>
//! which entries of a map are explored by the iterator <br>
//! depends on its contents, and change when the map is edited. <br>
//! - It is not recommended to modify the contents of a map <br>
//! during iteration: the result is unpredictable. <br>
class TCollection_BasicMapIterator {
public:
void* operator new(size_t,void* anAddress)
{
return anAddress;
}
void* operator new(size_t size)
{
return Standard::Allocate(size);
}
void operator delete(void *anAddress)
{
if (anAddress) Standard::Free((Standard_Address&)anAddress);
}
// Methods PUBLIC
//
//! Resets the iterator to the first node. <br>
Standard_EXPORT void Reset() ;
//! Returns true if there is a current entry for this iterator in the map. <br>
//! Use the function Next to set this iterator to the position of <br>
//! the next entry, if it exists. <br>
Standard_Boolean More() const;
//! Sets this iterator to the position of the next entry of the map. <br>
//! Nothing is changed if there is no more entry to explore in <br>
//! the map: this iterator is always positioned on the last entry <br>
//! of the map but the function More returns false. <br>
Standard_EXPORT void Next() ;
protected:
// Methods PROTECTED
//
//! Creates an empty iterator. <br>
Standard_EXPORT TCollection_BasicMapIterator();
//! Initialize on the first node in the buckets. <br>
Standard_EXPORT TCollection_BasicMapIterator(const TCollection_BasicMap& M);
//! Initialize on the first node in the buckets. <br>
Standard_EXPORT void Initialize(const TCollection_BasicMap& M) ;
// Fields PROTECTED
//
Standard_Address myNode;
private:
// Methods PRIVATE
//
// Fields PRIVATE
//
Standard_Integer myNbBuckets;
Standard_Address myBuckets;
Standard_Integer myBucket;
};
#include <TCollection_BasicMapIterator.lxx>
// other Inline functions and methods (like "C++: function call" methods)
//
#endif
|