SheafSystem  0.0.0.0
sheaf::index_space_collection Class Referenceabstract

A collection of id space states. This is a virtual class with provides an interface for accessing the id space states via the collection's local indexing. More...

#include <index_space_collection.h>

Inheritance diagram for sheaf::index_space_collection:
sheaf::any sheaf::explicit_index_space_collection sheaf::index_space_interval fiber_bundle::i_adjacency_index_space_interval fiber_bundle::i_connectivity_index_space_interval fiber_bundle::ij_adjacency_index_space_interval fiber_bundle::ij_connectivity_index_space_interval fiber_bundle::ijk_adjacency_index_space_interval fiber_bundle::ijk_connectivity_index_space_interval sheaf::array_index_space_interval sheaf::constant_index_space_interval sheaf::explicit_index_space_interval sheaf::ragged_array_index_space_interval sheaf::singleton_index_space_interval

Friends

class explicit_index_space_handle
 
class explicit_index_space_iterator
 
class index_space_family
 

INDEX_SPACE_COLLECTION FACET

typedef pod_index_type pod_type
 The "plain old data" index type for this. More...
 
virtual ~index_space_collection ()
 Destructor. More...
 
virtual bool operator== (const index_space_collection &xother) const =0
 True if this is equivalent to xother. More...
 
virtual bool contains (pod_type xlocal_id) const =0
 True if this collection contains the id space with local id xlocal_id. More...
 
virtual bool contains_family (pod_type xspace_id) const =0
 True if this collection contains the id space with family id xspace_id. More...
 
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. More...
 
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. More...
 
virtual size_type deep_size (bool xinclude_shallow) const =0
 The deep size of this. More...
 
 index_space_collection ()
 Default constructor. More...
 
 index_space_collection (const index_space_collection &xother)
 Copy constructor; disabled. More...
 
virtual index_space_collectionoperator= (const index_space_collection &xother)=0
 Assignment operator. More...
 
virtual explicit_index_space_stateexplicit_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 xlocal_id. More...
 

INDEX SPACE FACET

virtual const index_space_familyid_spaces () const =0
 The id space family for this (const version). More...
 
virtual index_space_familyid_spaces ()=0
 The id space family for this (mutable version). More...
 
const hub_index_space_handlehub_id_space () const
 The hub id space. More...
 
virtual void remove (pod_type xlocal_id)=0
 Remove the id space with id xlocal_id. More...
 
virtual size_type ct (pod_type xlocal_id) const =0
 The number of members for the id space with id xlocal_id. More...
 
bool is_empty (pod_type xlocal_id) const
 True if there are no ids in the space with id xlocal_id. More...
 
virtual pod_type begin (pod_type xlocal_id) const =0
 Beginning id of the space with id xlocal_id. More...
 
virtual pod_type end (pod_type xlocal_id) const =0
 Ending id of the space with id xlocal_id. More...
 
bool is_gathered (pod_type xlocal_id) const
 True if begin(xlocal_id) == 0 and end(xlocal_id) == ct(xlocal_id). More...
 
virtual bool contains (pod_type xlocal_id, pod_type xid) const =0
 True if the space with id xlocal_id contains id xid. More...
 
bool contains (pod_type xlocal_id, const scoped_index &xid) const
 True if the space with id xlocal_id contains an id equivalent to xid. synonym for contains_hub(xlocal_id, xid.hub_pod()). More...
 
bool contains_hub (pod_type xlocal_id, pod_type xid) const
 True if the space with id xlocal_id contains an id equivalent to xid in the hub id space. synonym for contains_unglued_hub(xlocal_id, xid) More...
 
virtual bool contains_unglued_hub (pod_type xlocal_id, pod_type xid) const =0
 True if the space with id xlocal_id contains an id equivalent to xid in the unglued hub id space. More...
 
bool contains_glued_hub (pod_type xlocal_id, pod_type xid) const
 True if the space with id xlocal_id contains an id equivalent to xid in the glued hub id space. More...
 
bool contains (pod_type xlocal_id, pod_type xid, const scoped_index &xhub_id) const
 True if the space with id xlocal_id contains an id xid equivalent to xhub_id in the hub id space. synonym for contains(xlocal_id, xid, xhub_id.hub_pod()). More...
 
