SheafSystem  0.0.0.0
sheaf::explicit_index_space_iterator Class Referenceabstract

An implementation of class index_space_iterator for an explicit_index_space_state. More...

#include <explicit_index_space_iterator.h>

Inheritance diagram for sheaf::explicit_index_space_iterator:
sheaf::index_space_iterator sheaf::any fiber_bundle::section_space_schema_jims_index_space_iterator sheaf::array_index_space_iterator sheaf::hash_index_space_iterator sheaf::hub_index_space_iterator sheaf::interval_index_space_iterator sheaf::list_index_space_iterator sheaf::offset_index_space_iterator sheaf::primary_index_space_iterator sheaf::primitives_index_space_iterator sheaf::reserved_primary_index_space_iterator sheaf::singleton_index_space_iterator

Friends

class explicit_index_space_state
 

EXPLICIT_INDEX_SPACE_ITERATOR FACET

explicit_index_space_state_state
 The explicit state. More...
 
virtual ~explicit_index_space_iterator ()
 Destructor. More...
 
 explicit_index_space_iterator ()
 Default constructor. More...
 
 explicit_index_space_iterator (const explicit_index_space_iterator &xother)
 Copy constructor. More...
 
explicit_index_space_iteratoroperator= (const explicit_index_space_iterator &xother)
 Assignment operator. More...
 
explicit_index_space_statestate ()
 The explicit state (mutable version). More...
 
const explicit_index_space_statestate () const
 The explicit state (const version). More...
 

INDEX_SPACE_ITERATOR FACET

virtual explicit_index_space_iteratoroperator= (const index_space_iterator &xother)
 Assignment operator. More...
 
virtual bool operator== (const index_space_iterator &xother) const
 True if this is equivalent to xother. More...
 
virtual explicit_index_space_iteratorclone () const =0
 Virtual constructor, makes a new instance of the same type as this. If the iterator is attached, attach to the same state. More...
 

HANDLE FACET

virtual const index_space_collectionhost () const
 The host collection. More...
 
virtual pod_type index () const
 Index of this space. More...
 
virtual bool is_attached () const
 True if this iterator is attached to a state. More...
 
virtual void attach_to (pod_type xindex)
 Attach to the state with index xindex in the id space family id_spaces(). More...
 
virtual void attach_to (const index_space_collection &xhost, pod_type xlocal_id)
 Attach to the state with local scope id, xlocal_id in the host id space collection xhost. More...
 
virtual void detach ()
 Detach this iterator form its state, if any. More...
 
virtual bool conforms_to_state (const index_space_collection &xhost, pod_type xlocal_id) const
 True if this conforms to the handle type required by the state with local scope id xlocal_id in the host id space collection xhost. More...
 
virtual void attach_to (explicit_index_space_state *xstate)=0
 Attach to the explicit id space state xstate. More...
 
virtual bool conforms_to_state (explicit_index_space_state *xstate) const =0
 True if this conforms to the iterator type required by the explicit id space state xstate. More...
 
explicit_index_space_statestate (pod_type xindex) const
 The explicit id space state at id xindex in id space family id_spaces(). Returns null if no id space stae is available at index xindex. More...
 
explicit_index_space_statestate (const index_space_collection &xhost, pod_type xlocal_id) const
 The explicit id space state with local scope id xlocal_id in the host id space collection xhost. More...
 

ANY FACET

virtual bool is_ancestor_of (const any *other) const
 Conformance test; true if other conforms to this. More...
 
virtual bool invariant () const
 Class invariant. More...
 

Additional Inherited Members

- Public Types inherited from sheaf::index_space_iterator
typedef pod_index_type pod_type
 The "plain old data" index type for this. More...
 
- Public Member Functions inherited from sheaf::index_space_iterator
virtual ~index_space_iterator ()
 Destructor. More...
 
virtual void next ()=0
 Makes id() the next id in the iteration. More...
 
bool is_done () const
 True if iteration is finished. More...
 
virtual void reset ()=0
 Restarts the iteration. More...
 
void force_is_done ()
 Makes is_done() true. More...
 
pod_type pod () const
 The current id in the iteration. More...
 
pod_type hub_pod () const
 The current unglued hub id in the iteration. synonym for unglued_hub_pod(). More...
 
