SheafSystem  0.0.0.0
sheaf::index_space_family Class Reference

Factory and container for a family of id spaces. More...

#include <index_space_family.h>

Inheritance diagram for sheaf::index_space_family:
sheaf::any

Friends

class explicit_index_space_handle
 
class explicit_index_space_iterator
 
class explicit_index_space_state
 
class forwarding_index_space_handle
 
class id_space_names_record
 
class implicit_index_space_iterator
 
class index_space_family_iterator
 
class index_space_handle
 
class index_space_interval
 
class index_space_iterator
 
class poset_state_handle
 
class poset_crg_state
 
class primary_sum_index_space_state
 
SHEAF_DLL_SPEC size_t deep_size (const index_space_family &xfamily, bool xinclude_shallow)
 The deep size of index_space_family& xn. More...
 

INDEX_SPACE_FAMILY FACET

typedef pod_index_type pod_type
 The "plain old data" index type for this. More...
 
name_multimap _name_to_index
 Map from name to id space index. More...
 
pod_type _end
 Ending index of the id spaces. More...
 
pod_type _standard_end
 Ending index of the standard id spaces. More...
 
 index_space_family ()
 Default constructor. More...
 
virtual ~index_space_family ()
 Destructor. More...
 
std::string name (pod_type xid) const
 The name for id xid. More...
 
pod_type index (const std::string &xname) const
 The index for name xname. More...
 
void put_name (pod_type xid, const std::string &xname)
 Associate name xname with id space index xid. More...
 
bool contains (pod_type xid) const
 True, if this contains an id space with id xid. More...
 
bool contains (const std::string &xname) const
 True, if this contains an id space with name xname. More...
 
pod_type begin () const
 The beginning index of the id spaces. More...
 
pod_type end () const
 The ending index of the id spaces. More...
 
bool has_only_standard_id_spaces () const
 True if and only if all the id spaces are standard id spaces. More...
 
void update_standard_id_spaces ()
 Update the initially allocated id spaces. More...
 
void clear_id_spaces ()
 Clear all the non-standard id spaces in this family. More...
 
static size_typemax_rep_ids ()
 Maximum number of representive ids which are permitted by the stream insertion operator to output the equivalence class. More...
 
 index_space_family (const index_space_family &xother)
 Copy constructor; disabled. More...
 

STATE FACET

typedef std::map< pod_type, index_space_interval * > interval_map_type
 Type of interval map. More...
 
typedef interval_map_type::iterator interval_iterator_type
 Type of interval map iterator. More...
 
typedef interval_map_type::const_iterator const_interval_iterator_type
 Type of interval map iterator. More...
 
interval_map_type _intervals
 Map from id to id space interval. More...
 
explicit_index_space_interval_explicit_interval
 The current explicit id space interval. More...
 
pod_type _next_explicit_id
 The next available id for an explicit index space. More...
 
void delete_space (pod_type xid)
 Delete the id space with index xid. More...
 
void delete_space (const std::string &xname)
 Delete the id space with name xname. More...
 
bool is_explicit_interval (pod_type xid)
 True, if and only if the id space interval that contains index xid is an explicit interval. More...
 
pod_type new_primary_state (size_type xct)
 Creates a new primary id space state with xct number of ids. Returns the index of the id space state created. More...
 
pod_type new_primary_state (pod_type xid, size_type xct)
 Creates a new primary id space state [xid, xid+xct). Returns the index of the id space state created. More...
 
void delete_primary_state (pod_type xid)
 Delete the primary space state with id xid. More...
 
void new_state (const std::string &xname, const std::string &xstate_class_name)
 Create a new id space with class type xstate_class_name and name xname. Used by the I/O system to read secondary id spaces. More...
 
void delete_state (pod_type xid)
 Delete the state with id xid. More...
 
void insert_interval (index_space_interval &xinterval)
 Inserts an id space interval into this family. More...
 
void delete_interval (pod_type xid)
 Delete the interval that contains the id space with id xid. More...
 
const index_space_collectioncollection (pod_type xid) const
 Id space collection for id xid (const version). More...
 
index_space_collectioncollection (pod_type xid)
 Id space collection for id xid (mutable version). More...
 
pod_type reserve_next_explicit_id ()
 Reserve the next available id for an explicit index space. More...
 
static size_type explicit_interval_size ()
 Size of the explicit id space intervals. More...
 

HUB ID SPACE FACET

hub_index_space_handle _hub_id_space
 The hub id space. More...
 
interval_index_space_handle _gathered_hub_id_space
 The gathered hub id space. More...
 
pod_type new_id ()
 Allocate the next available id in this family. More...
 
pod_type new_id (pod_type xid)
 Allocate an xid in this family. More...
 
void delete_id (pod_type xid)
 Deallocate the id xid in this family. More...
 
const hub_index_space_handlehub_id_space () const
 The hub id space of this family. More...
 
const index_space_handlenew_gathered_hub_id_space (bool xexclude_bottom)
 Create a gathered hub id space for this family. If xexclude_bottom, construct the id space without BOTTOM_INDEX. More...
 
void update_gathered_hub_id_space ()
 Update the gathered hub id space. More...
 
const index_space_handlegathered_hub_id_space () const
 A secondary id space that is a gathered version of the hub id space. More...
 
bool has_gathered_hub_id_space () const
 True if there is a gathered hub id space for this family. More...
 
bool gathered_hub_id_space_excludes_bottom () const
 True, if the gathered hub id space excludes BOTTOM_INDEX. More...
 
bool is_valid_reserved_id (pod_type xid) const
 True if and only if the reserved term containing xid is already a reserved term or is available for allocation. More...
 
const index_space_handleterm_of (pod_type xid) const
 The term in the hub id space containing id xid. More...
 
const index_space_handleterm_of (const scoped_index &xid) const
 The term in the hub id space containing id xid. More...
 
const index_space_handlelast_term () const
 The last term in the hub id space. More...
 
void extend_last_term (size_type xct)
 Extends the last term to to ct == xct. More...
 
static const std::string & hub_id_space_name ()
 Name of the hub id space. More...
 

INDEX SPACE FACET

size_type ct (const std::string &xname) const
 The number of members for the id space with name xname. More...
 
size_type ct (pod_type xspace_id) const
 The number of members for the id space with id xspace_id. More...
 
bool is_empty (const std::string &xname) const
 True if there are no ids in the space with name xname. More...
 
bool is_empty (pod_type xspace_id) const
 True if there are no ids in the space with id xspace_id. More...
 
pod_type begin (const std::string &xname) const
 Beginning id of the space with name xname. More...
 
pod_type begin (pod_type xspace_id) const
 Beginning id of the space with id xspace_id. More...
 
pod_type end (const std::string &xname) const
 Ending id of the space with name xname. More...
 
pod_type end (pod_type xspace_id) const
 Ending id of this the with id xspace_id. More...
 
pod_type hub_begin (const std::string &xname) const
 Beginning id of the space in the hub id space with name xname. More...
 
pod_type hub_begin (pod_type xspace_id) const
 Beginning id of the space in the hub id space with id xspace_id. More...
 
bool is_gathered (const std::string &xname) const
 True if begin(xspace_id) == 0 and end(xspace_id) == ct(xspace_id). More...
 
bool is_gathered (pod_type xspace_id) const
 True if begin(xspace_id) == 0 and end(xspace_id) == ct(xspace_id). More...
 
bool contains (const std::string &xname, pod_type xid) const
 True if the space with name xname contains id xid. More...
 
bool contains (pod_type xspace_id, pod_type xid) const
 True if the space with id xspace_id contains id xid. More...
 
bool contains (const std::string &xname, const scoped_index &xid) const
 True if the space with name xname contains an id equivalent to xid. synonym for contains_hub(xspace_id, xid.hub_pod()). More...
 
bool contains (pod_type xspace_id, const scoped_index &xid) const
 True if the space with id xspace_id contains an id equivalent to xid. synonym for contains_hub(xspace_id, xid.hub_pod()). More...
 