virtual bool contains (pod_type xlocal_id, pod_type xid, pod_type xhub_id) const =0
 True if the space with id xlocal_id contains an id xid equivalent to xhub_id in the hub id space. More...
 
virtual pod_type pod (pod_type xlocal_id, pod_type xid) const =0
 The pod index in the space with id xlocal_id equivalent to xid in the hub id space. More...
 
pod_type pod (pod_type xlocal_id, const scoped_index &xid) const
 The pod index in the space with id xlocal_id equivalent to xid. synonym for pod(xlocal_id, id.hub_pod()). More...
 
pod_type hub_pod (pod_type xlocal_id, pod_type xid) const
 The pod index in the glued hub id space equivalent to xid in the id space with id xlocal_id. synonym for unglued_hub_pod(xlocal_id, xid). More...
 
virtual pod_type unglued_hub_pod (pod_type xlocal_id, pod_type xid) const =0
 The pod index in the glued hub id space equivalent to xid in the id space with id xlocal_id. More...
 
pod_type glued_hub_pod (pod_type xlocal_id, pod_type xid) const
 The pod index in the unglued hub id space equivalent to xid in the id space with id xlocal_id. More...
 
virtual bool is_persistent (pod_type xlocal_id) const =0
 True if the id space with id xlocal_id should be written to disk. More...
 

PRODUCT STRUCTURE FACET

virtual void new_product_structure (pod_type xlocal_id, const abstract_product_structure &xproduct)=0
 Creates a new product structure for the id space with id xlocal_id by cloning the product structure, xproduct. More...
 
virtual void delete_product_structure (pod_type xlocal_id)=0
 Deletes the product structure for the id space with id xlocal_id. More...
 
virtual const abstract_product_structureproduct_structure (pod_type xlocal_id) const =0
 The product structure for the id space with id xlocal_id (const version). More...
 
virtual abstract_product_structureproduct_structure (pod_type xlocal_id)=0
 The product structure for the id space with id xlocal_id (mutable version). More...
 
virtual bool has_product_structure (pod_type xlocal_id) const =0
 True if the id space with id xlocal_id has a product structure. More...
 

HANDLE POOL FACET

virtual index_space_handleget_id_space (pod_type xlocal_id) const =0
 Allocates an id space handle from the handle pool attached to state with id xlocal_id. More...
 
virtual void release_id_space (index_space_handle &xid_space) const =0
 Returns the id space handle xid_space to the handle pool. More...
 
virtual bool allocated_id_space (const index_space_handle &xid_space) const =0
 True if and only if id space handle xid_space was allocated by the handle pool. More...
 

ITERATOR POOL FACET

virtual index_space_iteratorget_id_space_iterator (pod_type xlocal_id) const =0
 Allocates an id space iterator from the iterator pool attached to state with id xlocal_id. More...
 
virtual void release_id_space_iterator (index_space_iterator &xitr) const =0
 Returns the id space iterator xitr to the iterator pool. More...
 
virtual bool allocated_id_space_iterator (const index_space_iterator &xitr) const =0
 True if and only if id space iterator xitr was allocated by the iterator pool. 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 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 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::any
 any ()
 default constructor More...
 

Detailed Description

A collection of id space states. This is a virtual class with provides an interface for accessing the id space states via the collection's local indexing.

Definition at line 52 of file index_space_collection.h.

Member Typedef Documentation

◆ pod_type

The "plain old data" index type for this.

Definition at line 69 of file index_space_collection.h.

Constructor & Destructor Documentation

◆ ~index_space_collection()

sheaf::index_space_collection::~index_space_collection ( )
virtual

Destructor.

Definition at line 37 of file index_space_collection.cc.

References operator==().

◆ index_space_collection() [1/2]

sheaf::index_space_collection::index_space_collection ( )
protected

Default constructor.

Postcondition

Definition at line 181 of file index_space_collection.cc.

References invariant(), and operator=().

Referenced by deep_size().

◆ index_space_collection() [2/2]

sheaf::index_space_collection::index_space_collection ( const index_space_collection xother)
inlineprotected

Copy constructor; disabled.

Definition at line 116 of file index_space_collection.h.

Member Function Documentation

◆ allocated_id_space()

◆ allocated_id_space_iterator()

◆ begin()

◆ contains() [1/5]

bool sheaf::index_space_collection::contains ( pod_type  xlocal_id) const
pure virtual

True if this collection contains the id space with local id xlocal_id.

