SheafSystem  0.0.0.0
sheaf::poset_orderer Class Reference

Traverser to ensure validity of order relation. More...

#include <poset_orderer.h>

Inheritance diagram for sheaf::poset_orderer:
sheaf::poset_dft sheaf::poset_traverser sheaf::any

POSET_ORDERER FACET

 poset_orderer (poset_state_handle *xhost)
 Constructor. More...
 
 ~poset_orderer ()
 Destructor. More...
 
void restore_order (subposet *xlower_bound=0)
 Make jrm order consistent with jim order. More...
 

POSET_DFT FACET

void previsit_action (abstract_poset_member *xmbr)
 Previsit action for member, xmbr. More...
 
void link_action (abstract_poset_member *xmbr, abstract_poset_member *linked_mbr)
 Link action for member, xmbr; disabled. More...
 
void postvisit_action (abstract_poset_member *xmbr)
 Postvisit action for member, xmbr. More...
 

ANY FACET

virtual bool invariant () const
 Class invariant. More...
 

Additional Inherited Members

- Public Member Functions inherited from sheaf::poset_dft
 poset_dft (const poset_state_handle *xhost)
 Constructor. More...
 
 ~poset_dft ()
 Destructor. More...
 
- Public Member Functions inherited from sheaf::poset_traverser
 poset_traverser (const poset_state_handle *xanchor)
 Constructor. More...
 
 ~poset_traverser ()
 Destructor. More...
 
poset_state_handlehost ()
 The poset being traversed (mutable version). More...
 
const poset_state_handlehost () const
 The poset being traversed (const version). More...
 
bool has_same_host (const poset_component *other) const
 True if other is not void and is attached to the same host as this. More...
 
virtual abstract_poset_memberanchor ()
 The member which is the starting point of this traversal (mutable verison). More...
 
virtual const abstract_poset_memberanchor () const
 The member which is the starting point of this traversal (const version). More...
 
bool in_down_set () const
 True if traversing down from anchor(). More...
 
void traverse (const abstract_poset_member *xanchor, bool down, bool reset_markers=true)
 Traverse the down set (down == true) or up set (down == false) of xanchor. If reset_markers, reset all visited markers to false before begining. More...
 
- Public Member Functions inherited from sheaf::any
virtual bool is_ancestor_of (const any *other) const
 True if other conforms to this. More...
 
bool is_same_type (const any *other) const
 True if other is the same type as this. More...
 
virtual anyclone () const
 Virtual constructor, makes a new instance of the same type as this. More...
 
virtual ~any ()
 Destructor. More...
 
bool invariant_check () const
 True if invariant checking is enabled. More...
 
void enable_invariant_check () const
 Enable invariant checking. More...
 
void disable_invariant_check () const
 Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing invariant checking during multi-phase initialization. More...
 
int disable_invariance_check_request_depth () const
 Number of times disable_invariant_check has been called without matching call to enable_invariant_check. More...
 
- Protected Member Functions inherited from sheaf::poset_dft
void private_traverse ()
 Implements the traversal. More...
 
void recursive_dft (abstract_poset_member *xmbr)
 
- Protected Member Functions inherited from sheaf::poset_traverser
bool has_been_visited (const abstract_poset_member *xmbr) const
 True if xmbr has been previously visited. More...
 
bool has_been_visited (int xindex) const
 True if the member with index xindex has been previously visited. More...
 
scoped_index member_index_ub () const
 The upper bound on the member index. More...
 
bool no_members_visited () const
 True if no members have been visited. More...
 
bool all_members_visited () const
 True if all members have been visited. More...
 
void mark_members_not_visited ()
 Sets the visited markers false for all members. More...
 
void mark_visited (const abstract_poset_member *xmbr)
 Sets the visited marker true for xmbr. More...
 
void mark_visited (int xindex)
 Sets the visited markers true for the emebr with index xindex. More...
 
void mark_not_visited (int xindex)
 Sets the visited markers false for the emebr with index xindex. More...
 
void ensure_visited_ub ()
 Ensures the visited bit vector is large enough. More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 
- Protected Attributes inherited from sheaf::poset_dft
bool _descend
 If true on return from previsit_action, descend into lower cover previsit_action can truncate dft by setting this false. More...
 
std::stack< abstract_poset_member * > _free_mbrs
 Storage for abstract_poset_member objects, so we can reuse them, rather than creating one for each member in the graph. More...
 
- Protected Attributes inherited from sheaf::poset_traverser
poset_state_handle_host
 The poset being traversed. More...
 
zn_to_bool_visited
 The markers for previously visited members. More...
 
abstract_poset_member_anchor
 The member which is the starting point of this traversal. More...
 
bool _in_down_set
 True if traversing down from anchor(). More...
 

Detailed Description

Traverser to ensure validity of order relation.

Definition at line 46 of file poset_orderer.h.

Constructor & Destructor Documentation

◆ poset_orderer()

sheaf::poset_orderer::poset_orderer ( poset_state_handle xhost)

Constructor.

Precondition
  • precondition_of(poset_dft::poset_dft)
Postcondition

Definition at line 35 of file poset_orderer.cc.

References invariant(), sheaf::poset_traverser::member_index_ub(), sheaf::poset_dft::poset_dft(), and ~poset_orderer().

◆ ~poset_orderer()

sheaf::poset_orderer::~poset_orderer ( )

Destructor.

Definition at line 54 of file poset_orderer.cc.

References restore_order().

Referenced by poset_orderer().

Member Function Documentation

◆ invariant()

bool sheaf::poset_orderer::invariant ( ) const
virtual

Class invariant.

Reimplemented from sheaf::poset_traverser.

Definition at line 244 of file poset_orderer.cc.

References sheaf::poset_traverser::invariant().

Referenced by poset_orderer(), and postvisit_action().

◆ link_action()

void sheaf::poset_orderer::link_action ( abstract_poset_member xmbr,
abstract_poset_member linked_mbr 
)
inlineprotectedvirtual

Link action for member, xmbr; disabled.

Implements sheaf::poset_dft.

Definition at line 114 of file poset_orderer.h.

◆ postvisit_action()

◆ previsit_action()

void sheaf::poset_orderer::previsit_action ( abstract_poset_member xmbr)
protectedvirtual

Previsit action for member, xmbr.

Implements sheaf::poset_dft.

Definition at line 108 of file poset_orderer.cc.

References sheaf::poset_dft::_descend, sheaf::subposet::contains_member(), and postvisit_action().

Referenced by restore_order().

◆ restore_order()

void sheaf::poset_orderer::restore_order ( subposet xlower_bound = 0)

Make jrm order consistent with jim order.

Precondition
  • xlower_bound != 0 ? has_same_host(xlower_bound) : true
  • -unexecutable( xlower_bound != 0 ? jrm order is independent of anything below xlower_bound : true )
  • -unexecutable( only bottom has an empty lower cover )
Postcondition
  • -unexecutable( jrm order consistent with jim order )

Definition at line 67 of file poset_orderer.cc.

References sheaf::poset_traverser::has_same_host(), sheaf::poset_traverser::host(), fiber_bundle::met_algebra::lower(), previsit_action(), and sheaf::poset_traverser::traverse().

Referenced by sheaf::poset_state_handle::ensure_lattice_invariant(), and ~poset_orderer().


The documentation for this class was generated from the following files: