SheafSystem  0.0.0.0
sec_rep_descriptor_poset.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 SEC_REP_DESCRIPTOR_POSET_H
22 #define SEC_REP_DESCRIPTOR_POSET_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef POSET_H
29 #include "SheafSystem/poset.h"
30 #endif
31 
32 #ifndef SEC_REP_DESCRIPTOR_TABLE_DOFS_TYPE_H
33 #include "SheafSystem/sec_rep_descriptor_table_dofs_type.h"
34 #endif
35 
36 namespace sheaf
37 {
38  class namespace_poset;
39 }
40 
41 namespace fiber_bundle
42 {
43 
44 using namespace sheaf;
45 
46 class base_space_poset;
47 class sec_rep_descriptor;
48 
52 class SHEAF_DLL_SPEC sec_rep_descriptor_poset : public poset
53 {
54  friend class sheaf::namespace_poset; // Qualification needed by g++ 4.2.2
55  friend class fiber_bundles_namespace;
56 
57  // ===========================================================
59  // ===========================================================
61 
62 public:
63 
68 
73 
77  static const poset_path& standard_schema_path();
78 
84  static sec_rep_descriptor_poset& new_table(namespace_type& xhost,
85  const poset_path& xpath,
86  const poset_path& xschema_path,
87  const poset_path& xprototypes_path,
88  bool xauto_access);
89 
93  const base_space_poset& prototypes() const;
94 
98  base_space_poset& prototypes();
99 
100 protected:
101 
106 
110  virtual ~sec_rep_descriptor_poset();
111 
116 
121  {
122  return const_cast<sec_rep_descriptor_poset&>(*this);
123  };
124 
129 
133  static bool make_prototype();
134 
135 private:
136 
138 
139 
140  // ===========================================================
142  // ===========================================================
144 
145 public:
146 
147 protected:
148 
149 private:
150 
152 
153 
154  // ===========================================================
156  // ===========================================================
158 
159 public:
160 
164  virtual poset_type type_id() const;
165 
169  virtual const char* class_name() const;
170 
174  virtual void get_read_access() const;
175 
182  virtual void get_read_write_access(bool xrelease_read_only_access = false);
183 
188  virtual void release_access(bool xall = false) const;
189 
190 protected:
191 
198  virtual void initialize_handle_data_members(const namespace_poset& xns);
199 
204  virtual void attach_handle_data_members();
205 
210  virtual void terminate_access();
211 
212 private:
213 
215 
216 
217  // ===========================================================
219  // ===========================================================
221 
222 public:
223 
227  virtual pod_index_type prereq_id(int xi) const;
228 
229 protected:
230 
231 private:
232 
234 
235 
236  // ===========================================================
238  // ===========================================================
240 
241 public:
242 
246  virtual bool is_ancestor_of(const any *other) const;
247 
252  virtual sec_rep_descriptor_poset* clone() const;
253 
257  virtual bool invariant() const;
258 
259 protected:
260 
261 private:
262 
264 
265 };
266 
267 } // namespace fiber_bundle
268 
269 #endif // SEC_REP_DESCRIPTOR_POSET_H
Table dofs type for class sec_rep_descriptor_poset.
The default name space; a poset which contains other posets as members.
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
poset_type
Identifiers for poset types.
Definition: poset_type.h:41
A client handle for a general, abstract partially order set.
A path defined by a poset name and a member name separated by a forward slash (&#39;/&#39;). For example: "cell_definitions/triangle".
Definition: poset_path.h:48
The poset for sec_rep_descriptors.
Abstract base class with useful features for all objects.
Definition: any.h:39
The lattice of closed cells of a cellular space; a lattice representation of a computational mesh...
A client handle for a mutable partially ordered set.
Definition: poset.h:40
sec_rep_descriptor member_type
The type of member associated with this poset.
sec_rep_descriptor_table_dofs_type table_dofs_type
The table dofs type defined by the standard schema.
sec_rep_descriptor_poset(const sec_rep_descriptor &xother)
Copy constructor; disabled.
int_type pod_index_type
The plain old data index type.
Definition: pod_types.h:49
Namespace for the sheaves component of the sheaf system.
sec_rep_descriptor_poset & operator=(const poset_state_handle &xother)
Assignment operator; disabled.
Namespace for the fiber_bundles component of the sheaf system.
base_space_poset * _prototypes
Base space members prototypes poset.
A description for a section representation scheme.