File: TCollection_BasicMapIterator.hxx

package info (click to toggle)
opencascade 6.2-7
  • links: PTS
  • area: non-free
  • in suites: lenny
  • size: 444,652 kB
  • ctags: 256,750
  • sloc: cpp: 1,150,123; ansic: 225,762; tcl: 30,130; makefile: 12,619; sh: 7,958; xml: 3,981; lisp: 283; java: 212; csh: 203; perl: 15
file content (148 lines) | stat: -rw-r--r-- 4,448 bytes parent folder | download | duplicates (2)
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