SheafSystem
0.0.0.0
|
An iterator over an id space in which the equivalence between the ids in the space and the hub id space is stored in an array. More...
#include <array_index_space_iterator.h>
Friends | |
class | array_index_space_state |
ARRAY_INDEX_SPACE_ITERATOR FACET | |
typedef auto_block< pod_type, invalid_block_initialization_policy< pod_type > > | to_hub_type |
The type of hub id array. More... | |
const to_hub_type * | _to_hub |
The array to hub ids. More... | |
pod_type | _end |
The end of this id space. More... | |
array_index_space_iterator () | |
Default constructor. More... | |
array_index_space_iterator (const array_index_space_iterator &xother) | |
Copy constructor. More... | |
array_index_space_iterator (const index_space_family &xid_spaces, pod_type xindex) | |
Constructor: Attach to state with index xindex in the family xid_spaces. More... | |
array_index_space_iterator (const index_space_family &xid_spaces, const std::string &xname) | |
Constructor: Attach to state with name xname in the family xid_spaces. More... | |
array_index_space_iterator & | operator= (const array_index_space_iterator &xother) |
Assignment operator. More... | |
virtual | ~array_index_space_iterator () |
Destructor. More... | |
INDEX_SPACE_ITERATOR FACET | |
virtual array_index_space_iterator & | operator= (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 array_index_space_iterator * | clone () const |
Virtual constructor, makes a new instance of the same type as this. If the iterator is attached, attach to the same state. More... | |
ITERATOR FACET | |
virtual void | next () |
Makes item() the next id in the iteration. More... | |
virtual void | reset () |
Restarts the iteration. More... | |
HANDLE FACET | |
virtual void | attach_to (explicit_index_space_state *xstate) |
Attach to the explicit id space state xstate. More... | |
virtual bool | conforms_to_state (explicit_index_space_state *xstate) const |
True if this conforms to the iterator type required by the explicit id space state xstate. 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::explicit_index_space_iterator | |
virtual | ~explicit_index_space_iterator () |
Destructor. More... | |
virtual const index_space_collection & | host () 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... | |
Public Member Functions inherited from sheaf::index_space_iterator | |
virtual | ~index_space_iterator () |
Destructor. More... | |
bool | is_done () const |
True if iteration is finished. 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_family & | id_spaces () const |
The id space family for this (const version). More... | |
const hub_index_space_handle & | hub_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::explicit_index_space_iterator | |
explicit_index_space_iterator () | |
Default constructor. More... | |
explicit_index_space_iterator (const explicit_index_space_iterator &xother) | |
Copy constructor. More... | |
explicit_index_space_iterator & | operator= (const explicit_index_space_iterator &xother) |
Assignment operator. More... | |
explicit_index_space_state & | state () |
The explicit state (mutable version). More... | |
const explicit_index_space_state & | state () const |
The explicit state (const version). More... | |
explicit_index_space_state * | state (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_state * | state (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... | |
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::explicit_index_space_iterator | |
explicit_index_space_state * | _state |
The explicit state. 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... | |
An iterator over an id space in which the equivalence between the ids in the space and the hub id space is stored in an array.
Definition at line 43 of file array_index_space_iterator.h.
|
protected |
The type of hub id array.
Definition at line 92 of file array_index_space_iterator.h.
sheaf::array_index_space_iterator::array_index_space_iterator | ( | ) |
Default constructor.
Definition at line 35 of file array_index_space_iterator.cc.
References invariant(), and sheaf::explicit_index_space_iterator::is_attached().
Referenced by array_index_space_iterator(), and clone().
sheaf::array_index_space_iterator::array_index_space_iterator | ( | const array_index_space_iterator & | xother | ) |
Copy constructor.
Definition at line 52 of file array_index_space_iterator.cc.
References array_index_space_iterator(), and invariant().
sheaf::array_index_space_iterator::array_index_space_iterator | ( | const index_space_family & | xid_spaces, |
pod_type | xindex | ||
) |
Constructor: Attach to state with index xindex in the family xid_spaces.
Definition at line 71 of file array_index_space_iterator.cc.
References array_index_space_iterator(), attach_to(), conforms_to_state(), sheaf::index_space_iterator::id_spaces(), sheaf::explicit_index_space_iterator::index(), invariant(), and sheaf::explicit_index_space_iterator::is_attached().
sheaf::array_index_space_iterator::array_index_space_iterator | ( | const index_space_family & | xid_spaces, |
const std::string & | xname | ||
) |
Constructor: Attach to state with name xname in the family xid_spaces.
Definition at line 95 of file array_index_space_iterator.cc.
References attach_to(), conforms_to_state(), sheaf::index_space_iterator::id_spaces(), invariant(), sheaf::explicit_index_space_iterator::is_attached(), sheaf::index_space_iterator::name(), and operator=().
|
virtual |
Destructor.
Definition at line 149 of file array_index_space_iterator.cc.
References operator=().
Referenced by operator=().
|
protectedvirtual |
Attach to the explicit id space state xstate.
Implements sheaf::explicit_index_space_iterator.
Definition at line 378 of file array_index_space_iterator.cc.
References _end, sheaf::explicit_index_space_iterator::_state, _to_hub, conforms_to_state(), sheaf::explicit_index_space_state::end(), sheaf::index_space_iterator::hub_pod(), invariant(), sheaf::explicit_index_space_iterator::is_attached(), sheaf::index_space_iterator::is_done(), sheaf::is_valid(), sheaf::index_space_iterator::pod(), reset(), and sheaf::explicit_index_space_iterator::state().
Referenced by array_index_space_iterator(), and reset().
|
virtual |
Virtual constructor, makes a new instance of the same type as this. If the iterator is attached, attach to the same state.
Implements sheaf::explicit_index_space_iterator.
Definition at line 242 of file array_index_space_iterator.cc.
References array_index_space_iterator(), sheaf::any::is_same_type(), and next().
Referenced by operator==().
|
protectedvirtual |
True if this conforms to the iterator type required by the explicit id space state xstate.
Implements sheaf::explicit_index_space_iterator.
Definition at line 412 of file array_index_space_iterator.cc.
References is_ancestor_of().
Referenced by array_index_space_iterator(), and attach_to().
|
virtual |
Class invariant.
Reimplemented from sheaf::explicit_index_space_iterator.
Definition at line 463 of file array_index_space_iterator.cc.
References sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), sheaf::explicit_index_space_iterator::invariant(), and sheaf::any::invariant_check().
Referenced by array_index_space_iterator(), attach_to(), is_ancestor_of(), next(), operator=(), operator==(), and reset().
|
virtual |
Conformance test; true if other conforms to this.
Reimplemented from sheaf::explicit_index_space_iterator.
Definition at line 442 of file array_index_space_iterator.cc.
References invariant().
Referenced by conforms_to_state(), operator=(), and operator==().
|
virtual |
Makes item() the next id in the iteration.
Implements sheaf::index_space_iterator.
Definition at line 276 of file array_index_space_iterator.cc.
References _end, sheaf::index_space_iterator::_hub_pod, sheaf::index_space_iterator::_pod, _to_hub, sheaf::index_space_iterator::hub_pod(), sheaf::index_space_iterator::invalidate_ids(), invariant(), sheaf::explicit_index_space_iterator::is_attached(), sheaf::index_space_iterator::is_done(), sheaf::is_valid(), sheaf::auto_block< T, S >::item(), sheaf::index_space_iterator::pod(), and reset().
Referenced by clone().
sheaf::array_index_space_iterator & sheaf::array_index_space_iterator::operator= | ( | const array_index_space_iterator & | xother | ) |
Assignment operator.
Definition at line 120 of file array_index_space_iterator.cc.
References _end, _to_hub, sheaf::explicit_index_space_iterator::detach(), invariant(), sheaf::explicit_index_space_iterator::is_attached(), and ~array_index_space_iterator().
Referenced by array_index_space_iterator(), and ~array_index_space_iterator().
|
virtual |
Assignment operator.
Reimplemented from sheaf::explicit_index_space_iterator.
Definition at line 188 of file array_index_space_iterator.cc.
References invariant(), is_ancestor_of(), and operator==().
|
virtual |
True if this is equivalent to xother.
Reimplemented from sheaf::explicit_index_space_iterator.
Definition at line 213 of file array_index_space_iterator.cc.
References _end, _to_hub, clone(), invariant(), is_ancestor_of(), sheaf::explicit_index_space_iterator::is_attached(), and sheaf::explicit_index_space_iterator::operator==().
Referenced by operator=().
|
virtual |
Restarts the iteration.
Implements sheaf::index_space_iterator.
Definition at line 317 of file array_index_space_iterator.cc.
References _end, sheaf::index_space_iterator::_hub_pod, sheaf::index_space_iterator::_is_done, sheaf::index_space_iterator::_pod, _to_hub, attach_to(), sheaf::index_space_iterator::invalidate_ids(), invariant(), sheaf::explicit_index_space_iterator::is_attached(), sheaf::is_valid(), and sheaf::auto_block< T, S >::item().
Referenced by attach_to(), and next().
|
protected |
The end of this id space.
Definition at line 102 of file array_index_space_iterator.h.
Referenced by attach_to(), next(), operator=(), operator==(), and reset().
|
protected |
The array to hub ids.
Definition at line 97 of file array_index_space_iterator.h.
Referenced by attach_to(), next(), operator=(), operator==(), and reset().