SheafSystem  0.0.0.0
primitives_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 PRIMITIVES_INDEX_SPACE_ITERATOR_H
22 #define PRIMITIVES_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 
39 {
40 
41  friend class primitives_index_space_state;
42 
43  // ===========================================================
45  // ===========================================================
47 
48 public:
49 
54 
59 
64  pod_type xindex);
65 
70  const std::string& xname);
71 
76 
81 
82 protected:
83 
84 private:
85 
87 
88 
89  // ===========================================================
91  // ===========================================================
93 
94 public:
95 
96 protected:
97 
98 private:
99 
101 
102 
103  // ===========================================================
105  // ===========================================================
106 
107 public:
108 
112  virtual primitives_index_space_iterator& operator=(const index_space_iterator& xother);
113 
118  virtual primitives_index_space_iterator* clone() const;
119 
120 protected:
121 
122 private:
123 
125 
126 
127  // ===========================================================
129  // ===========================================================
131 
132 public:
133 
137  virtual void next();
138 
142  virtual void reset();
143 
144 protected:
145 
146 private:
147 
149 
150 
151  // ===========================================================
153  // ===========================================================
155 
156 public:
157 
159 
161 
162 protected:
163 
168  virtual void attach_to(explicit_index_space_state* xstate);
169 
174  virtual bool conforms_to_state(explicit_index_space_state* xstate) const;
175 
176 private:
177 
179 
180 
181  // ===========================================================
183  // ===========================================================
185 
186 public:
187 
191  virtual bool is_ancestor_of(const any *other) const;
192 
196  virtual bool invariant() const ;
197 
198 protected:
199 
200 private:
201 
203 
204 };
205 
206 // ===========================================================
207 // NON-MEMBER FUNCTIONS
208 // ===========================================================
209 
210 } // namespace sheaf
211 
212 #endif // ifndef PRIMITIVES_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().
An abstract iterator over the ids of an id space.
Abstract base class with useful features for all objects.
Definition: any.h:39
A implementation of abstract class explicit_index_space_state for the primitives row dof id space...
An immutable abstract state for a space of alternate integer identifiers (aliases) for a subset of th...
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...
An iterator over the id space for the primitives row dof id space.
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.