SheafSystem  0.0.0.0
sec_at1_space.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_AT1_SPACE_H
22 #define SEC_AT1_SPACE_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef SEC_ATP_SPACE_H
29 #include "SheafSystem/sec_atp_space.h"
30 #endif
31 
32 namespace sheaf
33 {
34 class namespace_poset;
35 }
36 
37 namespace fiber_bundle
38 {
39 using namespace sheaf;
40 
41 class sec_at1;
42 class at1;
43 
48 class SHEAF_DLL_SPEC sec_at1_space : public sec_atp_space
49 {
50  friend class fiber_bundles_namespace;
51 
52  // ===========================================================
54  // ===========================================================
56 
57 public:
58 
63 
67  typedef at1 fiber_type;
68 
74  static sec_at1_space& new_table(namespace_type& xhost,
75  const poset_path& xpath,
76  const poset_path& xschema_path,
77  const poset_path& xscalar_space_path,
78  bool xauto_access);
79 
80 protected:
81 
86  sec_at1_space();
87 
91  sec_at1_space(const sec_at1_space& xother) { };
92 
96  virtual ~sec_at1_space();
97 
101  sec_at1_space(sec_at1* xtop, sec_at1* xbottom);
102 
103 private:
104 
106 
107 
108  // ===========================================================
110  // ===========================================================
112 
113 public:
114 
115 protected:
116 
117 private:
118 
120 
121 
122  // ===========================================================
124  // ===========================================================
126 
127 public:
128 
129 protected:
130 
131 private:
132 
134 
135 
136  // ===========================================================
138  // ===========================================================
140 
141 public:
142 
143 protected:
144 
145 private:
146 
148 
149 
150  // ===========================================================
152  // ===========================================================
154 
155 public:
156 
157 protected:
158 
159 private:
160 
162 
163 
164  // ===========================================================
166  // ===========================================================
168 
169 public:
170 
171 protected:
172 
173 private:
174 
178  static bool make_prototype();
179 
181 
182 
183  // ===========================================================
185  // ===========================================================
187 
188 public:
189 
193  virtual poset_type type_id() const;
194 
198  virtual const char* class_name() const;
199 
203  virtual pod_index_type prereq_id(int xi) const;
204 
205 protected:
206 
211  {
212  return const_cast<sec_at1_space&>(*this);
213  };;
214 
215 private:
216 
218 
219 
220  // ===========================================================
222  // ===========================================================
224 
225 public:
226 
227 protected:
228 
229 private:
230 
232 
233 
234  // ===========================================================
236  // ===========================================================
238 
239 public:
240 
244  virtual bool is_ancestor_of(const any* xother) const;
245 
250  virtual sec_at1_space* clone() const;
251 
255  virtual bool invariant() const;
256 
257 protected:
258 
259 private:
260 
262 
263 };
264 
265 
266 } // namespace fiber_bundle
267 
268 
269 #endif // SEC_AT1_SPACE_H
sec_at1 member_type
The type of member associated with this space.
Definition: sec_at1_space.h:62
sec_at1_space & operator=(const poset_state_handle &xother)
Assignment operator; disabled.
A space of scalars viewed as an antisymmetric tensor section space of degree 1.
Definition: sec_at1_space.h:48
A general antisymmetric tensor of degree 1 over an abstract vector space (persistent version)...
Definition: at1.h:211
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
A section of a bundle with fiber type at1.
Definition: sec_at1.h:48
Abstract base class with useful features for all objects.
Definition: any.h:39
An abstract antisymmetric tensor section space of degree p.
Definition: sec_atp_space.h:47
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_at1_space(const sec_at1_space &xother)
Copy constructor; disabled.
Definition: sec_at1_space.h:91
at1 fiber_type
The fiber type.
Definition: sec_at1_space.h:67
Namespace for the fiber_bundles component of the sheaf system.