pod_type unglued_hub_pod () const
 The current unglued hub id in the iteration. More...
 
pod_type glued_hub_pod () const
 The current glued hub id in the iteration. More...
 
const index_space_familyid_spaces () const
 The id space family for this (const version). More...
 
const hub_index_space_handlehub_id_space () const
 The hub id space. More...
 
std::string name () const
 Name of this space. More...
 
void attach_to (const index_space_family &xid_spaces, pod_type xindex)
 Attach to the state with index xindex in the id space family xid_spaces. More...
 
void attach_to (const index_space_family &xid_spaces, const std::string &xname)
 Attach to the state with name xname in the id space family xid_spaces. More...
 
void attach_to (const std::string &xname)
 Attach to the state with name xname in the id space family id_spaces(). More...
 
void attach_to (const index_space_handle &xid_space)
 Attach to the state of the id space xid_space. More...
 
bool conforms_to_state (const index_space_family &xid_spaces, pod_type xindex) const
 True if this conforms to the handle type required by the state with index xindex in the id space family, xid_spaces. More...
 
bool conforms_to_state (const index_space_family &xid_spaces, const std::string &xname) const
 True if this conforms to the handle type required by the state with name xname in the id space family, xid_spaces. More...
 
bool conforms_to_state (pod_type xid) const
 True if this conforms to the handle type required by the state with id xid. More...
 
bool conforms_to_state (const std::string &xname) const
 True if this conforms to the handle type required by the state with name xname. More...
 
- Public Member Functions inherited from sheaf::any
bool is_same_type (const any *other) const
 True if other is 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::index_space_iterator
 index_space_iterator ()
 Creates an iterator for the id space. More...
 
 index_space_iterator (const index_space_iterator &xother)
 Copy constructor. More...
 
void invalidate_ids ()
 Set is_done() and invalidate pod() and hub_pod(). More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 
- Protected Attributes inherited from sheaf::index_space_iterator
bool _is_done
 True if the iteration is finished. More...
 
pod_type _pod
 The current id in the iteration. More...
 
pod_type _hub_pod
 The current hub id in the iteration. More...
 

Detailed Description

An implementation of class index_space_iterator for an explicit_index_space_state.

Definition at line 41 of file explicit_index_space_iterator.h.

Constructor & Destructor Documentation

◆ ~explicit_index_space_iterator()

sheaf::explicit_index_space_iterator::~explicit_index_space_iterator ( )
virtual

Destructor.

Definition at line 34 of file explicit_index_space_iterator.cc.

References explicit_index_space_iterator().

◆ explicit_index_space_iterator() [1/2]

sheaf::explicit_index_space_iterator::explicit_index_space_iterator ( )
protected

Default constructor.

Postcondition

Definition at line 52 of file explicit_index_space_iterator.cc.

References invariant().

Referenced by ~explicit_index_space_iterator().

◆ explicit_index_space_iterator() [2/2]

sheaf::explicit_index_space_iterator::explicit_index_space_iterator ( const explicit_index_space_iterator xother)
protected

Copy constructor.

Postcondition

Definition at line 69 of file explicit_index_space_iterator.cc.

References invariant(), and operator=().

Member Function Documentation

◆ attach_to() [1/3]

void sheaf::explicit_index_space_iterator::attach_to ( pod_type  xindex)
virtual

Attach to the state with index xindex in the id space family id_spaces().

Precondition
  • conforms_to_state(xindex)
Postcondition

Implements sheaf::index_space_iterator.

Definition at line 315 of file explicit_index_space_iterator.cc.

References conforms_to_state(), sheaf::index_space_iterator::id_spaces(), index(), invariant(), is_attached(), and state().

Referenced by sheaf::explicit_index_space_state::attach(), attach_to(), conforms_to_state(), and is_attached().

◆ attach_to() [2/3]

void sheaf::explicit_index_space_iterator::attach_to ( const index_space_collection xhost,
pod_type  xlocal_id 
)
virtual

Attach to the state with local scope id, xlocal_id in the host id space collection xhost.

Precondition
  • xhost.contains(xlocal_id)
  • conforms_to_state(xhost, xlocal_id)
Postcondition
  • index() == xhost.family_scope(xlocal_id)

Implements sheaf::index_space_iterator.

Definition at line 343 of file explicit_index_space_iterator.cc.