bool contains_hub (const std::string &xname, pod_type xid) const
 True if the space with name xname contains an id equivalent to xid in the unglued hub id space. synonym for contains_unglued_hub(xname, xid). More...
 
bool contains_hub (pod_type xspace_id, pod_type xid) const
 True if the space with id xspace_id contains an id equivalent to xid in the unglued hub id space. synonym for contains_unglued_hub(xspace_id, xid). More...
 
bool contains_unglued_hub (const std::string &xname, pod_type xid) const
 True if the space with name xname contains an id equivalent to xid in the unglued hub id space. More...
 
bool contains_unglued_hub (pod_type xspace_id, pod_type xid) const
 True if the space with id xspace_id contains an id equivalent to xid in the unglued hub id space. More...
 
bool contains_glued_hub (const std::string &xname, pod_type xid) const
 True if the space with name xname contains an id equivalent to xid in the glued hub id space. More...
 
bool contains_glued_hub (pod_type xspace_id, pod_type xid) const
 True if the space with id xspace_id contains an id equivalent to xid in the glued hub id space. More...
 
bool contains (const std::string &xname, pod_type xid, const scoped_index &xhub_id) const
 True if the space with name xname contains an id xid equivalent to xhub_id in the hub id space. synonym for contains(xspace_id, xid, xhub_id.hub_pod()). More...
 
bool contains (pod_type xspace_id, pod_type xid, const scoped_index &xhub_id) const
 True if the space with id xspace_id contains an id xid equivalent to xhub_id in the hub id space. synonym for contains(xspace_id, xid, xhub_id.hub_pod()). More...
 
bool contains (const std::string &xname, pod_type xid, pod_type xhub_id) const
 True if the space with name xname contains an id xid equivalent to xhub_id in the hub id space. More...
 
bool contains (pod_type xspace_id, pod_type xid, pod_type xhub_id) const
 True if the space with id xspace_id contains an id xid equivalent to xhub_id in the hub id space. More...
 
pod_type pod (const std::string &xname, pod_type xid) const
 The pod index in the space with name xname equivalent to xid in the hub id space. More...
 
pod_type pod (pod_type xspace_id, pod_type xid) const
 The pod index in the space with id xspace_id equivalent to xid in the hub id space. More...
 
pod_type pod (const std::string &xname, const scoped_index &xid) const
 The pod index in the space with name xname equivalent to xid. synonym for pod(xxspace_id, id.hub_pod()). More...
 
pod_type pod (pod_type xspace_id, const scoped_index &xid) const
 The pod index in the space with id xspace_id equivalent to xid. synonym for pod(xxspace_id, id.hub_pod()). More...
 
pod_type hub_pod (const std::string &xname, pod_type xid) const
 The pod index in the unglued hub id space equivalent to xid in the id space with name xname. synonym for unglued_hub_pod(xname, xid). More...
 
pod_type hub_pod (pod_type xspace_id, pod_type xid) const
 The pod index in the unglued hub id space equivalent to xid in the id space with id xspace_id. synonym for unglued_hub_pod(xspace_id, xid). More...
 
pod_type unglued_hub_pod (const std::string &xname, pod_type xid) const
 The pod index in the unglued hub id space equivalent to xid in the id space with name xname. More...
 
pod_type unglued_hub_pod (pod_type xspace_id, pod_type xid) const
 The pod index in the unglued hub id space equivalent to xid in the id space with id xspace_id. More...
 
pod_type glued_hub_pod (const std::string &xname, pod_type xid) const
 The pod index in the glued hub id space equivalent to xid in the id space with name xname. More...
 
pod_type glued_hub_pod (pod_type xspace_id, pod_type xid) const
 The pod index in the glued hub id space equivalent to xid in the id space with id xspace_id. More...
 
bool is_persistent (const std::string &xname) const
 True if the id space with name xname should be written to disk. More...
 
bool is_persistent (pod_type xspace_id) const
 True if the id space with id xspace_id should be written to disk. More...
 

GLUING FACET

void glue (pod_type xid, pod_type xrep)
 Glues xid to xrep; adds xid to the equivalence class with representative member xrep. More...
 
void unglue (pod_type xid)
 Unglues xid; makes xid its own representative. More...
 
void unglue_all (pod_type xrep_id)
 Unglue all ids glued to representative xrep_id; makes each id in the equivalence class of xrep_id its own representative. More...
 
bool has_gluing () const
 Ture if there is any gluing in the hub id space. More...
 

PRODUCT STRUCTURE FACET

void new_product_structure (const std::string &xname, const abstract_product_structure &xproduct)
 Creates a new product structure for the id space with name xname by cloning the product structure, xproduct. More...
 
void new_product_structure (pod_type xspace_id, const abstract_product_structure &xproduct)
 Creates a new product structure for the id space with id xspace_id by cloning the product structure, xproduct. More...
 
void delete_product_structure (const std::string &xname)
 Deletes the product structure for the id space with name xname. More...
 
void delete_product_structure (pod_type xspace_id)
 Deletes the product structure for the id space with id xspace_id. More...
 
const abstract_product_structureproduct_structure (const std::string &xname) const
 The product structure for the id space with name xname (const version). More...
 
const abstract_product_structureproduct_structure (pod_type xspace_id) const
 The product structure for the id space with id xspace_id (const version). More...
 
abstract_product_structureproduct_structure (const std::string &xname)
 The product structure for the id space with name xname (mutable version). More...
 
abstract_product_structureproduct_structure (pod_type xspace_id)
 The product structure for the id space with id xspace_id (mutable version). More...
 
template<typename T >
const T & product_structure (const std::string &xname) const
 The product structure of type T for the id space with name xname (const version). More...
 
template<typename T >
const T & product_structure (pod_type xspace_id) const
 The product structure of type T for the id space with id xspace_id (const version). More...
 
template<typename T >
T & product_structure (const std::string &xname)
 The product structure of type T for the id space with name xname (mutable version). More...
 
template<typename T >
T & product_structure (pod_type xspace_id)
 The product structure of type T for the id space with id xspace_id (mutable version). More...
 
bool has_product_structure (const std::string &xname) const
 True if the id space with name xname has a product structure. More...
 
bool has_product_structure (pod_type xspace_id) const
 True if the id space with id xspace_id has a product structure. More...
 
template<typename T >
bool product_structure_conforms_to (const std::string &xname) const
 True if the product structure for the id space with name xname conforms to type T. More...
 
template<typename T >
bool product_structure_conforms_to (pod_type xspace_id) const
 True if the product structure for the id space with id xspace_id conforms to type T. More...
 

HANDLE POOL FACET

index_space_handleget_id_space (const std::string &xname) const
 Allocates an id space handle from the handle pool attached to state with name xname. More...
 
index_space_handleget_id_space (pod_type xspace_id) const
 Allocates an id space handle from the handle pool attached to state with id xspace_id. More...
 
template<typename T >
T & get_id_space (const std::string &xname) const
 Allocates an id space handle of type T from the handle pool attached to state with name xname. More...
 
template<typename T >
T & get_id_space (pod_type xspace_id) const
 Allocates an id space handle of type T from the handle pool attached to state with id xspace_id. More...
 
template<typename T >
bool handle_conforms_to_state (const std::string &xname) const
 True if handle of type T conforms to the state with name xname. More...
 
template<typename T >
bool handle_conforms_to_state (pod_type xspace_id) const
 True if handle of type T conforms to the state with id xspace_id. More...
 
void release_id_space (index_space_handle &xid_space) const
 Returns the id space handle xid_space to the handle pool. More...
 
bool allocated_id_space (const index_space_handle &xid_space) const
 True if and only if id space handle xid_space was allocated by the handle pool. More...
 

ITERATOR POOL FACET

index_space_iteratorget_id_space_iterator (const std::string &xname) const
 Allocates an id space iterator from the iterator pool attached to state with name xname. More...
 
