SheafSystem  0.0.0.0
binary_section_component_iterator.h
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 
18 // Interface for class binary_section_component_iterator
19 
20 #ifndef BINARY_SECTION_COMPONENT_ITERATOR_H
21 #define BINARY_SECTION_COMPONENT_ITERATOR_H
22 
23 #ifndef SHEAF_DLL_SPEC_H
24 #include "SheafSystem/sheaf_dll_spec.h"
25 #endif
26 
27 #ifndef SECTION_COMPONENT_ITERATOR_H
28 #include "SheafSystem/section_component_iterator.h"
29 #endif
30 
31 namespace fiber_bundle
32 {
33 
34 class binary_section_space_schema_member;
35 
42 {
43 
44 public:
45 
46  // CANONICAL MEMBERS
47 
53 
59 
63  virtual binary_section_component_iterator& operator=(const section_component_iterator& xother);
64 
69 
74 
78  virtual bool is_ancestor_of(const any* other) const;
79 
83  virtual binary_section_component_iterator* clone() const;
84 
88  bool invariant() const;
89 
90  // OTHER CONSTRUCTORS
91 
96  // Explicit above prevents interpretation as conversion from abstract_poset_meber
97 
98  // ITERATOR FACET
99 
100  // Anchor is not virtual; covariant signature hides
101  // inherited version.
102 
107  const binary_section_space_schema_member& anchor() const;
108 
109  // COMPONENT ITERATOR FACET
110 
111  // Item is not virtual; covariant signature hides
112  // inherited version.
113 
117  const binary_section_space_schema_member& item() const;
118 
122  virtual bool item_is_ancestor_of(const section_space_schema_member& xmbr) const;
123 
124 
125 protected:
126 
131  virtual void reset_item();
132 
133 };
134 
135 } // namespace fiber_bundle
136 
137 #endif // ifndef BINARY_SECTION_COMPONENT_ITERATOR_H
A client handle for a poset member which has been prepared for use as a schema for a section space...
Abstract base class with useful features for all objects.
Definition: any.h:39
Iterates in postorder over components of a section_space_schema_member anchor. The components of a se...
Iterates in postorder over dofs of a schema member anchor. Attaches an a handle of type section_space...
A client handle for a poset member which has been prepared for use as a schema for a section space...
Namespace for the fiber_bundles component of the sheaf system.