References attach_to(), conforms_to_state(), sheaf::index_space_collection::contains(), detach(), sheaf::index_space_collection::explicit_state(), sheaf::index_space_collection::family_scope(), host(), index(), invariant(), and is_attached().

◆ attach_to() [3/3]

◆ clone()

sheaf::explicit_index_space_iterator * sheaf::explicit_index_space_iterator::clone ( ) const
pure virtual

◆ conforms_to_state() [1/2]

bool sheaf::explicit_index_space_iterator::conforms_to_state ( const index_space_collection xhost,
pod_type  xlocal_id 
) const
virtual

True if this conforms to the handle type required by the state with local scope id xlocal_id in the host id space collection xhost.

Precondition
  • xhost.contains(xlocal_id)
Postcondition
  • is_basic_query

Implements sheaf::index_space_iterator.

Definition at line 387 of file explicit_index_space_iterator.cc.

References attach_to(), sheaf::index_space_collection::contains(), and sheaf::index_space_collection::explicit_state().

Referenced by attach_to(), and detach().

◆ conforms_to_state() [2/2]

bool sheaf::explicit_index_space_iterator::conforms_to_state ( explicit_index_space_state xstate) const
protectedpure virtual

◆ detach()

◆ host()

const sheaf::index_space_collection & sheaf::explicit_index_space_iterator::host ( ) const
virtual

The host collection.

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_iterator.

Definition at line 254 of file explicit_index_space_iterator.cc.

References _state, sheaf::explicit_index_space_state::host(), index(), and is_attached().

Referenced by attach_to(), clone(), and state().

◆ index()

◆ invariant()

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

◆ is_ancestor_of()

◆ is_attached()

bool sheaf::explicit_index_space_iterator::is_attached ( ) const
virtual

True if this iterator is attached to a state.

Postcondition
  • is_basic_query

Implements sheaf::index_space_iterator.

Definition at line 296 of file explicit_index_space_iterator.cc.

References _state, and attach_to().

Referenced by sheaf::array_index_space_iterator::array_index_space_iterator(), sheaf::explicit_index_space_state::attach(), attach_to(), sheaf::primitives_index_space_iterator::attach_to(), sheaf::singleton_index_space_iterator::attach_to(), sheaf::hash_index_space_iterator::attach_to(), sheaf::list_index_space_iterator::attach_to(), sheaf::array_index_space_iterator::attach_to(), sheaf::offset_index_space_iterator::attach_to(), sheaf::hub_index_space_iterator::attach_to(), sheaf::primary_index_space_iterator::attach_to(), sheaf::reserved_primary_index_space_iterator::attach_to(), sheaf::interval_index_space_iterator::attach_to(), sheaf::offset_index_space_iterator::ct(), sheaf::primary_index_space_iterator::ct(), detach(), sheaf::primitives_index_space_state::get_iterator(), sheaf::singleton_index_space_state::get_iterator(), sheaf::offset_index_space_state::get_iterator(), sheaf::reserved_primary_index_space_state::get_iterator(), sheaf::primary_index_space_state::get_iterator(), fiber_bundle::section_space_schema_jims_index_space_state::get_iterator(), sheaf::hash_index_space_state::get_iterator(), sheaf::array_index_space_state::get_iterator(), sheaf::list_index_space_state::get_iterator(), sheaf::interval_index_space_state::get_iterator(), sheaf::primary_sum_index_space_state::get_iterator(), sheaf::hash_index_space_iterator::hash_index_space_iterator(), host(), sheaf::singleton_index_space_iterator::hub_begin(), sheaf::hub_index_space_iterator::hub_index_space_iterator(), index(), sheaf::interval_index_space_iterator::interval_index_space_iterator(), sheaf::list_index_space_iterator::list_index_space_iterator(), sheaf::primitives_index_space_iterator::next(), sheaf::singleton_index_space_iterator::next(), sheaf::hash_index_space_iterator::next(), sheaf::list_index_space_iterator::next(), sheaf::array_index_space_iterator::next(), sheaf::offset_index_space_iterator::next(), sheaf::hub_index_space_iterator::next(), sheaf::primary_index_space_iterator::next(), sheaf::reserved_primary_index_space_iterator::next(), sheaf::interval_index_space_iterator::next(), sheaf::offset_index_space_iterator::offset(), sheaf::primary_index_space_iterator::offset(), sheaf::reserved_primary_index_space_iterator::offset(), sheaf::offset_index_space_iterator::offset_index_space_iterator(), operator=(), sheaf::singleton_index_space_iterator::operator=(), sheaf::primitives_index_space_iterator::operator=(), sheaf::offset_index_space_iterator::operator=(), sheaf::primary_index_space_iterator::operator=(), sheaf::hash_index_space_iterator::operator=(), sheaf::list_index_space_iterator::operator=(), sheaf::reserved_primary_index_space_iterator::operator=(), sheaf::array_index_space_iterator::operator=(), sheaf::hub_index_space_iterator::operator=(), sheaf::interval_index_space_iterator::operator=(), fiber_bundle::section_space_schema_jims_index_space_iterator::operator=(), operator==(), sheaf::singleton_index_space_iterator::operator==(), sheaf::hash_index_space_iterator::operator==(), sheaf::array_index_space_iterator::operator==(), sheaf::list_index_space_iterator::operator==(), sheaf::hub_index_space_iterator::operator==(), sheaf::offset_index_space_iterator::operator==(), sheaf::primary_index_space_iterator::operator==(), sheaf::reserved_primary_index_space_iterator::operator==(), sheaf::interval_index_space_iterator::operator==(), sheaf::primary_index_space_iterator::primary_index_space_iterator(), sheaf::primitives_index_space_iterator::primitives_index_space_iterator(), sheaf::reserved_primary_index_space_iterator::put_is_active_only(), sheaf::reserved_primary_index_space_iterator::reserved_primary_index_space_iterator(), sheaf::primitives_index_space_iterator::reset(), sheaf::singleton_index_space_iterator::reset(), sheaf::hash_index_space_iterator::reset(), sheaf::array_index_space_iterator::reset(), sheaf::list_index_space_iterator::reset(), sheaf::hub_index_space_iterator::reset(), sheaf::offset_index_space_iterator::reset(), sheaf::primary_index_space_iterator::reset(), sheaf::reserved_primary_index_space_iterator::reset(), sheaf::interval_index_space_iterator::reset(), sheaf::singleton_index_space_iterator::singleton_index_space_iterator(), and state().