index_space_iteratorget_id_space_iterator (pod_type xspace_id) const
 Allocates an id space iterator from the iterator pool attached to state with id xspace_id. More...
 
void release_id_space_iterator (index_space_iterator &xitr) const
 Returns the id space iterator xitr to the iterator pool. More...
 
bool allocated_id_space_iterator (const index_space_iterator &xitr) const
 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

Factory and container for a family of id spaces.

Definition at line 77 of file index_space_family.h.

Member Typedef Documentation

◆ const_interval_iterator_type

typedef interval_map_type::const_iterator sheaf::index_space_family::const_interval_iterator_type
protected

Type of interval map iterator.

Definition at line 297 of file index_space_family.h.

◆ interval_iterator_type

typedef interval_map_type::iterator sheaf::index_space_family::interval_iterator_type
protected

Type of interval map iterator.

Definition at line 292 of file index_space_family.h.

◆ interval_map_type

Type of interval map.

Definition at line 287 of file index_space_family.h.

◆ pod_type

The "plain old data" index type for this.

Definition at line 104 of file index_space_family.h.

Constructor & Destructor Documentation

◆ index_space_family() [1/2]

sheaf::index_space_family::index_space_family ( )

◆ ~index_space_family()

sheaf::index_space_family::~index_space_family ( )
virtual

Destructor.

Definition at line 73 of file index_space_family.cc.

References _intervals, and name().

Referenced by index_space_family().

◆ index_space_family() [2/2]

sheaf::index_space_family::index_space_family ( const index_space_family xother)
inlineprotected

Copy constructor; disabled.

Definition at line 179 of file index_space_family.h.

Member Function Documentation

◆ allocated_id_space()

bool sheaf::index_space_family::allocated_id_space ( const index_space_handle xid_space) const

True if and only if id space handle xid_space was allocated by the handle pool.

Postcondition
  • is_basic_query

Definition at line 2410 of file index_space_family.cc.

References collection(), get_id_space_iterator(), and sheaf::index_space_handle::index().

Referenced by fiber_bundle::sec_rep_space::allocated_branch_handle(), and release_id_space().

◆ allocated_id_space_iterator()

bool sheaf::index_space_family::allocated_id_space_iterator ( const index_space_iterator xitr) const

True if and only if id space iterator xitr was allocated by the iterator pool.

Postcondition
  • is_basic_query

Definition at line 2506 of file index_space_family.cc.

References collection(), sheaf::index_space_iterator::index(), and is_ancestor_of().

Referenced by fiber_bundle::sec_rep_space::allocated_branch_iterator(), and release_id_space_iterator().

◆ begin() [1/3]

sheaf::index_space_family::pod_type sheaf::index_space_family::begin ( ) const

The beginning index of the id spaces.

Postcondition
  • is_basic_query

Definition at line 207 of file index_space_family.cc.

References end().

Referenced by begin(), contains(), extend_last_term(), invariant(), is_empty(), is_gathered(), and sheaf::operator<<().

◆ begin() [2/3]

sheaf::index_space_family::pod_type sheaf::index_space_family::begin ( const std::string &  xname) const

Beginning id of the space with name xname.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1244 of file index_space_family.cc.

References _name_to_index, begin(), contains(), and sheaf::name_multimap::index().

◆ begin() [3/3]

sheaf::index_space_family::pod_type sheaf::index_space_family::begin ( pod_type  xspace_id) const

Beginning id of the space with id xspace_id.

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1265 of file index_space_family.cc.

References sheaf::index_space_collection::begin(), collection(), contains(), end(), and sheaf::index_space_collection::local_scope().

◆ clear_id_spaces()

◆ collection() [1/2]

◆ collection() [2/2]

sheaf::index_space_collection * sheaf::index_space_family::collection ( pod_type  xid)
protected

Id space collection for id xid (mutable version).

Postcondition
  • is_basic_query

Definition at line 765 of file index_space_family.cc.

References _intervals, and reserve_next_explicit_id().

◆ contains() [1/10]

bool sheaf::index_space_family::contains ( pod_type  xid) const

True, if this contains an id space with id xid.

Postcondition
  • is_basic_query

Definition at line 165 of file index_space_family.cc.

References collection(), and sheaf::index_space_collection::contains_family().

Referenced by sheaf::array_index_space_handle::array_index_space_handle(), sheaf::schema_poset_member::attach_handle_data_members(), sheaf::index_space_iterator::attach_to(), sheaf::index_space_handle::attach_to(), begin(), tool::vtk_unstructured_grid_builder::build_pa(), sheaf::storage_agent::clear_all_id_spaces(), sheaf::index_space_iterator::conforms_to_state(), sheaf::index_space_handle::conforms_to_state(), contains(), contains_glued_hub(), contains_hub(), contains_unglued_hub(), ct(), delete_id(), delete_interval(), delete_primary_state(), delete_product_structure(), delete_space(), delete_state(), end(), sheaf::gathered_insertion_index_space_handle::gathered_insertion_index_space_handle(), get_id_space(), get_id_space_iterator(), glued_hub_pod(), handle_conforms_to_state(), has_product_structure(), sheaf::hash_index_space_handle::hash_index_space_handle(), hub_begin(), sheaf::hub_index_space_handle::hub_index_space_handle(), hub_pod(), sheaf::id_block::id_block(), index(), sheaf::poset_scaffold::initialize_dof_tuple_id_space(), sheaf::poset_scaffold::initialize_member_id_space(), sheaf::storage_agent::initialize_poset_id_spaces_for_write(), sheaf::poset_scaffold::initialize_subposet_id_space(), sheaf::interval_index_space_handle::interval_index_space_handle(), invariant(), is_empty(), is_gathered(), is_persistent(), fiber_bundle::section_space_schema_poset::is_valid_int_id(), sheaf::list_index_space_handle::list_index_space_handle(), name(), sheaf::index_space_iterator::name(), sheaf::index_space_handle::name(), new_id(), new_primary_state(), new_product_structure(), sheaf::singleton_index_space_handle::new_space(), sheaf::interval_index_space_handle::new_space(), sheaf::offset_index_space_handle::new_space(), sheaf::hash_index_space_handle::new_space(), sheaf::array_index_space_handle::new_space(), sheaf::primitives_index_space_state::new_space(), sheaf::reserved_primary_index_space_state::new_space(), sheaf::singleton_index_space_state::new_space(), sheaf::offset_index_space_state::new_space(), sheaf::primary_index_space_state::new_space(), fiber_bundle::section_space_schema_jims_index_space_handle::new_space(), sheaf::hash_index_space_state::new_space(), fiber_bundle::section_space_schema_jims_index_space_state::new_space(), sheaf::list_index_space_handle::new_space(), sheaf::array_index_space_state::new_space(), sheaf::list_index_space_state::new_space(), sheaf::interval_index_space_state::new_space(), sheaf::primary_sum_index_space_state::new_space(), sheaf::explicit_index_space_state::new_state(), new_state(), sheaf::offset_index_space_handle::offset_index_space_handle(), pod(), sheaf::primary_index_space_handle::primary_index_space_handle(), sheaf::primitives_index_space_handle::primitives_index_space_handle(), product_structure(), product_structure_conforms_to(), sheaf::subposet_state::put_id_space(), put_name(), sheaf::reserved_primary_index_space_handle::reserved_primary_index_space_handle(), sheaf::scattered_insertion_index_space_handle::scattered_insertion_index_space_handle(), sheaf::scoped_index::scoped_index(), fiber_bundle::section_space_schema_jims_index_space_handle::section_space_schema_jims_index_space_handle(), sheaf::singleton_index_space_handle::singleton_index_space_handle(), sheaf::storage_agent::state_is_consistent(), sheaf::sum_index_space_handle::sum_index_space_handle(), sheaf::id_space_names_record::transfer_internal_buffer_to_poset(), unglue(), unglued_hub_pod(), fiber_bundle::product_section_space_schema_member::update_row_cache(), fiber_bundle::section_space_schema_member::update_row_cache(), fiber_bundle::product_section_space_schema_member::update_row_cache_without_disc_id_space(), fiber_bundle::section_space_schema_member::update_row_cache_without_disc_id_space(), fiber_bundle::product_section_space_schema_member::update_row_dof_id_space(), and fiber_bundle::homogeneous_block_crg_interval::~homogeneous_block_crg_interval().