Is Abstract.

Postcondition
  • is_basic_query

Implemented in sheaf::explicit_index_space_interval.

Definition at line 75 of file index_space_collection.cc.

References contains_family().

Referenced by sheaf::implicit_index_space_iterator::attach_to(), sheaf::explicit_index_space_iterator::attach_to(), sheaf::constant_implicit_index_space_iterator::attach_to(), sheaf::singleton_implicit_index_space_iterator::attach_to(), sheaf::array_implicit_index_space_iterator::attach_to(), fiber_bundle::i_connectivity_implicit_index_space_iterator::attach_to(), sheaf::ragged_array_implicit_index_space_iterator::attach_to(), fiber_bundle::ij_connectivity_implicit_index_space_iterator::attach_to(), fiber_bundle::i_adjacency_implicit_index_space_iterator::attach_to(), fiber_bundle::ijk_connectivity_implicit_index_space_iterator::attach_to(), fiber_bundle::ij_adjacency_implicit_index_space_iterator::attach_to(), fiber_bundle::ijk_adjacency_implicit_index_space_iterator::attach_to(), sheaf::index_space_iterator::attach_to(), sheaf::forwarding_index_space_handle::attach_to(), sheaf::explicit_index_space_handle::attach_to(), sheaf::index_space_handle::attach_to(), begin(), sheaf::primitives_index_space_handle::conforms_to_state(), sheaf::explicit_index_space_iterator::conforms_to_state(), sheaf::primary_index_space_handle::conforms_to_state(), sheaf::hash_index_space_handle::conforms_to_state(), sheaf::singleton_index_space_handle::conforms_to_state(), sheaf::array_index_space_handle::conforms_to_state(), sheaf::offset_index_space_handle::conforms_to_state(), sheaf::scattered_insertion_index_space_handle::conforms_to_state(), sheaf::reserved_primary_index_space_handle::conforms_to_state(), fiber_bundle::section_space_schema_jims_index_space_handle::conforms_to_state(), sheaf::gathered_insertion_index_space_handle::conforms_to_state(), sheaf::list_index_space_handle::conforms_to_state(), sheaf::sum_index_space_handle::conforms_to_state(), sheaf::forwarding_index_space_handle::conforms_to_state(), sheaf::explicit_index_space_handle::conforms_to_state(), sheaf::index_space_iterator::conforms_to_state(), sheaf::interval_index_space_handle::conforms_to_state(), sheaf::hub_index_space_handle::conforms_to_state(), sheaf::index_space_handle::conforms_to_state(), sheaf::forwarding_index_space_handle::contains(), contains(), sheaf::index_space_family::contains(), contains_glued_hub(), contains_hub(), contains_unglued_hub(), ct(), delete_product_structure(), end(), get_id_space(), get_id_space_iterator(), glued_hub_pod(), has_product_structure(), hub_pod(), is_empty(), is_gathered(), is_persistent(), local_scope(), new_product_structure(), operator==(), pod(), product_structure(), sheaf::explicit_index_space_iterator::state(), sheaf::explicit_index_space_handle::state(), and unglued_hub_pod().

◆ contains() [2/5]

bool sheaf::index_space_collection::contains ( pod_type  xlocal_id,
pod_type  xid 
) const
pure virtual

◆ contains() [3/5]

bool sheaf::index_space_collection::contains ( pod_type  xlocal_id,
const scoped_index xid 
) const

True if the space with id xlocal_id contains an id equivalent to xid. synonym for contains_hub(xlocal_id, xid.hub_pod()).

Precondition
  • contains(xlocal_id)
Postcondition
  • is_basic_query

Definition at line 445 of file index_space_collection.cc.

References contains(), contains_hub(), and sheaf::scoped_index::hub_pod().

◆ contains() [4/5]

bool sheaf::index_space_collection::contains ( pod_type  xlocal_id,
pod_type  xid,
const scoped_index xhub_id 
) const

True if the space with id xlocal_id contains an id xid equivalent to xhub_id in the hub id space. synonym for contains(xlocal_id, xid, xhub_id.hub_pod()).

Precondition
  • contains(xlocal_id)
Postcondition
  • is_basic_query

Definition at line 532 of file index_space_collection.cc.

References contains(), and sheaf::scoped_index::hub_pod().

◆ contains() [5/5]

