SheafSystem
0.0.0.0
postorder_itr.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 POSTORDER_ITR_H
22
#define POSTORDER_ITR_H
23
24
#ifndef SHEAF_DLL_SPEC_H
25
#include "SheafSystem/sheaf_dll_spec.h"
26
#endif
27
28
#ifndef FILTERED_DEPTH_FIRST_ITR_H
29
#include "SheafSystem/filtered_depth_first_itr.h"
30
#endif
31
32
namespace
sheaf
33
{
34
39
template
<
typename
T>
40
class
SHEAF_DLL_SPEC
postorder_itr
:
public
filtered_depth_first_itr
<T>
41
{
42
// ===========================================================
44
// ===========================================================
46
47
public
:
48
53
postorder_itr
();
54
58
postorder_itr
(
const
postorder_itr
& xother);
59
63
~
postorder_itr
();
64
65
// OTHER CONSTRUCTORS
66
72
postorder_itr
(
const
abstract_poset_member
& xanchor,
73
bool
xdown,
74
bool
xstrict);
75
81
postorder_itr
(
const
abstract_poset_member
& xanchor,
82
const
subposet
& xfilter,
83
bool
xdown,
84
bool
xstrict);
85
91
postorder_itr
(
const
abstract_poset_member
& xanchor,
92
pod_index_type
xfilter_index,
93
bool
xdown,
94
bool
xstrict);
95
101
postorder_itr
(
const
abstract_poset_member
& xanchor,
102
const
scoped_index
& xfilter_index,
103
bool
xdown,
104
bool
xstrict);
105
111
postorder_itr
(
const
abstract_poset_member
& xanchor,
112
const
std::string& xfilter_name,
113
bool
xdown,
114
bool
xstrict);
115
116
protected
:
117
118
private
:
119
121
122
123
// ===========================================================
125
// ===========================================================
127
128
public
:
129
133
virtual
bool
is_ancestor_of(
const
any
* other)
const
;
134
138
virtual
postorder_itr
* clone()
const
;
139
143
bool
invariant()
const
;
144
145
protected
:
146
147
private
:
148
150
};
151
155
typedef
postorder_itr<zn_to_bool>
zn_to_bool_postorder_itr
;
156
160
typedef
postorder_itr< std::set<pod_index_type>
>
set_postorder_itr
;
161
165
typedef
postorder_itr< unordered::unordered_set<pod_index_type>
>
unordered_set_postorder_itr
;
166
167
}
// namespace sheaf
168
169
#endif // ifndef POSTORDER_ITR_H
sheaf::subposet
A client handle for a subposet.
Definition:
subposet.h:86
sheaf::zn_to_bool_postorder_itr
postorder_itr< zn_to_bool > zn_to_bool_postorder_itr
Postorder_itr<T> using zn_to_bool for _has_visited markers.
Definition:
postorder_itr.h:155
sheaf::filtered_depth_first_itr
The general depth-first iterator over the intersection of a subposet filter with a directional (up or...
Definition:
filtered_depth_first_itr.h:83
sheaf::postorder_itr
Specialization of the filtered depth-first iterator which exposes the POSTVISIT_ACTION to the client...
Definition:
postorder_itr.h:40
sheaf::any
Abstract base class with useful features for all objects.
Definition:
any.h:39
sheaf::scoped_index
An index within the external ("client") scope of a given id space.
Definition:
scoped_index.h:116
sheaf::unordered_set_postorder_itr
postorder_itr< unordered::unordered_set< pod_index_type > > unordered_set_postorder_itr
Postorder_itr<T> using unordered_set for _has_visited markers.
Definition:
postorder_itr.h:165
sheaf::set_postorder_itr
postorder_itr< std::set< pod_index_type > > set_postorder_itr
Postorder_itr<T> using set for _has_visited markers.
Definition:
postorder_itr.h:160
sheaf::pod_index_type
int_type pod_index_type
The plain old data index type.
Definition:
pod_types.h:49
sheaf
Namespace for the sheaves component of the sheaf system.
Definition:
singly_linked_list.h:37
sheaf::abstract_poset_member
An abstract client handle for a member of a poset.
Definition:
abstract_poset_member.h:164
sheaves
iterators
postorder_itr.h
Generated on Sun Jul 9 2017 14:27:25 for SheafSystem by
1.8.13