◆ contains() [2/10]

bool sheaf::index_space_family::contains ( const std::string &  xname) const

True, if this contains an id space with name xname.

Postcondition
  • is_basic_query

Definition at line 186 of file index_space_family.cc.

References _name_to_index, begin(), contains(), sheaf::name_multimap::index(), and sheaf::is_valid().

◆ contains() [3/10]

bool sheaf::index_space_family::contains ( const std::string &  xname,
pod_type  xid 
) const

True if the space with name xname contains id xid.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1421 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

◆ contains() [4/10]

bool sheaf::index_space_family::contains ( pod_type  xspace_id,
pod_type  xid 
) const

True if the space with id xspace_id contains id xid.

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1442 of file index_space_family.cc.

References collection(), sheaf::index_space_collection::contains(), contains(), and sheaf::index_space_collection::local_scope().

◆ contains() [5/10]

bool sheaf::index_space_family::contains ( const std::string &  xname,
const scoped_index xid 
) const

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

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1466 of file index_space_family.cc.

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

◆ contains() [6/10]

bool sheaf::index_space_family::contains ( pod_type  xspace_id,
const scoped_index xid 
) const

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

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1487 of file index_space_family.cc.

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

◆ contains() [7/10]

bool sheaf::index_space_family::contains ( const std::string &  xname,
pod_type  xid,
const scoped_index xhub_id 
) const

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

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1638 of file index_space_family.cc.

References _name_to_index, contains(), sheaf::scoped_index::hub_pod(), and sheaf::name_multimap::index().

◆ contains() [8/10]

bool sheaf::index_space_family::contains ( pod_type  xspace_id,
pod_type  xid,
const scoped_index xhub_id 
) const

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

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1659 of file index_space_family.cc.

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

◆ contains() [9/10]

bool sheaf::index_space_family::contains ( const std::string &  xname,
pod_type  xid,
pod_type  xhub_id 
) const

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

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1680 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

◆ contains() [10/10]

bool sheaf::index_space_family::contains ( pod_type  xspace_id,
pod_type  xid,
pod_type  xhub_id 
) const

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

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1701 of file index_space_family.cc.

References collection(), sheaf::index_space_collection::contains(), contains(), sheaf::index_space_collection::local_scope(), and pod().

◆ contains_glued_hub() [1/2]

bool sheaf::index_space_family::contains_glued_hub ( const std::string &  xname,
pod_type  xid 
) const

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

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1595 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

Referenced by contains_unglued_hub(), and glued_hub_pod().

◆ contains_glued_hub() [2/2]

bool sheaf::index_space_family::contains_glued_hub ( pod_type  xspace_id,
pod_type  xid 
) const

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

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1616 of file index_space_family.cc.

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

◆ contains_hub() [1/2]

bool sheaf::index_space_family::contains_hub ( const std::string &  xname,
pod_type  xid 
) const

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

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1508 of file index_space_family.cc.

References contains(), and contains_unglued_hub().

Referenced by contains(), fiber_bundle::base_space_poset::contains_adjacency_id_space(), fiber_bundle::base_space_poset::contains_connectivity_id_space(), hub_pod(), fiber_bundle::section_space_schema_poset::is_valid_int_id(), and fiber_bundle::homogeneous_block_crg_interval::member_class().

◆ contains_hub() [2/2]

bool sheaf::index_space_family::contains_hub ( pod_type  xspace_id,
pod_type  xid 
) const

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

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1529 of file index_space_family.cc.

References contains(), and contains_unglued_hub().

◆ contains_unglued_hub() [1/2]

bool sheaf::index_space_family::contains_unglued_hub ( const std::string &  xname,
pod_type  xid 
) const

True if the space with name xname contains an id equivalent to xid in the unglued hub id space.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1550 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

Referenced by contains_glued_hub(), contains_hub(), and unglued_hub_pod().

◆ contains_unglued_hub() [2/2]

bool sheaf::index_space_family::contains_unglued_hub ( pod_type  xspace_id,
pod_type  xid 
) const

True if the space with id xspace_id contains an id equivalent to xid in the unglued hub id space.

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1571 of file index_space_family.cc.

References collection(), contains(), contains_glued_hub(), sheaf::index_space_collection::contains_unglued_hub(), and sheaf::index_space_collection::local_scope().

◆ ct() [1/2]

◆ ct() [2/2]

sheaf::size_type sheaf::index_space_family::ct ( pod_type  xspace_id) const

The number of members for the id space with id xspace_id.

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1178 of file index_space_family.cc.

References collection(), contains(), sheaf::index_space_collection::ct(), is_empty(), and sheaf::index_space_collection::local_scope().

◆ delete_id()

void sheaf::index_space_family::delete_id ( pod_type  xid)

Deallocate the id xid in this family.

Postcondition
  • !hub_id_space().contains(xid)

Definition at line 881 of file index_space_family.cc.

References _hub_id_space, contains(), sheaf::hub_index_space_handle::delete_id(), and hub_id_space().

Referenced by new_id().

◆ delete_interval()

void sheaf::index_space_family::delete_interval ( pod_type  xid)
protected

Delete the interval that contains the id space with id xid.

Precondition
  • !contains(xid) || !handle_conforms_to_state<primary_index_space_handle>(xid)
Postcondition
  • !contains(xid)

Definition at line 655 of file index_space_family.cc.

References _end, _intervals, collection(), contains(), hub_id_space(), index(), and invariant().

Referenced by delete_space(), and insert_interval().

◆ delete_primary_state()

void sheaf::index_space_family::delete_primary_state ( pod_type  xid)
protected

Delete the primary space state with id xid.

Precondition
  • contains(xid)
  • handle_conforms_to_state<primary_index_space_handle>(xid)
Postcondition
  • !contains(xid)

Definition at line 507 of file index_space_family.cc.

References _hub_id_space, contains(), delete_state(), hub_id_space(), sheaf::primary_index_space_handle::hub_term_id(), index(), invariant(), new_state(), and sheaf::hub_index_space_handle::remove_term().

Referenced by new_primary_state().

◆ delete_product_structure() [1/2]

void sheaf::index_space_family::delete_product_structure ( const std::string &  xname)

Deletes the product structure for the id space with name xname.

Precondition
  • contains(xname)
Postcondition
  • !has_product_structure(xname)

Definition at line 2145 of file index_space_family.cc.

References _name_to_index, contains(), has_product_structure(), and sheaf::name_multimap::index().

Referenced by new_product_structure().

◆ delete_product_structure() [2/2]

void sheaf::index_space_family::delete_product_structure ( pod_type  xspace_id)

Deletes the product structure for the id space with id xspace_id.

Precondition
  • contains(xspace_id)
Postcondition
  • !has_product_structure(xspace_id)

Definition at line 2166 of file index_space_family.cc.

References collection(), contains(), sheaf::index_space_collection::delete_product_structure(), has_product_structure(), sheaf::index_space_collection::local_scope(), and product_structure().

◆ delete_space() [1/2]

void sheaf::index_space_family::delete_space ( pod_type  xid)

◆ delete_space() [2/2]

void sheaf::index_space_family::delete_space ( const std::string &  xname)

Delete the id space with name xname.

Precondition
  • contains(xname) ? !handle_conforms_to_state<primary_index_space_handle>(xname) : true
Postcondition
  • !contains(xname)

Definition at line 419 of file index_space_family.cc.

References _name_to_index, contains(), sheaf::name_multimap::contains_name(), delete_space(), hub_id_space_name(), sheaf::name_multimap::index(), invariant(), and is_explicit_interval().

◆ delete_state()