◆ operator=() [1/2]

sheaf::explicit_index_space_iterator & sheaf::explicit_index_space_iterator::operator= ( const explicit_index_space_iterator xother)
protected

Assignment operator.

Postcondition

Definition at line 89 of file explicit_index_space_iterator.cc.

References _state, invariant(), is_attached(), and state().

Referenced by explicit_index_space_iterator(), and state().

◆ operator=() [2/2]

◆ operator==()

◆ state() [1/4]

◆ state() [2/4]

const sheaf::explicit_index_space_state & sheaf::explicit_index_space_iterator::state ( ) const
protected

The explicit state (const version).

Precondition
Postcondition
  • is_basic_query

Definition at line 135 of file explicit_index_space_iterator.cc.

References _state, is_attached(), and operator=().

◆ state() [3/4]

sheaf::explicit_index_space_state * sheaf::explicit_index_space_iterator::state ( pod_type  xindex) const
protected

The explicit id space state at id xindex in id space family id_spaces(). Returns null if no id space stae is available at index xindex.

Precondition
Postcondition
  • is_basic_query

Definition at line 456 of file explicit_index_space_iterator.cc.

References sheaf::index_space_family::collection(), sheaf::index_space_collection::contains(), sheaf::index_space_collection::explicit_state(), host(), sheaf::index_space_iterator::id_spaces(), is_attached(), sheaf::index_space_collection::local_scope(), and state().

◆ state() [4/4]

sheaf::explicit_index_space_state * sheaf::explicit_index_space_iterator::state ( const index_space_collection xhost,
pod_type  xlocal_id 
) const
protected

The explicit id space state with local scope id xlocal_id in the host id space collection xhost.

Precondition
  • xhost.contains(xlocal_id)
Postcondition
  • is_basic_query

Definition at line 482 of file explicit_index_space_iterator.cc.

References sheaf::index_space_collection::contains(), sheaf::index_space_collection::explicit_state(), and is_ancestor_of().

Member Data Documentation

◆ _state


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