SheafSystem  0.0.0.0
reserved_primary_index_space_iterator.h
Go to the documentation of this file.
1 
2 //
3 // Copyright (c) 2014 Limit Point Systems, Inc.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 
20 
21 #ifndef RESERVED_PRIMARY_INDEX_SPACE_ITERATOR_H
22 #define RESERVED_PRIMARY_INDEX_SPACE_ITERATOR_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef EXPLICIT_INDEX_SPACE_ITERATOR_H
29 #include "SheafSystem/explicit_index_space_iterator.h"
30 #endif
31 
32 namespace sheaf
33 {
34 
44 {
45 
47 
48  // ===========================================================
50  // ===========================================================
52 
53 public:
54 
59 
64 
69  pod_type xindex);
70 
75  const std::string& xname);
76 
81 
86 
90  pod_type offset() const;
91 
96  bool is_active_only() const;
97 
103  void put_is_active_only(bool xis_active_only);
104 
105 protected:
106 
111 
116 
122 
123 private:
124 
126 
127 
128  // ===========================================================
130  // ===========================================================
132 
133 public:
134 
135 protected:
136 
137 private:
138 
140 
141 
142  // ===========================================================
144  // ===========================================================
145 
146 public:
147 
151  virtual reserved_primary_index_space_iterator& operator=(const index_space_iterator& xother);
152 
156  virtual bool operator==(const index_space_iterator& xother) const;
157 
162  virtual reserved_primary_index_space_iterator* clone() const;
163 
164 protected:
165 
166 private:
167 
169 
170 
171  // ===========================================================
173  // ===========================================================
175 
176 public:
177 
181  virtual void next();
182 
186  virtual void reset();
187 
188 protected:
189 
190 private:
191 
193 
194 
195  // ===========================================================
197  // ===========================================================
199 
200 public:
201 
203 
205 
206 protected:
207 
212  virtual void attach_to(explicit_index_space_state* xstate);
213 
218  virtual bool conforms_to_state(explicit_index_space_state* xstate) const;
219 
220 private:
221 
223 
224 
225  // ===========================================================
227  // ===========================================================
229 
230 public:
231 
235  virtual bool is_ancestor_of(const any *other) const;
236 
240  virtual bool invariant() const ;
241 
242 protected:
243 
244 private:
245 
247 
248 };
249 
250 // ===========================================================
251 // NON-MEMBER FUNCTIONS
252 // ===========================================================
253 
254 } // namespace sheaf
255 
256 #endif // ifndef RESERVED_PRIMARY_INDEX_SPACE_ITERATOR_H
virtual void attach_to(pod_type xindex)
Attach to the state with index xindex in the id space family id_spaces().
bool _is_active_only
True if and only the active interval of the id space is iterated over. Otherwise, all the ids in the ...
An abstract iterator over the ids of an id space.
A computed implementation of abstract class primary_index_space_state. This representation is used fo...
Abstract base class with useful features for all objects.
Definition: any.h:39
An immutable abstract state for a space of alternate integer identifiers (aliases) for a subset of th...
An iterator over a reserved term in the primary sum id space in which the equivlence between the ids ...
virtual bool conforms_to_state(const index_space_collection &xhost, pod_type xlocal_id) const
True if this conforms to the handle type required by the state with local scope id xlocal_id in the h...
bool operator==(const singly_linked_list< T, Alloc > &lhs, const singly_linked_list< T, Alloc > &rhs)
Checks if the contents of lhs and rhs are equal, that is, whether lhs.size() == rhs.size() and each element in lhs compares equal with the element in rhs at the same position.
An implementation of class index_space_iterator for an explicit_index_space_state.
Namespace for the sheaves component of the sheaf system.
Factory and container for a family of id spaces.
pod_index_type pod_type
The "plain old data" index type for this.