◆ end() [1/3]

◆ end() [2/3]

sheaf::index_space_family::pod_type sheaf::index_space_family::end ( const std::string &  xname) const

Ending id of the space with name xname.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1289 of file index_space_family.cc.

References _name_to_index, contains(), end(), and sheaf::name_multimap::index().

◆ end() [3/3]

sheaf::index_space_family::pod_type sheaf::index_space_family::end ( pod_type  xspace_id) const

Ending id of this the with id xspace_id.

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1310 of file index_space_family.cc.

References collection(), contains(), sheaf::index_space_collection::end(), hub_begin(), and sheaf::index_space_collection::local_scope().

◆ explicit_interval_size()

sheaf::size_type sheaf::index_space_family::explicit_interval_size ( )
staticprotected

Size of the explicit id space intervals.

Definition at line 825 of file index_space_family.cc.

References sheaf::EXPLICIT_INTERVAL_SIZE, and new_id().

Referenced by reserve_next_explicit_id().

◆ extend_last_term()

void sheaf::index_space_family::extend_last_term ( size_type  xct)

Extends the last term to to ct == xct.

Hack:
A temporary method to support extension of section space schema when the underlying base space is extended.
Precondition
Postcondition
  • for( scoped_index i=old_last_term_begin ; i<old_last_term_begin+xct ; ++i ) i.in_scope()

Definition at line 1121 of file index_space_family.cc.

References _hub_id_space, begin(), ct(), sheaf::hub_index_space_handle::extend_last_term(), hub_id_space(), sheaf::scoped_index::in_scope(), is_empty(), and last_term().

Referenced by last_term().

◆ gathered_hub_id_space()

const sheaf::index_space_handle & sheaf::index_space_family::gathered_hub_id_space ( ) const

A secondary id space that is a gathered version of the hub id space.

Precondition
Postcondition
  • is_basic_query

Definition at line 964 of file index_space_family.cc.

References _hub_id_space, sheaf::hub_index_space_handle::gathered_id_space(), and has_gathered_hub_id_space().

Referenced by new_gathered_hub_id_space(), and update_gathered_hub_id_space().

◆ gathered_hub_id_space_excludes_bottom()

bool sheaf::index_space_family::gathered_hub_id_space_excludes_bottom ( ) const

True, if the gathered hub id space excludes BOTTOM_INDEX.

Postcondition
  • is_basic_query

Definition at line 1005 of file index_space_family.cc.

References _hub_id_space, sheaf::hub_index_space_handle::gathered_id_space_excludes_bottom(), and hub_id_space_name().

Referenced by has_gathered_hub_id_space(), and new_gathered_hub_id_space().

◆ get_id_space() [1/4]

sheaf::index_space_handle & sheaf::index_space_family::get_id_space ( const std::string &  xname) const

◆ get_id_space() [2/4]

sheaf::index_space_handle & sheaf::index_space_family::get_id_space ( pod_type  xspace_id) const

Allocates an id space handle from the handle pool attached to state with id xspace_id.

Precondition
  • contains(xspace_id)
Postcondition
  • result.is_attached()

Definition at line 2365 of file index_space_family.cc.

References collection(), contains(), sheaf::index_space_collection::get_id_space(), sheaf::index_space_handle::is_attached(), sheaf::index_space_collection::local_scope(), and release_id_space().

◆ get_id_space() [3/4]

template<typename T >
T & sheaf::index_space_family::get_id_space ( const std::string &  xname) const

Allocates an id space handle of type T from the handle pool attached to state with name xname.

Precondition
  • contains(xname)
  • handle_conforms_to_state<T>(xname)
Postcondition
  • result.is_attached()

Definition at line 189 of file index_space_family.impl.h.

References contains(), and get_id_space().

◆ get_id_space() [4/4]

template<typename T >
T & sheaf::index_space_family::get_id_space ( pod_type  xspace_id) const

Allocates an id space handle of type T from the handle pool attached to state with id xspace_id.

Precondition
  • contains(xid)
  • handle_conforms_to_state<T>(xid)
Postcondition
  • result.is_attached()

Definition at line 212 of file index_space_family.impl.h.

References contains(), get_id_space(), and handle_conforms_to_state().

◆ get_id_space_iterator() [1/2]

◆ get_id_space_iterator() [2/2]

sheaf::index_space_iterator & sheaf::index_space_family::get_id_space_iterator ( pod_type  xspace_id) const

Allocates an id space iterator from the iterator pool attached to state with id xspace_id.

Precondition
  • contains(xspace_id)
Postcondition
  • result.is_attached()

Definition at line 2461 of file index_space_family.cc.

References collection(), contains(), sheaf::index_space_collection::get_id_space_iterator(), sheaf::index_space_iterator::is_attached(), sheaf::index_space_collection::local_scope(), and release_id_space_iterator().

◆ glue()

void sheaf::index_space_family::glue ( pod_type  xid,
pod_type  xrep 
)

Glues xid to xrep; adds xid to the equivalence class with representative member xrep.

Precondition
Postcondition
  • !hub_id_space().contains_rep(xid)

Definition at line 1998 of file index_space_family.cc.

References _hub_id_space, sheaf::hub_index_space_handle::glue(), glued_hub_pod(), hub_id_space(), invariant(), and unglue().

Referenced by is_persistent().

