SheafSystem  0.0.0.0
scattered_insertion_index_space_handle.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 SCATTERED_INSERTION_INDEX_SPACE_HANDLE_H
22 #define SCATTERED_INSERTION_INDEX_SPACE_HANDLE_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef GATHERED_INSERTION_INDEX_SPACE_HANDLE_H
29 #include "SheafSystem/gathered_insertion_index_space_handle.h"
30 #endif
31 
32 namespace sheaf
33 {
34 
35 class scattered_insertion_index_space_state;
36 
41 {
42 
44  friend class id_space_names_record;
45 
46  // ===========================================================
48  // ===========================================================
50 
51 public:
52 
57 
62 
67 
71  scattered_insertion_index_space_handle(const index_space_family& xid_spaces, const std::string& xname);
72 
78 
83 
84 protected:
85 
87 
92 
96  const scattered_insertion_index_space_state& state() const;
97 
98 private:
99 
101 
102 
103  // ===========================================================
105  // ===========================================================
107 
108 public:
109 
114  void insert(pod_type xid, const scoped_index& xhub_id);
115 
119  void insert(pod_type xid, pod_type xhub_id);
120 
121 protected:
122 
123 private:
124 
126 
127  // ===========================================================
129  // ===========================================================
131 
132 public:
133 
134 protected:
135 
136 private:
137 
139 
140 
141  // ===========================================================
143  // ===========================================================
145 
146 public:
147 
148 protected:
149 
150 private:
151 
153 
154 
155  // ===========================================================
157  // ===========================================================
159 
160 public:
161 
166  virtual scattered_insertion_index_space_handle& operator=(const index_space_handle& xother);
167 
172  virtual scattered_insertion_index_space_handle* clone() const;
173 
174 protected:
175 
176 private:
177 
179 
180 
181  // ===========================================================
183  // ===========================================================
185 
186 public:
187 
188 protected:
189 
190 private:
191 
193 
194 
195  // ===========================================================
197  // ===========================================================
199 
200 public:
201 
203 
208  virtual bool conforms_to_state(const index_space_collection& xhost, pod_type xlocal_id) const;
209 
210 protected:
211 
212 private:
213 
215 
216 
217  // ===========================================================
219  // ===========================================================
221 
222 public:
223 
227  virtual bool is_ancestor_of(const any *other) const;
228 
232  virtual bool invariant() const;
233 
234 protected:
235 
236 private:
237 
239 
240 };
241 
242 // ===========================================================
243 // NON-MEMBER FUNCTIONS
244 // ===========================================================
245 
249 SHEAF_DLL_SPEC
250 size_t deep_size(const scattered_insertion_index_space_handle& xn, bool xinclude_shallow = true);
251 
252 } // end namespace sheaf
253 
254 #endif // ifndef SCATTERED_INSERTION_INDEX_SPACE_HANDLE_H
An implementation of class explicit_index_space_state that supports either gathered or scattered inse...
An abstract handle to a space of alternate integer identifiers (aliases) for a subset of a hub set of...
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...
gathered_insertion_index_space_state & state()
The gathered_insertion id space state (gathered_insertion version).
Abstract base class with useful features for all objects.
Definition: any.h:39
pod_index_type pod_type
The "plain old data" index type for this.
An index within the external ("client") scope of a given id space.
Definition: scoped_index.h:116
A handle for a gathered_insertion_index_space_state.
SHEAF_DLL_SPEC size_t deep_size(const dof_descriptor_array &xp, bool xinclude_shallow=true)
The deep size of the referenced object of type dof_descriptor_array.
A wrapper/adapter for the id space names record. Intended for transferring id map data between the ke...
A collection of id space states. This is a virtual class with provides an interface for accessing the...
A handle for a scattered_insertion_index_space_state.
Namespace for the sheaves component of the sheaf system.
Factory and container for a family of id spaces.