SheafSystem  0.0.0.0
scattered_insertion_index_space_state.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_STATE_H
22 #define SCATTERED_INSERTION_INDEX_SPACE_STATE_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef GATHERED_INSERTION_INDEX_SPACE_STATE_H
29 #include "SheafSystem/gathered_insertion_index_space_state.h"
30 #endif
31 
32 namespace sheaf
33 {
34 
35 class scattered_insertion_index_space_handle;
36 
46 {
47 
48  // ===========================================================
50  // ===========================================================
52 
53 public:
54 
55 protected:
56 
61 
66 
71 
72 private:
73 
75 
76 
77  // ===========================================================
79  // ===========================================================
81 
82 public:
83 
88  void insert(pod_type xid, const scoped_index& xhub_id);
89 
93  void insert(pod_type xid, pod_type xhub_id);
94 
95 protected:
96 
97 private:
98 
100 
101  // ===========================================================
103  // ===========================================================
105 
106 public:
107 
108 protected:
109 
110 private:
111 
113 
114 
115  // ===========================================================
117  // ===========================================================
119 
120 public:
121 
122 protected:
123 
127  virtual void map_rep_insert_entry(pod_type xdomain_id, pod_type xrange_id) = 0;
128 
129 private:
130 
132 
133 
134  // ===========================================================
136  // ===========================================================
138 
139 public:
140 
144  virtual bool operator==(const explicit_index_space_state& xother) const;
145 
146 protected:
147 
151  virtual scattered_insertion_index_space_state& operator=(const explicit_index_space_state& xother);
152 
153 private:
154 
156 
157 
158  // ===========================================================
160  // ===========================================================
162 
163 public:
164 
165 protected:
166 
167 private:
168 
170 
171 
172  // ===========================================================
174  // ===========================================================
176 
177 public:
178 
182  virtual const std::string& class_name() const;
183 
184 protected:
185 
186 private:
187 
189 
190 
191  // ===========================================================
193  // ===========================================================
195 
196 public:
197 
201  virtual bool is_ancestor_of(const any *other) const;
202 
206  virtual bool invariant() const;
207 
208 protected:
209 
210 private:
211 
213 
214 };
215 
216 // ===========================================================
217 // NON-MEMBER FUNCTIONS
218 // ===========================================================
219 
223 SHEAF_DLL_SPEC
224 size_t deep_size(const scattered_insertion_index_space_state& xn, bool xinclude_shallow = true);
225 
226 } // end namespace sheaf
227 
228 #endif // ifndef SCATTERED_INSERTION_INDEX_SPACE_STATE_H
An implementation of class explicit_index_space_state that supports either gathered or scattered inse...
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 index within the external ("client") scope of a given id space.
Definition: scoped_index.h:116
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.
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.
pod_index_type pod_type
The "plain old data" index type for this.
Namespace for the sheaves component of the sheaf system.
An implementation of class explicit_index_space_state that supports gathered insertion of new members...
scattered_insertion_index_space_state(const scattered_insertion_index_space_state &xother)
Copy constructor; disabled.