bool sheaf::index_space_collection::contains ( pod_type  xlocal_id,
pod_type  xid,
pod_type  xhub_id 
) const
pure virtual

True if the space with id xlocal_id contains an id xid equivalent to xhub_id in the hub id space.

Precondition
  • contains(xlocal_id)
Is Abstract.
Postcondition
  • is_basic_query

Implemented in fiber_bundle::ijk_adjacency_index_space_interval, fiber_bundle::ijk_connectivity_index_space_interval, fiber_bundle::ij_adjacency_index_space_interval, fiber_bundle::ij_connectivity_index_space_interval, fiber_bundle::i_adjacency_index_space_interval, and sheaf::explicit_index_space_interval.

Definition at line 553 of file index_space_collection.cc.

References contains(), and pod().

◆ contains_family()

bool sheaf::index_space_collection::contains_family ( pod_type  xspace_id) const
pure virtual

True if this collection contains the id space with family id xspace_id.

Is Abstract.

Postcondition
  • is_basic_query

Implemented in sheaf::explicit_index_space_interval.

Definition at line 96 of file index_space_collection.cc.

References local_scope().

Referenced by contains(), sheaf::index_space_family::contains(), and family_scope().

◆ contains_glued_hub()

bool sheaf::index_space_collection::contains_glued_hub ( pod_type  xlocal_id,
pod_type  xid 
) const

True if the space with id xlocal_id contains an id equivalent to xid in the glued hub id space.

Precondition
  • contains(xlocal_id)
Postcondition
  • is_basic_query

Definition at line 510 of file index_space_collection.cc.

References contains(), contains_unglued_hub(), hub_id_space(), and unglued_hub_pod().

Referenced by sheaf::forwarding_index_space_handle::contains_glued_hub(), sheaf::index_space_interval_iterator::contains_glued_hub(), contains_unglued_hub(), and glued_hub_pod().

◆ contains_hub()

bool sheaf::index_space_collection::contains_hub ( pod_type  xlocal_id,
pod_type  xid 
) const

True if the space with id xlocal_id contains an id equivalent to xid in the hub id space. synonym for contains_unglued_hub(xlocal_id, xid)

Precondition
  • contains(xlocal_id)
Postcondition
  • is_basic_query

Definition at line 466 of file index_space_collection.cc.

References contains(), and contains_unglued_hub().

Referenced by contains(), sheaf::index_space_interval_iterator::contains_hub(), hub_pod(), sheaf::constant_index_space_interval::pod(), and sheaf::singleton_index_space_interval::pod().

◆ contains_unglued_hub()

bool sheaf::index_space_collection::contains_unglued_hub ( pod_type  xlocal_id,
pod_type  xid 
) const
pure virtual

◆ ct()

◆ deep_size()

◆ delete_product_structure()

void sheaf::index_space_collection::delete_product_structure ( pod_type  xlocal_id)
pure virtual

◆ end()

◆ explicit_state()

◆ family_scope()

◆ get_id_space()

◆ get_id_space_iterator()

◆ glued_hub_pod()

sheaf::index_space_collection::pod_type sheaf::index_space_collection::glued_hub_pod ( pod_type  xlocal_id,
pod_type  xid 
) const

The pod index in the unglued hub id space equivalent to xid in the id space with id xlocal_id.

Precondition
  • contains(xlocal_id)
Postcondition
  • !is_valid(result) || contains_glued_hub(xlocal_id, result)

Definition at line 664 of file index_space_collection.cc.

References contains(), contains_glued_hub(), sheaf::explicit_index_space_handle::glued_hub_pod(), hub_id_space(), is_persistent(), sheaf::is_valid(), and unglued_hub_pod().

Referenced by sheaf::forwarding_index_space_handle::glued_hub_pod(), sheaf::index_space_interval_iterator::glued_hub_pod(), and unglued_hub_pod().

◆ has_product_structure()

◆ hub_id_space()

const sheaf::hub_index_space_handle & sheaf::index_space_collection::hub_id_space ( ) const

The hub id space.

Postcondition
  • is_basic_query

Definition at line 292 of file index_space_collection.cc.

References ct(), sheaf::index_space_family::hub_id_space(), and id_spaces().

Referenced by contains_glued_hub(), glued_hub_pod(), and id_spaces().

◆ hub_pod()

◆ id_spaces() [1/2]

