SheafSystem  0.0.0.0
sheaf::index_space_interval Class Referenceabstract

An implemenation of index_space_collection that adds an interface for the interval [begin(), end()) in the id space family. More...

#include <index_space_interval.h>

Inheritance diagram for sheaf::index_space_interval:
sheaf::index_space_collection sheaf::any 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

Public Member Functions

virtual const std::string & class_name () const
 The name of this class. More...
 
virtual index_space_intervalclone () const =0
 Virtual constructor; create a new instance of the same type at thi. More...
 
- Public Member Functions inherited from sheaf::index_space_collection
virtual ~index_space_collection ()
 Destructor. 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...
 
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...
 
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...
 
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...
 
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...
 
- 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...
 

Static Public Member Functions

static factory< index_space_interval > & id_space_interval_factory ()
 A factory for making descendants of this class. More...
 

Friends

class index_space_family_iterator
 
class index_space_interval_iterator
 

INDEX_SPACE_INTERVAL FACET

pod_type _begin
 Beginning space id of this interval in the id space family scope. More...
 
pod_type _end
 Ending space id of this interval in the id space family scope. More...
 
virtual ~index_space_interval ()
 Destructor. More...
 
pod_type begin () const
 Beginning space id of this interval in the id space family scope. More...
 
pod_type end () const
 Ending space id of this interval in the id space family scope. More...
 
bool in_bounds (pod_type xspace_id) const
 True if id xspace_id is in the bounds [begin(), end()). More...
 
 index_space_interval ()
 Default constructor. More...
 
 index_space_interval (const index_space_interval &xother)
 Copy constructor; disabled. More...
 
void new_state (index_space_family &xid_spaces, size_type xub)
 Create a new id space interval in the id space family xid_spaces with upper bound xub. More...
 
virtual bool supports_persistent_id_spaces () const
 True, if this interval supports persistent id spaces. More...
 

INDEX_SPACE_COLLECTION FACET

virtual bool operator== (const index_space_collection &xother) const
 True if this is equivalent to xother. More...
 
virtual bool contains (pod_type xlocal_id) const
 True if this collection contains the id space with local id xlocal_id. More...
 
virtual bool contains_family (pod_type xspace_id) const
 True if this collection contains the id space with family id xspace_id. More...
 
virtual pod_type local_scope (pod_type xspace_id) const
 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
 Id relative to the id space family equivalent to the local id xlocal_id. More...
 
virtual index_space_intervaloperator= (const index_space_collection &xother)
 Assignment operator. More...
 

INDEX SPACE FACET

index_space_family_id_spaces
 The index space family of this collection. More...
 
virtual const index_space_familyid_spaces () const
 The id space family for this (const version). More...
 
virtual index_space_familyid_spaces ()
 The id space family for this (mutable version). 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_collection
typedef pod_index_type pod_type
 The "plain old data" index type for this. More...
 
- Protected Member Functions inherited from sheaf::index_space_collection
 index_space_collection ()
 Default constructor. More...
 
 index_space_collection (const index_space_collection &xother)
 Copy constructor; disabled. 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...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 

Detailed Description

An implemenation of index_space_collection that adds an interface for the interval [begin(), end()) in the id space family.

Definition at line 43 of file index_space_interval.h.

Constructor & Destructor Documentation

◆ ~index_space_interval()

sheaf::index_space_interval::~index_space_interval ( )
virtual

Destructor.

Definition at line 32 of file index_space_interval.cc.

References begin().

◆ index_space_interval() [1/2]

sheaf::index_space_interval::index_space_interval ( )
protected

Default constructor.

Postcondition

Definition at line 107 of file index_space_interval.cc.

References invariant(), and new_state().

Referenced by in_bounds().

◆ index_space_interval() [2/2]

sheaf::index_space_interval::index_space_interval ( const index_space_interval xother)
inlineprotected

Copy constructor; disabled.

Definition at line 90 of file index_space_interval.h.

Member Function Documentation

◆ begin()

◆ class_name()

◆ clone()

◆ contains()

◆ contains_family()

bool sheaf::index_space_interval::contains_family ( pod_type  xspace_id) const
virtual

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

Postcondition
  • is_basic_query

Definition at line 282 of file index_space_interval.cc.

References in_bounds(), and local_scope().

Referenced by contains(), family_scope(), and local_scope().

◆ end()

sheaf::index_space_interval::pod_type sheaf::index_space_interval::end ( ) const

Ending space id of this interval in the id space family scope.

Postcondition
  • is_basic_query

Definition at line 68 of file index_space_interval.cc.

References _end, and in_bounds().

Referenced by sheaf::index_space_interval_iterator::attach_to(), begin(), sheaf::constant_index_space_interval::begin(), sheaf::singleton_index_space_interval::begin(), fiber_bundle::i_connectivity_index_space_interval::begin(), sheaf::explicit_index_space_interval::begin(), sheaf::ragged_array_index_space_interval::begin(), fiber_bundle::i_adjacency_index_space_interval::begin(), fiber_bundle::ij_connectivity_index_space_interval::begin(), sheaf::array_index_space_interval::begin(), fiber_bundle::ij_adjacency_index_space_interval::begin(), fiber_bundle::ijk_connectivity_index_space_interval::begin(), fiber_bundle::ijk_adjacency_index_space_interval::begin(), sheaf::index_space_family::clear_id_spaces(), sheaf::constant_index_space_interval::constant_index_space_interval(), fiber_bundle::i_adjacency_index_space_interval::contains(), fiber_bundle::ij_adjacency_index_space_interval::contains(), fiber_bundle::ijk_adjacency_index_space_interval::contains(), sheaf::index_space_interval_iterator::end(), sheaf::explicit_index_space_interval::explicit_index_space_interval(), fiber_bundle::i_connectivity_index_space_interval::i_connectivity_index_space_interval(), sheaf::index_space_family::insert_interval(), new_state(), sheaf::operator<<(), and sheaf::singleton_index_space_interval::singleton_index_space_interval().

