SheafSystem  0.0.0.0
standard_member_hack_crg_interval.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 STANDARD_MEMBER_HACK_CRG_INTERVAL_H
22 #define STANDARD_MEMBER_HACK_CRG_INTERVAL_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef EXPLICIT_CRG_INTERVAL_H
29 #include "SheafSystem/explicit_crg_interval.h"
30 #endif
31 
32 namespace sheaf
33 {
34 
35 template <typename T>
36 class factory;
37 
44 {
45 
46  friend class namespace_poset;
47 
48  // ===========================================================
50  // ===========================================================
52 
53 public:
54 
59 
64 
65 protected:
66 
67 private:
68 
70 
71 
72  // ===========================================================
74  // ===========================================================
76 
77 public:
78 
79 protected:
80 
81 private:
82 
84 
85 
86  // ===========================================================
88  // ===========================================================
90 
91 public:
92 
93 protected:
94 
95 private:
96 
98 
99 
100  // ===========================================================
102  // ===========================================================
104 
105 public:
106 
107 protected:
108 
112  virtual void initialize_lower_covers();
113 
117  virtual void initialize_upper_covers();
118 
119 private:
120 
122 
123 
124  // ===========================================================
126  // ===========================================================
128 
129 public:
130 
131 protected:
132 
133 private:
134 
136 
137 
138  // ===========================================================
140  // ===========================================================
142 
143 public:
144 
149  virtual const std::string& class_name() const;
150 
151 protected:
152 
153 private:
154 
158  static bool make_prototype();
159 
161 
162 
163  // ===========================================================
165  // ===========================================================
167 
168 public:
169 
173  virtual bool is_ancestor_of(const any* other) const;
174 
179  virtual standard_member_hack_crg_interval* clone() const;
180 
184  virtual bool invariant() const;
185 
186 protected:
187 
188 private:
189 
191 };
192 
193 // ===========================================================
194 // NON-MEMBER FUNCTIONS
195 // ===========================================================
196 
201 SHEAF_DLL_SPEC
202 size_t deep_size(const standard_member_hack_crg_interval& xp, bool xinclude_shallow = true);
203 
204 } // namespace sheaf
205 
206 #endif // ifndef STANDARD_MEMBER_HACK_CRG_INTERVAL_H
The default name space; a poset which contains other posets as members.
Implementation of explicit_crg_interval intended only to support the product poset hack in section_sp...
Abstract base class with useful features for all objects.
Definition: any.h:39
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.
Namespace for the sheaves component of the sheaf system.
Implementation of crg_interval for explicit members of the poset.