SheafSystem
0.0.0.0
|
A computed implementation class explicit_index_space_state that is used for the terms of the primary sum id space. More...
#include <primary_index_space_state.h>
Public Member Functions | |
virtual const std::string & | class_name () const |
The name of this class. More... | |
virtual primary_index_space_state * | clone () const |
Virtual constructor; create a new instance of the same type at this. More... | |
Public Member Functions inherited from sheaf::explicit_index_space_state | |
virtual | ~explicit_index_space_state () |
Destructor. More... | |
const index_space_collection & | host () const |
The host collection (const version). More... | |
index_space_collection & | host () |
The host collection (mutable version). More... | |
pod_type | index () const |
The index of this id space. More... | |
const index_space_family & | id_spaces () const |
The id space family for this (const version). More... | |
index_space_family & | id_spaces () |
The id space family for this (mutable version). More... | |
const hub_index_space_handle & | hub_id_space () const |
The hub id space. More... | |
size_type | ct () const |
The number of members. More... | |
bool | is_empty () const |
True if there are no ids in the space. More... | |
pod_type | begin () const |
Beginning id of this space. More... | |
pod_type | end () const |
Ending id of this space. More... | |
bool | is_gathered () const |
True if begin() == 0 and end() == ct(). More... | |
virtual bool | contains (pod_type xid) const =0 |
True if this space contains id xid. More... | |
bool | contains (const scoped_index &xid) const |
True if this space contains an id equivalent to xid. synonym for contains_hub(xid.hub_pod()). More... | |
bool | contains_hub (pod_type xid) const |
True if this space contains an id equivalent to xid in the unglued hub id space. synonym for contains_unglued_hub(xid) More... | |
virtual bool | contains_unglued_hub (pod_type xid) const =0 |
True if this space contains an id equivalent to xid in the unglued hub id space. More... | |
virtual bool | contains_glued_hub (pod_type xid) const |
True if this space contains an id equivalent to xid in the hub id space. More... | |
bool | contains (pod_type xid, const scoped_index &xhub_id) const |
True if this space contains an id xid equivalent to xhub_id in the hub id space. synonym for contains(xid, xhub_id.hub_pod()). More... | |
virtual bool | contains (pod_type xid, pod_type xhub_id) const |
True if this space contains an id xid equivalent to xhub_id in the hub id space. More... | |
virtual pod_type | pod (pod_type xid) const =0 |
The pod index in this space equivalent to xid in the unglued hub id space. More... | |
pod_type | pod (const scoped_index &xid) const |
The pod index in this space equivalent to xid. synonym for pod(xid.hub_pod()). More... | |
pod_type | hub_pod (pod_type xid) const |
The pod index in the unglued hub id space equivalent to xid in this id space. synonym for unglued_hub_pod(xid). More... | |
virtual pod_type | unglued_hub_pod (pod_type xid) const =0 |
The pod index in the unglued hub id space equivalent to xid in this id space. More... | |
virtual pod_type | glued_hub_pod (pod_type xid) const |
The pod index in the glued hub id space equivalent to xid in this id space. More... | |
bool | is_persistent () const |
True if this id space should be written to disk. More... | |
virtual void | new_product_structure (const abstract_product_structure &xproduct) |
Creates a new product structure for this id space by cloning the product structure, xproduct. More... | |
virtual void | delete_product_structure () |
Deletes the product structure for this id space. More... | |
const abstract_product_structure & | product_structure () const |
The product structure for this id space (const version). More... | |
abstract_product_structure & | product_structure () |
The product structure for this id space (mutable version). More... | |
bool | has_product_structure () const |
True if this id space has a product structure. 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... | |
Friends | |
class | namespace_poset |
class | primary_index_space_handle |
SPACE FACTORY FACET | |
static primary_index_space_handle | new_space (index_space_family &xid_spaces, const std::string &xname, pod_type xoffset, size_type xct) |
Create a new primary id space in the id space family xid_space at the next available id space index with name xname, ooffset xoffset and count xct. Returns a handle to the id space created. More... | |
static primary_index_space_handle | new_space (index_space_family &xid_spaces, pod_type xid, const std::string &xname, pod_type xoffset, size_type xct) |
Create a new primary id space in the id space family xid_space at the id space index xid with name xname, offset xoffset and count xct. Returns a handle to the id space created. More... | |
PRIMARY_INDEX_SPACE_STATE FACET | |
primary_index_space_state () | |
Default constructor. More... | |
primary_index_space_state (const primary_index_space_state &xother) | |
Copy constructor; disabled. More... | |
virtual | ~primary_index_space_state () |
Destructor. More... | |
PRIMARY INDEX SPACE FACET | |
pod_type | _offset |
The offset into the hub id space. More... | |
pod_type | _hub_term_id |
The term id of this in the hub id space. More... | |
void | put_hub_term_id (pod_type xhub_term_id) |
Sets hub_term_id() to xhub_term_id. More... | |
pod_type | offset () const |
The offset into the hub id space. More... | |
virtual void | extend (size_type xct) |
Extend this id space to have ct() == xct. More... | |
pod_type | hub_term_id () const |
The term id of this in the hub id space. More... | |
EXPLICIT_INDEX_SPACE_STATE FACET | |
virtual primary_index_space_state & | operator= (const explicit_index_space_state &xother) |
Assignment operator. More... | |
virtual bool | operator== (const explicit_index_space_state &xother) const |
True if this is equivalent to xother. More... | |
virtual size_type | deep_size (bool xinclude_shallow) const |
The deep size of this. More... | |
INDEX SPACE FACET | |
virtual bool | contains (pod_type xid) const |
True if this space contains id xid. More... | |
virtual bool | contains_unglued_hub (pod_type xid) const |
True if this space contains an id equivalent to xid in the unglued hub id space. More... | |
virtual pod_type | pod (pod_type xid) const |
The pod index in this space equivalent to xid in the hub id space. More... | |
virtual pod_type | unglued_hub_pod (pod_type xid) const |
The pod index in the unglued hub id space equivalent to xid in this id space. More... | |
HANDLE POOL FACET | |
| |
static size_type | handle_pool_ct () |
The number of handles in the pool. More... | |
static size_type | handle_pool_deep_size () |
The deep size of the handle pool. More... | |
virtual index_space_handle & | get_id_space () const |
Allocates an id space handle from the handle pool. More... | |
virtual void | release_id_space (index_space_handle &xid_space) const |
Returns the id space handle xid_space to the handle pool. More... | |
virtual 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 ACET | |
static size_type | iterator_pool_ct () |
The number of iterators in the pool. More... | |
static size_type | iterator_pool_deep_size () |
The deep size of the iterator pool. More... | |
virtual index_space_iterator & | get_iterator () const |
Allocates an id space iterator from the iterator pool. More... | |
virtual void | release_iterator (index_space_iterator &xitr) const |
Returns the id space iterator xitr to the iterator pool. More... | |
virtual bool | allocated_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 Types inherited from sheaf::explicit_index_space_state | |
typedef pod_index_type | pod_type |
The "plain old data" index type for this. More... | |
Static Public Member Functions inherited from sheaf::explicit_index_space_state | |
static factory< explicit_index_space_state > & | id_space_factory () |
A factory for making descendants of this class. More... | |
Protected Member Functions inherited from sheaf::explicit_index_space_state | |
explicit_index_space_state () | |
Default constructor. More... | |
explicit_index_space_state (const explicit_index_space_state &xother) | |
Copy constructor; disabled. More... | |
void | new_state (index_space_family &xid_spaces, const std::string &xname, bool xis_persistent) |
Create a new id space state in the id space family xid_spaces at the next available id space index with name xname, and persistence xis_persistent. More... | |
void | new_state (index_space_family &xid_spaces, pod_type xid, const std::string &xname, bool xis_persistent) |
Create a new id space state in the id space family xid_spaces at the id space index xid with name xname, and persistence xis_persistent. More... | |
void | invalidate_extrema () |
Invalidate the extrema. More... | |
void | attach (explicit_index_space_handle &xid_space) const |
Attach the id space handle xid_space to this state. More... | |
void | attach (explicit_index_space_iterator &xitr) const |
Attach the id space iterator xitr to this state. More... | |
Protected Member Functions inherited from sheaf::any | |
any () | |
default constructor More... | |
Protected Attributes inherited from sheaf::explicit_index_space_state | |
index_space_collection * | _host |
The host collection. More... | |
pod_type | _index |
The index of this id space. More... | |
size_type | _ct |
The number of members. More... | |
pod_type | _begin |
Beginning id of this space. More... | |
pod_type | _end |
Ending id of this space. More... | |
bool | _is_persistent |
True if this id space should be written to disk. More... | |
abstract_product_structure * | _product |
The product structure for this id space. More... | |
A computed implementation class explicit_index_space_state that is used for the terms of the primary sum id space.
This representation assumes the ids are an open gathered set of ids. The equivalence between the ids in this space and the hub id space is computed using an offset.
Definition at line 50 of file primary_index_space_state.h.
|
protected |
Default constructor.
Definition at line 141 of file primary_index_space_state.cc.
References sheaf::explicit_index_space_state::_begin, sheaf::explicit_index_space_state::_ct, sheaf::explicit_index_space_state::_end, sheaf::explicit_index_space_state::begin(), sheaf::explicit_index_space_state::end(), invariant(), sheaf::explicit_index_space_state::is_empty(), offset(), and ~primary_index_space_state().
Referenced by clone(), and new_space().
|
inlineprotected |
Copy constructor; disabled.
Definition at line 108 of file primary_index_space_state.h.
|
protectedvirtual |
Destructor.
Definition at line 168 of file primary_index_space_state.cc.
References offset().
Referenced by primary_index_space_state().
|
virtual |
True if and only if id space handle xid_space was allocated by the handle pool.
Implements sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 542 of file primary_index_space_state.cc.
References iterator_pool_ct().
Referenced by release_id_space().
|
virtual |
True if and only if id space iterator xitr was allocated by the iterator pool.
Implements sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 679 of file primary_index_space_state.cc.
References class_name().
Referenced by release_iterator().
|
virtual |
The name of this class.
Reimplemented from sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 731 of file primary_index_space_state.cc.
References clone().
Referenced by allocated_iterator().
|
virtual |
Virtual constructor; create a new instance of the same type at this.
Implements sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 739 of file primary_index_space_state.cc.
References sheaf::explicit_index_space_state::id_space_factory(), is_ancestor_of(), sheaf::any::is_same_type(), and primary_index_space_state().
Referenced by class_name().
|
virtual |
True if this space contains id xid.
Definition at line 369 of file primary_index_space_state.cc.
References sheaf::explicit_index_space_state::_end, and contains_unglued_hub().
Referenced by operator=(), pod(), and unglued_hub_pod().
|
virtual |
True if this space contains an id equivalent to xid in the unglued hub id space.
Definition at line 388 of file primary_index_space_state.cc.
References sheaf::explicit_index_space_state::_end, _offset, and pod().
Referenced by contains(), and unglued_hub_pod().
|
virtual |
The deep size of this.
Reimplemented from sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 311 of file primary_index_space_state.cc.
References sheaf::deep_size(), and operator=().
Referenced by sheaf::deep_size(), and operator==().
|
virtual |
Extend this id space to have ct() == xct.
Definition at line 213 of file primary_index_space_state.cc.
References sheaf::explicit_index_space_state::_ct, sheaf::explicit_index_space_state::_end, sheaf::explicit_index_space_state::ct(), sheaf::explicit_index_space_state::end(), sheaf::explicit_index_space_state::hub_id_space(), hub_term_id(), and invariant().
Referenced by sheaf::primary_index_space_handle::extend(), and offset().
|
virtual |
Allocates an id space handle from the handle pool.
Implements sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 495 of file primary_index_space_state.cc.
References sheaf::explicit_index_space_state::attach(), sheaf::explicit_index_space_handle::is_attached(), and release_id_space().
Referenced by handle_pool_deep_size().
|
virtual |
Allocates an id space iterator from the iterator pool.
Implements sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 632 of file primary_index_space_state.cc.
References sheaf::explicit_index_space_state::attach(), sheaf::explicit_index_space_iterator::is_attached(), and release_iterator().
Referenced by iterator_pool_deep_size().
|
static |
The number of handles in the pool.
Definition at line 457 of file primary_index_space_state.cc.
References handle_pool_deep_size().
Referenced by unglued_hub_pod().
|
static |
The deep size of the handle pool.
Definition at line 476 of file primary_index_space_state.cc.
References sheaf::deep_size(), and get_id_space().
Referenced by handle_pool_ct().
sheaf::primary_index_space_state::pod_type sheaf::primary_index_space_state::hub_term_id | ( | ) | const |
The term id of this in the hub id space.
Definition at line 237 of file primary_index_space_state.cc.
References _hub_term_id, and put_hub_term_id().
Referenced by extend(), sheaf::primary_index_space_handle::hub_term_id(), and put_hub_term_id().
|
virtual |
Class invariant.
Reimplemented from sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 810 of file primary_index_space_state.cc.
References sheaf::deep_size(), sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), sheaf::explicit_index_space_state::invariant(), sheaf::any::invariant_check(), and sheaf::explicit_index_space_state::is_gathered().
Referenced by extend(), sheaf::reserved_primary_index_space_state::invariant(), is_ancestor_of(), operator=(), and primary_index_space_state().
|
virtual |
Conformance test; true if other conforms to this.
Reimplemented from sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 789 of file primary_index_space_state.cc.
References invariant().
Referenced by clone(), operator=(), and operator==().
|
static |
The number of iterators in the pool.
Definition at line 594 of file primary_index_space_state.cc.
References iterator_pool_deep_size().
Referenced by allocated_id_space().
|
static |
The deep size of the iterator pool.
Definition at line 613 of file primary_index_space_state.cc.
References sheaf::deep_size(), and get_iterator().
Referenced by iterator_pool_ct().
|
static |
Create a new primary id space in the id space family xid_space at the next available id space index with name xname, ooffset xoffset and count xct. Returns a handle to the id space created.
Definition at line 37 of file primary_index_space_state.cc.
References sheaf::explicit_index_space_state::_begin, sheaf::explicit_index_space_state::_ct, sheaf::explicit_index_space_state::_end, _offset, sheaf::primary_index_space_handle::conforms_to_state(), sheaf::index_space_family::contains(), sheaf::explicit_index_space_handle::ct(), sheaf::explicit_index_space_handle::id_spaces(), sheaf::explicit_index_space_handle::index(), sheaf::index_space_family::is_explicit_interval(), sheaf::index_space_handle::is_gathered(), sheaf::explicit_index_space_handle::is_persistent(), sheaf::index_space_handle::name(), sheaf::explicit_index_space_state::new_state(), sheaf::primary_index_space_handle::offset(), and primary_index_space_state().
Referenced by sheaf::primary_sum_index_space_state::new_primary_term().
|
static |
Create a new primary id space in the id space family xid_space at the id space index xid with name xname, offset xoffset and count xct. Returns a handle to the id space created.
sheaf::primary_index_space_state::pod_type sheaf::primary_index_space_state::offset | ( | ) | const |
The offset into the hub id space.
Definition at line 194 of file primary_index_space_state.cc.
References _offset, and extend().
Referenced by sheaf::reserved_primary_index_space_iterator::attach_to(), sheaf::primary_index_space_handle::offset(), primary_index_space_state(), and ~primary_index_space_state().
|
protectedvirtual |
Assignment operator.
Reimplemented from sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 332 of file primary_index_space_state.cc.
References _hub_term_id, _offset, contains(), invariant(), and is_ancestor_of().
Referenced by deep_size().
|
virtual |
True if this is equivalent to xother.
Reimplemented from sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 286 of file primary_index_space_state.cc.
References _hub_term_id, _offset, deep_size(), is_ancestor_of(), and sheaf::explicit_index_space_state::operator==().
Referenced by sheaf::reserved_primary_index_space_state::operator==(), and put_hub_term_id().
|
virtual |
The pod index in this space equivalent to xid in the hub id space.
Definition at line 407 of file primary_index_space_state.cc.
References _offset, contains(), sheaf::explicit_index_space_state::contains_hub(), sheaf::invalid_pod_index(), sheaf::is_valid(), and unglued_hub_pod().
Referenced by contains_unglued_hub().
|
protected |
Sets hub_term_id() to xhub_term_id.
Definition at line 258 of file primary_index_space_state.cc.
References _hub_term_id, hub_term_id(), and operator==().
Referenced by hub_term_id(), and sheaf::primary_index_space_handle::put_hub_term_id().
|
virtual |
Returns the id space handle xid_space to the handle pool.
Implements sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 515 of file primary_index_space_state.cc.
References allocated_id_space(), and sheaf::index_space_handle::detach().
Referenced by get_id_space().
|
virtual |
Returns the id space iterator xitr to the iterator pool.
Implements sheaf::explicit_index_space_state.
Reimplemented in sheaf::reserved_primary_index_space_state.
Definition at line 652 of file primary_index_space_state.cc.
References allocated_iterator(), and sheaf::index_space_iterator::detach().
Referenced by get_iterator().
|
virtual |
The pod index in the unglued hub id space equivalent to xid in this id space.
Definition at line 427 of file primary_index_space_state.cc.
References _offset, contains(), contains_unglued_hub(), handle_pool_ct(), sheaf::invalid_pod_index(), and sheaf::is_valid().
Referenced by pod().
|
protected |
The term id of this in the hub id space.
Definition at line 157 of file primary_index_space_state.h.
Referenced by hub_term_id(), operator=(), operator==(), and put_hub_term_id().
|
protected |
The offset into the hub id space.
Definition at line 152 of file primary_index_space_state.h.
Referenced by contains_unglued_hub(), sheaf::reserved_primary_index_space_state::is_hub_id_available(), sheaf::reserved_primary_index_space_state::is_next_id_available(), sheaf::reserved_primary_index_space_state::new_space(), new_space(), offset(), operator=(), operator==(), pod(), and unglued_hub_pod().