◆ family_scope()

sheaf::index_space_collection::pod_type sheaf::index_space_interval::family_scope ( pod_type  xlocal_id) const
virtual

Id relative to the id space family equivalent to the local id xlocal_id.

Postcondition
  • !is_valid(result) || contains_family(result)

Definition at line 321 of file index_space_interval.cc.

References _begin, contains_family(), sheaf::invalid_pod_index(), sheaf::is_valid(), and operator=().

Referenced by sheaf::index_space_interval_iterator::index(), and local_scope().

◆ id_space_interval_factory()

◆ id_spaces() [1/2]

◆ id_spaces() [2/2]

sheaf::index_space_family & sheaf::index_space_interval::id_spaces ( )
virtual

The id space family for this (mutable version).

Postcondition
  • is_basic_query

Implements sheaf::index_space_collection.

Definition at line 402 of file index_space_interval.cc.

References _id_spaces, and is_ancestor_of().

◆ in_bounds()

bool sheaf::index_space_interval::in_bounds ( pod_type  xspace_id) const

True if id xspace_id is in the bounds [begin(), end()).

Postcondition
  • is_basic_query

Definition at line 87 of file index_space_interval.cc.

References _begin, _end, and index_space_interval().

Referenced by contains(), contains_family(), end(), and sheaf::explicit_index_space_interval::insert().

◆ invariant()

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

Class invariant.

Invariant

Reimplemented from sheaf::index_space_collection.

Reimplemented in fiber_bundle::ijk_adjacency_index_space_interval, fiber_bundle::ijk_connectivity_index_space_interval, fiber_bundle::ij_adjacency_index_space_interval, sheaf::array_index_space_interval, fiber_bundle::ij_connectivity_index_space_interval, fiber_bundle::i_adjacency_index_space_interval, sheaf::ragged_array_index_space_interval, fiber_bundle::i_connectivity_index_space_interval, sheaf::constant_index_space_interval, sheaf::singleton_index_space_interval, and sheaf::explicit_index_space_interval.

Definition at line 453 of file index_space_interval.cc.

References sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), sheaf::index_space_collection::invariant(), sheaf::any::invariant_check(), and sheaf::operator<<().

Referenced by index_space_interval(), sheaf::explicit_index_space_interval::invariant(), sheaf::constant_index_space_interval::invariant(), sheaf::singleton_index_space_interval::invariant(), fiber_bundle::i_connectivity_index_space_interval::invariant(), sheaf::ragged_array_index_space_interval::invariant(), fiber_bundle::i_adjacency_index_space_interval::invariant(), fiber_bundle::ij_connectivity_index_space_interval::invariant(), sheaf::array_index_space_interval::invariant(), fiber_bundle::ij_adjacency_index_space_interval::invariant(), fiber_bundle::ijk_connectivity_index_space_interval::invariant(), fiber_bundle::ijk_adjacency_index_space_interval::invariant(), is_ancestor_of(), and operator=().

◆ is_ancestor_of()

◆ local_scope()

◆ new_state()

void sheaf::index_space_interval::new_state ( index_space_family xid_spaces,
size_type  xub 
)
protected

Create a new id space interval in the id space family xid_spaces with upper bound xub.

Postcondition
  • end() == xid_spaces.end()

Definition at line 127 of file index_space_interval.cc.

References _begin, _end, _id_spaces, begin(), end(), sheaf::index_space_family::end(), id_spaces(), and supports_persistent_id_spaces().

Referenced by index_space_interval().

◆ operator=()

sheaf::index_space_interval & sheaf::index_space_interval::operator= ( const index_space_collection xother)
protectedvirtual

◆ operator==()

bool sheaf::index_space_interval::operator== ( const index_space_collection xother) const
virtual

◆ supports_persistent_id_spaces()

bool sheaf::index_space_interval::supports_persistent_id_spaces ( ) const
protectedvirtual

True, if this interval supports persistent id spaces.

Postcondition
  • is_basic_query

Reimplemented in sheaf::explicit_index_space_interval.

Definition at line 155 of file index_space_interval.cc.

References class_name().

Referenced by new_state().

Member Data Documentation

◆ _begin

pod_type sheaf::index_space_interval::_begin
protected

◆ _end

pod_type sheaf::index_space_interval::_end
protected

Ending space id of this interval in the id space family scope.

Definition at line 111 of file index_space_interval.h.

Referenced by sheaf::explicit_index_space_interval::contains(), sheaf::explicit_index_space_interval::contains_family(), end(), in_bounds(), new_state(), operator=(), and operator==().

◆ _id_spaces

index_space_family* sheaf::index_space_interval::_id_spaces
protected

The index space family of this collection.

Definition at line 186 of file index_space_interval.h.

Referenced by id_spaces(), new_state(), operator=(), and operator==().


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