21 #include "SheafSystem/explicit_index_space_iterator.h" 23 #include "SheafSystem/assert_contract.h" 24 #include "SheafSystem/explicit_index_space_state.h" 25 #include "SheafSystem/index_space_family.h" 99 (void) index_space_iterator::operator=(xother);
126 ensure(is_basic_query);
147 ensure(is_basic_query);
176 (void) this->
operator=(lother);
209 ensure(is_basic_query);
234 ensure(*result == *
this);
266 ensure(is_basic_query);
302 bool result = (
_state != 0);
306 ensure(is_basic_query);
334 ensure(
index() == xindex);
358 ensure(&
host() == &xhost);
400 ensure(is_basic_query);
415 require(xstate != 0);
426 ensure(&
state() == xstate);
447 ensure(is_basic_query);
473 ensure(is_basic_query);
494 ensure(is_basic_query);
const index_space_collection * collection(pod_type xid) const
Id space collection for id xid (const version).
virtual void attach_to(pod_type xindex)
Attach to the state with index xindex in the id space family id_spaces().
const index_space_collection & host() const
The host collection (const version).
virtual pod_type index() const
Index of this space.
An abstract iterator over the ids of an id space.
virtual bool operator==(const index_space_iterator &xother) const
True if this is equivalent to xother.
virtual pod_type family_scope(pod_type xlocal_id) const =0
Id relative to the id space family equivalent to the local id xlocal_id.
virtual const index_space_collection & host() const
The host collection.
virtual bool is_ancestor_of(const any *other) const
Conformance test; true if other conforms to this.
virtual explicit_index_space_state * explicit_state(pod_type xlocal_id) const =0
The explicit id space state for id xlocal_id. Returns null if there is no explicit id space for xloca...
virtual pod_type local_scope(pod_type xspace_id) const =0
Id relative to this collection equivalent to the id space family id xspace_id.
explicit_index_space_state & state()
The explicit state (mutable version).
Abstract base class with useful features for all objects.
An immutable abstract state for a space of alternate integer identifiers (aliases) for a subset of th...
const index_space_family & id_spaces() const
The id space family for this (const version).
virtual explicit_index_space_iterator * clone() const =0
Virtual constructor, makes a new instance of the same type as this. If the iterator is attached...
explicit_index_space_iterator()
Default constructor.
A collection of id space states. This is a virtual class with provides an interface for accessing the...
void disable_invariant_check() const
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing inv...
virtual bool contains(pod_type xlocal_id) const =0
True if this collection contains the id space with local id xlocal_id.
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 h...
bool invariant_check() const
True if invariant checking is enabled.
An implementation of class index_space_iterator for an explicit_index_space_state.
pod_type index() const
The index of this id space.
explicit_index_space_state * _state
The explicit state.
virtual bool invariant() const
Class invariant.
virtual void detach()
Detach this iterator form its state, if any.
explicit_index_space_iterator & operator=(const explicit_index_space_iterator &xother)
Assignment operator.
Factory and container for a family of id spaces.
virtual bool invariant() const
Class invariant.
pod_index_type pod_type
The "plain old data" index type for this.
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.
virtual bool is_attached() const
True if this iterator is attached to a state.
virtual bool operator==(const index_space_iterator &xother) const
True if this is equivalent to xother.
virtual ~explicit_index_space_iterator()
Destructor.