20 #include "SheafSystem/postorder_member_iterator.h" 22 #include "SheafSystem/poset_state_handle.h" 23 #include "SheafSystem/postorder_iterator.h" 24 #include "SheafSystem/assert_contract.h" 25 #include "SheafSystem/total_poset_member.h" 68 ensure(unexecutable(
this is first member of iteration or
is_done()));
94 ensure(
is_initialized() ?
filter().is_same_state(&(const_cast<filtered_depth_first_member_iterator&>(xother).
filter())) :
true);
98 ensure(unexecutable(
this is first member of iteration or
is_done()));
237 ensure(
anchor().is_same_state(&xanchor));
241 ensure(
strict() == xstrict);
243 ensure(unexecutable(postorder - have visited all children of
this));
244 ensure(unexecutable(!
is_done() implies
this is first member));
275 ensure(
anchor().is_same_state(&xanchor));
277 ensure(
filter().is_same_state(&xfilter));
279 ensure(
strict() == xstrict);
281 ensure(unexecutable(postorder - have visited all children of
this));
282 ensure(unexecutable(!
is_done() implies
this is first member));
313 ensure(
anchor().is_same_state(&xanchor));
315 ensure(
filter().is_attached());
317 ensure(
strict() == xstrict);
319 ensure(unexecutable(postorder - have visited all children of
this));
320 ensure(unexecutable(!
is_done() implies
this is first member));
351 ensure(
anchor().is_same_state(&xanchor));
353 ensure(
filter().is_attached());
355 ensure(
strict() == xstrict);
357 ensure(unexecutable(postorder - have visited all children of
this));
358 ensure(unexecutable(!
is_done() implies
this is first member));
366 const std::string& xfilter_name,
389 ensure(
anchor().is_same_state(&xanchor));
391 ensure(!xfilter_name.empty() ?
395 ensure(
strict() == xstrict);
397 ensure(unexecutable(postorder - have visited all children of
this));
398 ensure(unexecutable(!
is_done() implies
this is first member));
virtual abstract_poset_member & anchor()
The poset member whose downset is being iterated over; the top member of the domain of iteration (mut...
poset_state_handle * host() const
The poset which this is a handle to a component of.
A client handle for a subposet.
bool invariant() const
The class invariant.
abstract_poset_member & item()
The the current member of the iteration (mutable version).
bool state_is_read_accessible() const
True if this is attached and if the state is accessible for read or access control is disabled...
virtual bool includes_subposet(pod_index_type xsubposet_hub_id, bool xauto_access=true) const
True if this poset includes subposet with hub id xsubposet_hub_id.
virtual filtered_depth_first_member_iterator & operator=(const filtered_depth_first_member_iterator &xother)
Assignment operator.
Dperecated. Use postorder_itr. Specialization of the filtered depth-first iterator which exposes the ...
virtual bool item_is_ancestor_of(const abstract_poset_member &xmbr) const
True if xmbr conforms to the type of item of this.
Abstract base class with useful features for all objects.
bool is_done() const
True if iteration finished.
bool descending() const
True if iterating over down set of anchor.
postorder_member_iterator()
Default constructor; creates an unattached iterator, with and all-pass filter.
An index within the external ("client") scope of a given id space.
const subposet & filter() const
The subposet which is the filter; Defines what is passed, not what is blocked.
virtual postorder_member_iterator & operator=(const filtered_depth_first_member_iterator &xother)
Assignment operator.
void disable_invariant_check() const
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing inv...
virtual ~postorder_member_iterator()
Destructor.
bool strict() const
True if iterating over xstrict up/down set of anchor.
virtual postorder_member_iterator * clone() const
Make a new instance of the same type as this.
bool invariant() const
The class invariant.
bool invariant_check() const
True if invariant checking is enabled.
virtual bool is_ancestor_of(const any *other) const
True if other conforms to this.
int_type pod_index_type
The plain old data index type.
An abstract client handle for a member of a poset.
std::string version_name() const
The subposet name for the filter associated with version().
bool is_same_type(const any *other) const
True if other is the same type as this.
void enable_invariant_check() const
Enable invariant checking.
bool is_initialized() const
True if this has been initialized for iteration with respect to a specific anchor.
A client handle for an unrestricted member of a poset. A total_poset_member is guaranteed not to be r...