const sheaf::index_space_family & sheaf::index_space_collection::id_spaces ( ) const
pure virtual

◆ id_spaces() [2/2]

sheaf::index_space_family & sheaf::index_space_collection::id_spaces ( )
pure virtual

The id space family for this (mutable version).

Is Abstract.

Postcondition
  • is_basic_query

Implemented in sheaf::index_space_interval, and sheaf::explicit_index_space_collection.

Definition at line 271 of file index_space_collection.cc.

References hub_id_space().

◆ invariant()

◆ is_ancestor_of()

◆ is_empty()

bool sheaf::index_space_collection::is_empty ( pod_type  xlocal_id) const

True if there are no ids in the space with id xlocal_id.

Precondition
  • contains(xlocal_id)
Postcondition
  • is_basic_query

Definition at line 334 of file index_space_collection.cc.

References begin(), contains(), and ct().

Referenced by ct().

◆ is_gathered()

bool sheaf::index_space_collection::is_gathered ( pod_type  xlocal_id) const

True if begin(xlocal_id) == 0 and end(xlocal_id) == ct(xlocal_id).

Precondition
  • contains(xlocal_id)
Postcondition
  • is_basic_query

Definition at line 401 of file index_space_collection.cc.

References begin(), contains(), ct(), and end().

Referenced by end().

◆ is_persistent()

◆ local_scope()

◆ new_product_structure()

void sheaf::index_space_collection::new_product_structure ( pod_type  xlocal_id,
const abstract_product_structure xproduct 
)
pure virtual

Creates a new product structure for the id space with id xlocal_id by cloning the product structure, xproduct.

Precondition
  • contains(xlocal_id)
Is Abstract.
Postcondition
  • has_product_structure(xlocal_id)

Implemented in fiber_bundle::ijk_adjacency_index_space_interval, fiber_bundle::ijk_connectivity_index_space_interval, fiber_bundle::ij_adjacency_index_space_interval, fiber_bundle::ij_connectivity_index_space_interval, fiber_bundle::i_adjacency_index_space_interval, and sheaf::explicit_index_space_interval.

Definition at line 720 of file index_space_collection.cc.

References contains(), delete_product_structure(), and has_product_structure().

Referenced by is_persistent(), and sheaf::index_space_family::new_product_structure().

◆ operator=()

◆ operator==()

◆ pod() [1/2]

sheaf::index_space_collection::pod_type sheaf::index_space_collection::pod ( pod_type  xlocal_id,
pod_type  xid 
) const
pure virtual

◆ pod() [2/2]

sheaf::index_space_collection::pod_type sheaf::index_space_collection::pod ( pod_type  xlocal_id,
const scoped_index xid 
) const

The pod index in the space with id xlocal_id equivalent to xid. synonym for pod(xlocal_id, id.hub_pod()).

Precondition
  • contains(xlocal_id)
Postcondition
  • !is_valid(result) || contains(xlocal_id, result)

Definition at line 599 of file index_space_collection.cc.

References contains(), hub_pod(), sheaf::scoped_index::hub_pod(), sheaf::is_valid(), and pod().

◆ product_structure() [1/2]

const sheaf::abstract_product_structure & sheaf::index_space_collection::product_structure ( pod_type  xlocal_id) const
pure virtual

◆ product_structure() [2/2]

sheaf::abstract_product_structure & sheaf::index_space_collection::product_structure ( pod_type  xlocal_id)
pure virtual

The product structure for the id space with id xlocal_id (mutable version).

Precondition
  • contains(xlocal_id)
  • has_product_structure(xlocal_id)
Is Abstract.
Postcondition
  • is_basic_query

Implemented in fiber_bundle::ijk_adjacency_index_space_interval, fiber_bundle::ijk_connectivity_index_space_interval, fiber_bundle::ij_adjacency_index_space_interval, fiber_bundle::ij_connectivity_index_space_interval, fiber_bundle::i_adjacency_index_space_interval, and sheaf::explicit_index_space_interval.

Definition at line 787 of file index_space_collection.cc.

References contains(), and has_product_structure().

◆ release_id_space()

◆ release_id_space_iterator()

◆ remove()

◆ unglued_hub_pod()

sheaf::index_space_collection::pod_type sheaf::index_space_collection::unglued_hub_pod ( pod_type  xlocal_id,
pod_type  xid 
) const
pure virtual

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