◆ glued_hub_pod() [1/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::glued_hub_pod ( const std::string &  xname,
pod_type  xid 
) const

The pod index in the glued hub id space equivalent to xid in the id space with name xname.

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

Definition at line 1899 of file index_space_family.cc.

References _name_to_index, contains(), contains_glued_hub(), sheaf::name_multimap::index(), and sheaf::is_valid().

Referenced by glue(), sheaf::scoped_index::glued_hub_pod(), and unglued_hub_pod().

◆ glued_hub_pod() [2/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::glued_hub_pod ( pod_type  xspace_id,
pod_type  xid 
) const

The pod index in the glued hub id space equivalent to xid in the id space with id xspace_id.

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

Definition at line 1920 of file index_space_family.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().

◆ handle_conforms_to_state() [1/2]

template<typename T >
bool sheaf::index_space_family::handle_conforms_to_state ( const std::string &  xname) const

True if handle of type T conforms to the state with name xname.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 235 of file index_space_family.impl.h.

References contains(), get_id_space(), and release_id_space().

Referenced by sheaf::crg_interval::cover_is_explicit(), sheaf::crg_interval::force_explicit_cover(), get_id_space(), sheaf::subposet_state::put_id_space(), and sheaf::id_space_names_record::transfer_poset_to_internal_buffer().

◆ handle_conforms_to_state() [2/2]

template<typename T >
bool sheaf::index_space_family::handle_conforms_to_state ( pod_type  xspace_id) const

True if handle of type T conforms to the state with id xspace_id.

Precondition
  • contains(xid)
Postcondition
  • is_basic_query

Definition at line 261 of file index_space_family.impl.h.

References contains(), get_id_space(), and release_id_space().

◆ has_gathered_hub_id_space()

bool sheaf::index_space_family::has_gathered_hub_id_space ( ) const

True if there is a gathered hub id space for this family.

Postcondition
  • is_basic_query

Definition at line 986 of file index_space_family.cc.

References _hub_id_space, gathered_hub_id_space_excludes_bottom(), and sheaf::hub_index_space_handle::has_gathered_id_space().

Referenced by gathered_hub_id_space(), new_gathered_hub_id_space(), and update_gathered_hub_id_space().

◆ has_gluing()

bool sheaf::index_space_family::has_gluing ( ) const

Ture if there is any gluing in the hub id space.

Postcondition
  • is_basic_query

Definition at line 2068 of file index_space_family.cc.

References _hub_id_space, sheaf::hub_index_space_handle::has_gluing(), and new_product_structure().

Referenced by unglue_all().

◆ has_only_standard_id_spaces()

bool sheaf::index_space_family::has_only_standard_id_spaces ( ) const

True if and only if all the id spaces are standard id spaces.

Postcondition
  • is_basic_query

Definition at line 245 of file index_space_family.cc.

References _end, _standard_end, and update_standard_id_spaces().

Referenced by clear_id_spaces(), end(), and update_standard_id_spaces().

◆ has_product_structure() [1/2]

bool sheaf::index_space_family::has_product_structure ( const std::string &  xname) const

True if the id space with name xname has a product structure.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 2288 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

Referenced by delete_product_structure(), new_product_structure(), product_structure(), and product_structure_conforms_to().

◆ has_product_structure() [2/2]

bool sheaf::index_space_family::has_product_structure ( pod_type  xspace_id) const

True if the id space with id xspace_id has a product structure.

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 2309 of file index_space_family.cc.

References collection(), contains(), get_id_space(), sheaf::index_space_collection::has_product_structure(), and sheaf::index_space_collection::local_scope().

◆ hub_begin() [1/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::hub_begin ( const std::string &  xname) const

Beginning id of the space in the hub id space with name xname.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1334 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

Referenced by end().

◆ hub_begin() [2/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::hub_begin ( pod_type  xspace_id) const

Beginning id of the space in the hub id space with id xspace_id.

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1355 of file index_space_family.cc.

References sheaf::index_space_collection::begin(), collection(), contains(), sheaf::index_space_collection::hub_pod(), is_gathered(), and sheaf::index_space_collection::local_scope().

◆ hub_id_space()

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

The hub id space of this family.

Postcondition
  • is_basic_query

Definition at line 900 of file index_space_family.cc.

References _hub_id_space, and new_gathered_hub_id_space().

Referenced by clear_id_spaces(), contains_glued_hub(), delete_id(), delete_interval(), delete_primary_state(), delete_space(), sheaf::poset_state_handle::dof_tuple_hub_id_space(), extend_last_term(), glue(), glued_hub_pod(), sheaf::index_space_handle::hub_id_space(), sheaf::index_space_collection::hub_id_space(), sheaf::crg_interval::hub_id_space(), sheaf::explicit_index_space_state::hub_id_space(), sheaf::index_space_family_iterator::hub_id_space(), sheaf::index_space_interval_iterator::hub_id_space(), sheaf::index_space_iterator::hub_id_space(), sheaf::index_equivalence_class::index_equivalence_class(), sheaf::index_equivalence_iterator::index_equivalence_iterator(), last_term(), sheaf::poset_state_handle::member_hub_id_space(), new_id(), sheaf::singleton_index_space_handle::new_space(), sheaf::singleton_index_space_state::new_space(), fiber_bundle::i_connectivity_index_space_interval::new_space(), fiber_bundle::i_adjacency_index_space_interval::new_space(), fiber_bundle::ijk_connectivity_index_space_interval::new_space(), fiber_bundle::ij_adjacency_index_space_interval::new_space(), fiber_bundle::ij_connectivity_index_space_interval::new_space(), fiber_bundle::ijk_adjacency_index_space_interval::new_space(), sheaf::operator<<(), sheaf::index_equivalence_iterator::put_rep_id(), sheaf::index_equivalence_iterator::rep_id(), sheaf::poset_state_handle::subposet_hub_id_space(), unglue(), unglue_all(), and update_standard_id_spaces().

◆ hub_id_space_name()

const std::string & sheaf::index_space_family::hub_id_space_name ( )
static

Name of the hub id space.

Postcondition
  • is_basic_query

Definition at line 1024 of file index_space_family.cc.

References is_valid_reserved_id(), and sheaf::poset_path::reserved_prefix().

Referenced by delete_space(), gathered_hub_id_space_excludes_bottom(), index_space_family(), and invariant().

◆ hub_pod() [1/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::hub_pod ( const std::string &  xname,
pod_type  xid 
) const

The pod index in the unglued hub id space equivalent to xid in the id space with name xname. synonym for unglued_hub_pod(xname, xid).

Precondition
  • contains(xname)
Postcondition
  • !is_valid(result) || contains_hub(xname, result)

Definition at line 1812 of file index_space_family.cc.

References contains(), contains_hub(), sheaf::is_valid(), and unglued_hub_pod().

Referenced by pod().

◆ hub_pod() [2/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::hub_pod ( pod_type  xspace_id,
pod_type  xid 
) const

The pod index in the unglued hub id space equivalent to xid in the id space with id xspace_id. synonym for unglued_hub_pod(xspace_id, xid).

Precondition
  • contains(xspace_id)
Postcondition
  • !is_valid(result) || contains_hub(xspace_id, result)

Definition at line 1833 of file index_space_family.cc.

References contains(), contains_hub(), sheaf::is_valid(), and unglued_hub_pod().

◆ index()

sheaf::index_space_family::pod_type sheaf::index_space_family::index ( const std::string &  xname) const

The index for name xname.

Todo:
Add an interface for accessing all possible names.
Precondition
  • !xname.empty()
Postcondition
  • !is_valid(result) || contains(result)

Definition at line 122 of file index_space_family.cc.

References _name_to_index, contains(), sheaf::name_multimap::index(), sheaf::is_valid(), and put_name().

Referenced by sheaf::index_space_iterator::attach_to(), sheaf::index_space_handle::attach_to(), sheaf::index_space_iterator::conforms_to_state(), sheaf::index_space_handle::conforms_to_state(), delete_interval(), delete_primary_state(), delete_space(), and name().

◆ insert_interval()

void sheaf::index_space_family::insert_interval ( index_space_interval xinterval)
protected

Inserts an id space interval into this family.

Precondition
  • xinterval.begin() == end()

Definition at line 622 of file index_space_family.cc.

References _end, _intervals, sheaf::index_space_interval::begin(), delete_interval(), sheaf::index_space_interval::end(), and end().

Referenced by delete_state().

◆ invariant()

◆ is_ancestor_of()

bool sheaf::index_space_family::is_ancestor_of ( const any other) const
virtual

Conformance test; true if other conforms to this.

Precondition
  • other != 0

Reimplemented from sheaf::any.

Definition at line 2536 of file index_space_family.cc.

References invariant().

Referenced by allocated_id_space_iterator().

◆ is_empty() [1/2]

bool sheaf::index_space_family::is_empty ( const std::string &  xname) const

True if there are no ids in the space with name xname.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1202 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

Referenced by ct(), extend_last_term(), last_term(), and sheaf::storage_agent::state_is_consistent().

◆ is_empty() [2/2]

bool sheaf::index_space_family::is_empty ( pod_type  xspace_id) const

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

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1223 of file index_space_family.cc.

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

◆ is_explicit_interval()

◆ is_gathered() [1/2]

bool sheaf::index_space_family::is_gathered ( const std::string &  xname) const

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

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1379 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

Referenced by hub_begin(), new_gathered_hub_id_space(), and update_gathered_hub_id_space().

◆ is_gathered() [2/2]

bool sheaf::index_space_family::is_gathered ( pod_type  xspace_id) const

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

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1400 of file index_space_family.cc.

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

◆ is_persistent() [1/2]

bool sheaf::index_space_family::is_persistent ( const std::string &  xname) const

True if the id space with name xname should be written to disk.

Precondition
  • contains(xname)
Postcondition
  • is_basic_query

Definition at line 1942 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::index().

Referenced by glued_hub_pod(), sheaf::operator<<(), and fiber_bundle::section_space_schema_member::update_row_cache().

◆ is_persistent() [2/2]

bool sheaf::index_space_family::is_persistent ( pod_type  xspace_id) const

True if the id space with id xspace_id should be written to disk.

Precondition
  • contains(xspace_id)
Postcondition
  • is_basic_query

Definition at line 1963 of file index_space_family.cc.

References collection(), contains(), glue(), sheaf::index_space_collection::is_persistent(), and sheaf::index_space_collection::local_scope().

◆ is_valid_reserved_id()

bool sheaf::index_space_family::is_valid_reserved_id ( pod_type  xid) const

True if and only if the reserved term containing xid is already a reserved term or is available for allocation.

Postcondition
  • is_basic_query

Definition at line 1043 of file index_space_family.cc.

References _hub_id_space, sheaf::hub_index_space_handle::is_valid_reserved_id(), and term_of().

Referenced by hub_id_space_name(), and new_id().

◆ last_term()

const sheaf::index_space_handle & sheaf::index_space_family::last_term ( ) const

The last term in the hub id space.

Precondition
Postcondition
  • is_basic_query

Definition at line 1100 of file index_space_family.cc.

References _hub_id_space, extend_last_term(), hub_id_space(), is_empty(), and sheaf::sum_index_space_handle::last_term().

Referenced by extend_last_term(), and term_of().

◆ max_rep_ids()

sheaf::size_type & sheaf::index_space_family::max_rep_ids ( )
static

Maximum number of representive ids which are permitted by the stream insertion operator to output the equivalence class.

Definition at line 354 of file index_space_family.cc.

References delete_space().

Referenced by clear_id_spaces(), and sheaf::operator<<().

◆ name()

std::string sheaf::index_space_family::name ( pod_type  xid) const

◆ new_gathered_hub_id_space()

const sheaf::index_space_handle & sheaf::index_space_family::new_gathered_hub_id_space ( bool  xexclude_bottom)

Create a gathered hub id space for this family. If xexclude_bottom, construct the id space without BOTTOM_INDEX.

Precondition
  • !has_gathered_hub_id_space()
Postcondition

Definition at line 919 of file index_space_family.cc.

References _hub_id_space, gathered_hub_id_space(), gathered_hub_id_space_excludes_bottom(), has_gathered_hub_id_space(), is_gathered(), sheaf::hub_index_space_handle::new_gathered_id_space(), and update_gathered_hub_id_space().

Referenced by hub_id_space().

◆ new_id() [1/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::new_id ( )

Allocate the next available id in this family.

Postcondition

Definition at line 841 of file index_space_family.cc.

References _hub_id_space, contains(), hub_id_space(), and sheaf::hub_index_space_handle::new_id().

Referenced by explicit_interval_size().

◆ new_id() [2/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::new_id ( pod_type  xid)

Allocate an xid in this family.

Precondition
  • is_valid_reserved_id(xid)
Postcondition

Definition at line 860 of file index_space_family.cc.

References _hub_id_space, contains(), delete_id(), hub_id_space(), is_valid_reserved_id(), and sheaf::hub_index_space_handle::new_id().

◆ new_primary_state() [1/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::new_primary_state ( size_type  xct)
protected

Creates a new primary id space state with xct number of ids. Returns the index of the id space state created.

Postcondition
  • contains(result)

Definition at line 467 of file index_space_family.cc.

References _hub_id_space, contains(), invariant(), and sheaf::hub_index_space_handle::new_primary_term().

Referenced by is_explicit_interval().

◆ new_primary_state() [2/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::new_primary_state ( pod_type  xid,
size_type  xct 
)
protected

Creates a new primary id space state [xid, xid+xct). Returns the index of the id space state created.

Postcondition
  • contains(result)

Definition at line 487 of file index_space_family.cc.

References _hub_id_space, contains(), delete_primary_state(), invariant(), and sheaf::hub_index_space_handle::new_primary_term().

◆ new_product_structure() [1/2]

void sheaf::index_space_family::new_product_structure ( const std::string &  xname,
const abstract_product_structure xproduct 
)

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

Precondition
  • contains(xname)
Postcondition
  • has_product_structure(xname)

Definition at line 2098 of file index_space_family.cc.

References _name_to_index, contains(), has_product_structure(), and sheaf::name_multimap::index().

Referenced by has_gluing().

◆ new_product_structure() [2/2]

void sheaf::index_space_family::new_product_structure ( pod_type  xspace_id,
const abstract_product_structure xproduct 
)

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

Precondition
  • contains(xspace_id)
Postcondition
  • has_product_structure(xspace_id)

Definition at line 2120 of file index_space_family.cc.

References collection(), contains(), delete_product_structure(), has_product_structure(), sheaf::index_space_collection::local_scope(), and sheaf::index_space_collection::new_product_structure().

◆ new_state()

void sheaf::index_space_family::new_state ( const std::string &  xname,
const std::string &  xstate_class_name 
)
protected

Create a new id space with class type xstate_class_name and name xname. Used by the I/O system to read secondary id spaces.

Precondition
  • !xname.empty()
  • !contains(xname)
  • !xstate_class_name.empty()
Hack:
See COM-475. Remove this precondition once COM-475 is fixed.
Precondition
  • -unexecutable( "xstate_class_name is a mutable id space state" )
Postcondition
  • contains(xname)
Hack:
See COM-475. Remove this postcondition once COM-475 is fixed.
Postcondition
  • handle_conforms_to_state<scattered_insertion_index_space_handle>(xname)

Definition at line 540 of file index_space_family.cc.

References contains(), delete_state(), sheaf::explicit_index_space_state::id_space_factory(), invariant(), and sheaf::explicit_index_space_state::new_state().

Referenced by delete_primary_state(), and sheaf::id_space_names_record::transfer_internal_buffer_to_poset().

◆ pod() [1/4]

◆ pod() [2/4]

sheaf::index_space_family::pod_type sheaf::index_space_family::pod ( pod_type  xspace_id,
pod_type  xid 
) const

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

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

Definition at line 1746 of file index_space_family.cc.

References collection(), contains(), sheaf::is_valid(), sheaf::index_space_collection::local_scope(), sheaf::index_space_collection::pod(), and pod().

◆ pod() [3/4]

sheaf::index_space_family::pod_type sheaf::index_space_family::pod ( const std::string &  xname,
const scoped_index xid 
) const

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

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

Definition at line 1770 of file index_space_family.cc.

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

◆ pod() [4/4]

sheaf::index_space_family::pod_type sheaf::index_space_family::pod ( pod_type  xspace_id,
const scoped_index xid 
) const

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

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

Definition at line 1791 of file index_space_family.cc.

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

◆ product_structure() [1/8]

const sheaf::abstract_product_structure & sheaf::index_space_family::product_structure ( const std::string &  xname) const

The product structure for the id space with name xname (const version).

Precondition
  • contains(xname)
  • has_product_structure(xname)
Postcondition
  • is_basic_query

Definition at line 2190 of file index_space_family.cc.

References _name_to_index, contains(), has_product_structure(), and sheaf::name_multimap::index().

Referenced by delete_product_structure(), product_structure(), and product_structure_conforms_to().

◆ product_structure() [2/8]

const sheaf::abstract_product_structure & sheaf::index_space_family::product_structure ( pod_type  xspace_id) const

The product structure for the id space with id xspace_id (const version).

Precondition
  • contains(xspace_id)
  • has_product_structure(xspace_id)
Postcondition
  • is_basic_query

Definition at line 2213 of file index_space_family.cc.

References collection(), contains(), has_product_structure(), sheaf::index_space_collection::local_scope(), sheaf::index_space_collection::product_structure(), and product_structure().

◆ product_structure() [3/8]

sheaf::abstract_product_structure & sheaf::index_space_family::product_structure ( const std::string &  xname)

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

Precondition
  • contains(xname)
  • has_product_structure(xname)
Postcondition
  • is_basic_query

Definition at line 2239 of file index_space_family.cc.

References _name_to_index, contains(), has_product_structure(), sheaf::name_multimap::index(), and product_structure().

◆ product_structure() [4/8]

sheaf::abstract_product_structure & sheaf::index_space_family::product_structure ( pod_type  xspace_id)

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

Precondition
  • contains(xspace_id)
  • has_product_structure(xspace_id)
Postcondition
  • is_basic_query

Definition at line 2262 of file index_space_family.cc.

References collection(), contains(), has_product_structure(), sheaf::index_space_collection::local_scope(), and sheaf::index_space_collection::product_structure().

◆ product_structure() [5/8]

template<typename T >
const T & sheaf::index_space_family::product_structure ( const std::string &  xname) const

The product structure of type T for the id space with name xname (const version).

Precondition
  • contains(xname)
  • has_product_structure(xname)
  • product_structure_conforms_to<T>(xname)
Postcondition
  • is_basic_query

Definition at line 43 of file index_space_family.impl.h.

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

◆ product_structure() [6/8]

template<typename T >
const T & sheaf::index_space_family::product_structure ( pod_type  xspace_id) const

The product structure of type T for the id space with id xspace_id (const version).

Precondition
  • contains(xspace_id)
  • has_product_structure(xspace_id)
  • product_structure_conforms_to<T>(xspace_id)
Postcondition
  • is_basic_query

Definition at line 67 of file index_space_family.impl.h.

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

◆ product_structure() [7/8]

template<typename T >
T & sheaf::index_space_family::product_structure ( const std::string &  xname)

The product structure of type T for the id space with name xname (mutable version).

Precondition
  • contains(xname)
  • has_product_structure(xname)
  • product_structure_conforms_to<T>(xname)
Postcondition
  • is_basic_query

Definition at line 91 of file index_space_family.impl.h.

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

◆ product_structure() [8/8]

template<typename T >
T & sheaf::index_space_family::product_structure ( pod_type  xspace_id)

The product structure of type T for the id space with id xspace_id (mutable version).

Precondition
  • contains(xspace_id)
  • has_product_structure(xspace_id)
  • product_structure_conforms_to<T>(xspace_id)
Postcondition
  • is_basic_query

Definition at line 115 of file index_space_family.impl.h.

References contains(), has_product_structure(), product_structure(), and product_structure_conforms_to().

◆ product_structure_conforms_to() [1/2]

template<typename T >
bool sheaf::index_space_family::product_structure_conforms_to ( const std::string &  xname) const

True if the product structure for the id space with name xname conforms to type T.

Precondition
  • contains(xname)
  • has_product_structure(xname)
Postcondition
  • is_basic_query

Definition at line 139 of file index_space_family.impl.h.

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

Referenced by product_structure().

◆ product_structure_conforms_to() [2/2]

template<typename T >
bool sheaf::index_space_family::product_structure_conforms_to ( pod_type  xspace_id) const

True if the product structure for the id space with id xspace_id conforms to type T.

Precondition
  • contains(xspace_id)
  • has_product_structure(xspace_id)
Postcondition
  • is_basic_query

Definition at line 162 of file index_space_family.impl.h.

References contains(), get_id_space(), has_product_structure(), and product_structure().

◆ put_name()

void sheaf::index_space_family::put_name ( pod_type  xid,
const std::string &  xname 
)

Associate name xname with id space index xid.

Precondition
  • contains(xid)
  • !contains(xname)
Postcondition
  • contains(xname)

Definition at line 143 of file index_space_family.cc.

References _name_to_index, contains(), and sheaf::name_multimap::put_entry().

Referenced by index(), sheaf::explicit_index_space_state::new_state(), and sheaf::index_space_handle::put_name().

◆ release_id_space()

void sheaf::index_space_family::release_id_space ( index_space_handle xid_space) const

◆ release_id_space_iterator()

void sheaf::index_space_family::release_id_space_iterator ( index_space_iterator xitr) const

◆ reserve_next_explicit_id()

sheaf::index_space_family::pod_type sheaf::index_space_family::reserve_next_explicit_id ( )
protected

◆ term_of() [1/2]

const sheaf::index_space_handle & sheaf::index_space_family::term_of ( pod_type  xid) const

The term in the hub id space containing id xid.

Postcondition
  • is_basic_query

Definition at line 1062 of file index_space_family.cc.

References _hub_id_space, and sheaf::sum_index_space_handle::term_of().

Referenced by is_valid_reserved_id().

◆ term_of() [2/2]

const sheaf::index_space_handle & sheaf::index_space_family::term_of ( const scoped_index xid) const

The term in the hub id space containing id xid.

Postcondition
  • is_basic_query

Definition at line 1081 of file index_space_family.cc.

References _hub_id_space, last_term(), and sheaf::sum_index_space_handle::term_of().

◆ unglue()

void sheaf::index_space_family::unglue ( pod_type  xid)

Unglues xid; makes xid its own representative.

Precondition
  • !hub_id_space().contains_rep(xid)
Postcondition

Definition at line 2023 of file index_space_family.cc.

References _hub_id_space, contains(), hub_id_space(), invariant(), sheaf::hub_index_space_handle::unglue(), and unglue_all().

Referenced by glue().

◆ unglue_all()

void sheaf::index_space_family::unglue_all ( pod_type  xrep_id)

Unglue all ids glued to representative xrep_id; makes each id in the equivalence class of xrep_id its own representative.

Precondition
Postcondition

Definition at line 2046 of file index_space_family.cc.

References _hub_id_space, has_gluing(), hub_id_space(), invariant(), and sheaf::hub_index_space_handle::unglue_all().

Referenced by unglue().

◆ unglued_hub_pod() [1/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::unglued_hub_pod ( const std::string &  xname,
pod_type  xid 
) const

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

Precondition
  • contains(xname)
Postcondition
  • !is_valid(result) || contains_unglued_hub(xname, result)

Definition at line 1854 of file index_space_family.cc.

References _name_to_index, contains(), contains_unglued_hub(), sheaf::name_multimap::index(), and sheaf::is_valid().

Referenced by contains_glued_hub(), glued_hub_pod(), hub_pod(), sheaf::scoped_index::hub_pod(), and sheaf::scoped_index::unglued_hub_pod().

◆ unglued_hub_pod() [2/2]

sheaf::index_space_family::pod_type sheaf::index_space_family::unglued_hub_pod ( pod_type  xspace_id,
pod_type  xid 
) const

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

Precondition
  • contains(xspace_id)
Postcondition
  • !is_valid(result) || contains_unglued_hub(xspace_id, result)

Definition at line 1875 of file index_space_family.cc.

References collection(), contains(), contains_unglued_hub(), glued_hub_pod(), sheaf::index_space_collection::hub_pod(), sheaf::is_valid(), and sheaf::index_space_collection::local_scope().

◆ update_gathered_hub_id_space()

void sheaf::index_space_family::update_gathered_hub_id_space ( )

◆ update_standard_id_spaces()

void sheaf::index_space_family::update_standard_id_spaces ( )

Friends And Related Function Documentation

◆ deep_size

SHEAF_DLL_SPEC size_t deep_size ( const index_space_family xfamily,
bool  xinclude_shallow 
)
friend

The deep size of index_space_family& xn.

Referenced by sheaf::deep_size().

Member Data Documentation

◆ _end

pod_type sheaf::index_space_family::_end
protected

Ending index of the id spaces.

Definition at line 189 of file index_space_family.h.

Referenced by clear_id_spaces(), delete_interval(), end(), has_only_standard_id_spaces(), insert_interval(), and update_standard_id_spaces().

◆ _explicit_interval

explicit_index_space_interval* sheaf::index_space_family::_explicit_interval
protected

The current explicit id space interval.

Definition at line 307 of file index_space_family.h.

Referenced by reserve_next_explicit_id().

◆ _gathered_hub_id_space

interval_index_space_handle sheaf::index_space_family::_gathered_hub_id_space
protected

The gathered hub id space.

Definition at line 416 of file index_space_family.h.

◆ _hub_id_space

◆ _intervals

◆ _name_to_index

◆ _next_explicit_id

pod_type sheaf::index_space_family::_next_explicit_id
protected

The next available id for an explicit index space.

Definition at line 312 of file index_space_family.h.

Referenced by reserve_next_explicit_id().

◆ _standard_end

pod_type sheaf::index_space_family::_standard_end
protected

Ending index of the standard id spaces.

Definition at line 194 of file index_space_family.h.

Referenced by clear_id_spaces(), has_only_standard_id_spaces(), and update_standard_id_spaces().


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