21 #include "SheafSystem/binary_section_component_iterator.h" 23 #include "SheafSystem/binary_section_space_schema_member.h" 24 #include "SheafSystem/poset_state_handle.h" 25 #include "SheafSystem/assert_contract.h" 67 ensure(unexecutable(
this is first member of iteration or
is_done()));
86 (void) section_component_iterator::operator=(xother);
94 ensure(unexecutable(
this is first member of iteration or
is_done()));
242 ensure(
anchor().is_same_state(&xanchor));
244 ensure(unexecutable(postorder - have visited all children of
this));
245 ensure(unexecutable(!
is_done() implies
this is first member));
virtual void update_item()
Attaches the item handle to the current index, or detaches the item handle if is_done.
bool is_initialized() const
True if this has been initialized for iteration with respect to a specific anchor.
A client handle for a poset member which has been prepared for use as a schema for a section space...
bool state_is_read_accessible() const
True if this is attached and if the state is accessible for read or access control is disabled...
section_space_schema_member * _item
The member handle for the current item in the iteration.
void put_anchor(const section_space_schema_member *xanchor)
Sets anchor to member xanchor.
section_space_schema_member & item()
The the current member of the iteration (mutable version).
section_space_schema_member & anchor()
The schema member whose downset is being iterated over; the top member of the domain of iteration (mu...
Abstract base class with useful features for all objects.
virtual bool is_ancestor_of(const any *other) const
True if other conforms to this.
const binary_section_space_schema_member & item() const
The the current member of the iteration.
Iterates in postorder over components of a section_space_schema_member anchor. The components of a se...
void disable_invariant_check() const
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing inv...
bool is_done() const
True if iteration finished.
virtual void reset_item()
Creates item if needed and attaches it to the current index. Abstract in this class; intended to be r...
virtual bool item_is_ancestor_of(const section_space_schema_member &xmbr) const
True if xmbr conforms to the type of item of this.
virtual ~binary_section_component_iterator()
Destructor.
bool invariant_check() const
True if invariant checking is enabled.
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...
virtual binary_section_component_iterator * clone() const
Make a new instance of the same type as this.
const binary_section_space_schema_member & anchor() const
The schema member whose downset is being iterated over; the top member of the domain of iteration...
virtual binary_section_component_iterator & operator=(const section_component_iterator &xother)
Assignment operator.
bool invariant() const
The class invariant.
virtual void reset(bool xreset_markers=RESET)
Restarts the iteration over the down set of anchor() If xreset_markers, set !has_visited for all memb...
binary_section_component_iterator()
Default constructor; creates an unattached iterator. Protected because this class is abstract...
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 invariant() const
The class invariant.
section_space_schema_member * _anchor
The schema member whose downset is being iterated over; the top member of the domain of iteration...