SheafSystem  0.0.0.0
sheaf::forwarding_index_space_handle Class Reference

An implementation of class index_space_handle for an forwarding_index_space_state. More...

#include <forwarding_index_space_handle.h>

Inheritance diagram for sheaf::forwarding_index_space_handle:
sheaf::index_space_handle sheaf::any

Friends

class forwarding_index_space_state
 

FORWARDING_INDEX_SPACE_HANDLE FACET

const index_space_collection_host
 The host collection. More...
 
pod_type _local_id
 The id of this space in the local scope of the host collection. More...
 
 forwarding_index_space_handle ()
 Default constructor. More...
 
 forwarding_index_space_handle (const forwarding_index_space_handle &xother)
 Copy constructor. More...
 
 forwarding_index_space_handle (const index_space_family &xid_spaces, pod_type xindex)
 Constructor: Attach to state with index xindex in the family xid_spaces. More...
 
 forwarding_index_space_handle (const index_space_family &xid_spaces, const std::string &xname)
 Constructor: Attach to state with name xname in the family xid_spaces. More...
 
forwarding_index_space_handleoperator= (const forwarding_index_space_handle &xother)
 Assignment operator; attach this handle to the state of xother. synonym for attach_to(xother). More...
 
virtual ~forwarding_index_space_handle ()
 Destructor. More...
 

INDEX_SPACE_HANDLE FACET

virtual forwarding_index_space_handleoperator= (const index_space_handle &xother)
 Assignment operator; attach this handle to the state of xother. synonym for attach_to(xother). More...
 
virtual forwarding_index_space_handleclone () const
 Virtual constructor, makes a new instance of the same type as this. If the handle is attached, attach to the same state. More...
 

INDEX SPACE FACET

virtual const index_space_familyid_spaces () const
 The id space family for this (const version). More...
 
virtual index_space_familyid_spaces ()
 The id space family for this (mutable version). More...
 
virtual size_type ct () const
 The number of members. More...
 
virtual pod_type begin () const
 Beginning id of this space. More...
 
virtual pod_type end () const
 Ending id of this space. More...
 
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 bool contains_glued_hub (pod_type xid) const
 True if this space contains an id equivalent to xid in the glued hub id space. 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
 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...
 
virtual pod_type glued_hub_pod (pod_type xid) const
 The pod index in the hub id space equivalent to xid in this id space. synonym for unglued_hub_pod(xid). More...
 
virtual bool is_persistent () const
 True if this id space should be written to disk. More...
 

PRODUCT STRUCTURE FACET

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...
 
virtual const abstract_product_structureproduct_structure () const
 The product structure for this id space (const version). More...
 
virtual abstract_product_structureproduct_structure ()
 The product structure for this id space (mutable version). More...
 
virtual bool has_product_structure () const
 True if this id space has a product structure. More...
 

HANDLE FACET

virtual const index_space_collectionhost () const
 The host collection. More...
 
virtual pod_type index () const
 Index of this space. More...
 
virtual bool is_attached () const
 True if this handle is attached to a state. More...
 
virtual void attach_to (pod_type xindex)
 Attach to the state with index xindex in the id space family id_spaces(). More...
 
virtual void attach_to (const index_space_collection &xhost, pod_type xlocal_id)
 Attach to the state with local scope id, xlocal_id in the host id space collection xhost. More...
 
virtual void detach ()
 Detach this handle form its state, if any. More...
 
virtual bool conforms_to_state (const index_space_collection &xhost, pod_type xlocal_id) const
 True if this conforms to the handle type required by the state with local scope id xlocal_id in the host id space collection xhost. More...
 

HANDLE POOL FACET

virtual index_space_handleget_id_space () const
 Allocates an id space handle from the handle pool. More...
 
virtual void release_id_space () const
 Returns this id space handle to the handle pool. More...
 
virtual bool allocated_id_space () const
 True if and only if this id space handle was allocated by the handle pool. More...
 

ITERATOR POOL FACET

virtual index_space_iteratorget_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::index_space_handle
typedef pod_index_type pod_type
 The "plain old data" index type for this. More...
 
- Public Member Functions inherited from sheaf::index_space_handle
virtual ~index_space_handle ()
 Destructor. More...
 
bool operator== (const index_space_handle &xother) const
 True if this is a handle has the same state as xother. More...
 
const hub_index_space_handlehub_id_space () const
 The hub id space. More...
 
bool is_empty () const
 True if there are no ids in the 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 =0
 True if this space contains an id equivalent to xid in the glued 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 =0
 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 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(pod_type). 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 =0
 The pod index in the hub id space equivalent to xid in this id space. synonym for unglued_hub_pod(xid). More...
 
template<typename T >
const T & product_structure () const
 The product structure of type T for this id space (const version). More...
 
template<typename T >
T & product_structure ()
 The product structure of type T for this id space (mutable version). More...
 
template<typename T >
bool product_structure_conforms_to () const
 True if the product structure for this id space conforms to type T. More...
 
std::string name () const
 Name of this space. More...
 
void put_name (const std::string &xname)
 Associate name xname with this id space. More...
 
void attach_to (const index_space_family &xid_spaces, pod_type xindex)
 Attach to the state with index xindex in the id space family xid_spaces. More...
 
void attach_to (const index_space_family &xid_spaces, const std::string &xname)
 Attach to the state with name xname in the id space family xid_spaces. More...
 
virtual void attach_to (pod_type xindex)=0
 Attach to the state with index xindex in the id space family id_spaces(). More...
 
void attach_to (const std::string &xname)
 Attach to the state with name xname in the id space family id_spaces(). More...
 
void attach_to (const index_space_handle &xother)
 Attach to the state of the id space xother. More...
 
bool conforms_to_state (const index_space_family &xid_spaces, pod_type xindex) const
 True if this conforms to the handle type required by the state with index xindex in the id space family, xid_spaces. More...
 
bool conforms_to_state (const index_space_family &xid_spaces, const std::string &xname) const
 True if this conforms to the handle type required by the state with name xname in the id space family, xid_spaces. More...
 
bool conforms_to_state (pod_type xid) const
 True if this conforms to the handle type required by the state with id xid. More...
 
bool conforms_to_state (const std::string &xname) const
 True if this conforms to the handle type required by the state with name xname. More...
 
bool conforms_to_state (const index_space_handle &xother) const
 True if this conforms to the handle type required by the state of xother. More...
 
virtual void attach_to (const index_space_collection &xhost, pod_type xlocal_id)=0
 Attach to the state with local scope id, xlocal_id in the host id space collection xhost. More...
 
virtual bool conforms_to_state (const index_space_collection &xhost, pod_type xlocal_id) const =0
 True if this conforms to the handle type required by the state with local scope id xlocal_id in the host id space collection xhost. More...
 
- Public Member Functions inherited from sheaf::any
bool is_same_type (const any *other) const
 True if other is the same type as this. More...
 
virtual ~any ()
 Destructor. More...
 
bool invariant_check () const
 True if invariant checking is enabled. More...
 
void enable_invariant_check () const
 Enable invariant checking. More...
 
void disable_invariant_check () const
 Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing invariant checking during multi-phase initialization. More...
 
int disable_invariance_check_request_depth () const
 Number of times disable_invariant_check has been called without matching call to enable_invariant_check. More...
 
- Protected Member Functions inherited from sheaf::index_space_handle
 index_space_handle ()
 Default constructor. More...
 
 index_space_handle (const index_space_handle &xother)
 Copy constructor; disabled. More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 

Detailed Description

An implementation of class index_space_handle for an forwarding_index_space_state.

Definition at line 41 of file forwarding_index_space_handle.h.

Constructor & Destructor Documentation

◆ forwarding_index_space_handle() [1/4]

sheaf::forwarding_index_space_handle::forwarding_index_space_handle ( )

Default constructor.

Postcondition

Definition at line 35 of file forwarding_index_space_handle.cc.

References sheaf::invalid_pod_index(), and invariant().

Referenced by clone(), and forwarding_index_space_handle().

◆ forwarding_index_space_handle() [2/4]

sheaf::forwarding_index_space_handle::forwarding_index_space_handle ( const forwarding_index_space_handle xother)

Copy constructor.

Postcondition
  • (*this) == xother

Definition at line 53 of file forwarding_index_space_handle.cc.

References forwarding_index_space_handle(), and invariant().

◆ forwarding_index_space_handle() [3/4]

sheaf::forwarding_index_space_handle::forwarding_index_space_handle ( const index_space_family xid_spaces,
pod_type  xindex 
)

Constructor: Attach to state with index xindex in the family xid_spaces.

Precondition
  • conforms_to_state(xid_spaces, xindex)
Postcondition

Definition at line 74 of file forwarding_index_space_handle.cc.

References attach_to(), conforms_to_state(), forwarding_index_space_handle(), id_spaces(), index(), invariant(), and is_attached().

◆ forwarding_index_space_handle() [4/4]

sheaf::forwarding_index_space_handle::forwarding_index_space_handle ( const index_space_family xid_spaces,
const std::string &  xname 
)

Constructor: Attach to state with name xname in the family xid_spaces.

Precondition
  • conforms_to_state(xid_spaces, xname)
Postcondition

Definition at line 98 of file forwarding_index_space_handle.cc.

References attach_to(), conforms_to_state(), id_spaces(), invariant(), is_attached(), sheaf::index_space_handle::name(), and operator=().

◆ ~forwarding_index_space_handle()

sheaf::forwarding_index_space_handle::~forwarding_index_space_handle ( )
virtual

Destructor.

Definition at line 144 of file forwarding_index_space_handle.cc.

References operator=().

Referenced by operator=().

Member Function Documentation

◆ allocated_id_space()

bool sheaf::forwarding_index_space_handle::allocated_id_space ( ) const
virtual

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

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 854 of file forwarding_index_space_handle.cc.

References _host, sheaf::index_space_collection::allocated_id_space(), get_iterator(), and is_attached().

Referenced by release_id_space().

◆ allocated_iterator()

bool sheaf::forwarding_index_space_handle::allocated_iterator ( const index_space_iterator xitr) const
virtual

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

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 929 of file forwarding_index_space_handle.cc.

References _host, sheaf::index_space_collection::allocated_id_space_iterator(), is_ancestor_of(), and is_attached().

Referenced by release_iterator().

◆ attach_to() [1/2]

void sheaf::forwarding_index_space_handle::attach_to ( pod_type  xindex)
virtual

Attach to the state with index xindex in the id space family id_spaces().

Precondition
  • conforms_to_state(xindex)
Postcondition

Definition at line 706 of file forwarding_index_space_handle.cc.

References _host, _local_id, sheaf::index_space_family::collection(), conforms_to_state(), contains(), id_spaces(), index(), is_attached(), and sheaf::index_space_collection::local_scope().

Referenced by forwarding_index_space_handle(), is_attached(), and operator=().

◆ attach_to() [2/2]

void sheaf::forwarding_index_space_handle::attach_to ( const index_space_collection xhost,
pod_type  xlocal_id 
)
virtual

Attach to the state with local scope id, xlocal_id in the host id space collection xhost.

Precondition
  • xhost.contains(xlocal_id)
  • conforms_to_state(xhost, xlocal_id)
Postcondition
  • index() == xhost.family_scope(xlocal_id)

Definition at line 734 of file forwarding_index_space_handle.cc.

References _host, _local_id, conforms_to_state(), sheaf::index_space_collection::contains(), detach(), sheaf::index_space_collection::family_scope(), host(), index(), and is_attached().

◆ begin()

sheaf::index_space_handle::pod_type sheaf::forwarding_index_space_handle::begin ( ) const
virtual

Beginning id of this space.

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 296 of file forwarding_index_space_handle.cc.

References _host, _local_id, sheaf::index_space_collection::begin(), end(), and is_attached().

Referenced by ct().

◆ clone()

sheaf::forwarding_index_space_handle * sheaf::forwarding_index_space_handle::clone ( ) const
virtual

Virtual constructor, makes a new instance of the same type as this. If the handle is attached, attach to the same state.

Postcondition
  • result != 0
  • is_same_type(result)
  • *result == *this

Implements sheaf::index_space_handle.

Definition at line 194 of file forwarding_index_space_handle.cc.

References forwarding_index_space_handle(), id_spaces(), and sheaf::any::is_same_type().

Referenced by operator=().

◆ conforms_to_state()

bool sheaf::forwarding_index_space_handle::conforms_to_state ( const index_space_collection xhost,
pod_type  xlocal_id 
) const
virtual

True if this conforms to the handle type required by the state with local scope id xlocal_id in the host id space collection xhost.

Precondition
  • xhost.contains(xlocal_id)
Postcondition
  • is_basic_query

Definition at line 778 of file forwarding_index_space_handle.cc.

References sheaf::index_space_collection::contains(), and get_id_space().

Referenced by attach_to(), detach(), forwarding_index_space_handle(), and operator=().

◆ contains() [1/2]

bool sheaf::forwarding_index_space_handle::contains ( pod_type  xid) const
virtual

True if this space contains id xid.

Precondition
Postcondition
  • is_basic_query

Definition at line 338 of file forwarding_index_space_handle.cc.

References _host, _local_id, sheaf::index_space_collection::contains(), contains_unglued_hub(), and is_attached().

Referenced by attach_to(), contains_glued_hub(), end(), glued_hub_pod(), index(), pod(), and unglued_hub_pod().

◆ contains() [2/2]

bool sheaf::forwarding_index_space_handle::contains ( pod_type  xid,
pod_type  xhub_id 
) const
virtual

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

Precondition
Postcondition
  • is_basic_query

Definition at line 401 of file forwarding_index_space_handle.cc.

References _host, _local_id, sheaf::index_space_collection::contains(), is_attached(), and pod().

◆ contains_glued_hub()

bool sheaf::forwarding_index_space_handle::contains_glued_hub ( pod_type  xid) const
virtual

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

Precondition
Postcondition
  • is_basic_query

Definition at line 380 of file forwarding_index_space_handle.cc.

References _host, _local_id, contains(), sheaf::index_space_collection::contains_glued_hub(), and is_attached().

Referenced by contains_unglued_hub().

◆ contains_unglued_hub()

bool sheaf::forwarding_index_space_handle::contains_unglued_hub ( pod_type  xid) const
virtual

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

Precondition
Postcondition
  • is_basic_query

Definition at line 359 of file forwarding_index_space_handle.cc.

References _host, _local_id, contains_glued_hub(), sheaf::index_space_collection::contains_unglued_hub(), and is_attached().

Referenced by contains().

◆ ct()

sheaf::size_type sheaf::forwarding_index_space_handle::ct ( ) const
virtual

The number of members.

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 275 of file forwarding_index_space_handle.cc.

References _host, _local_id, begin(), sheaf::index_space_collection::ct(), and is_attached().

Referenced by id_spaces().

◆ delete_product_structure()

void sheaf::forwarding_index_space_handle::delete_product_structure ( )
virtual

Deletes the product structure for this id space.

Precondition
Postcondition
  • !has_product_structure()

Implements sheaf::index_space_handle.

Definition at line 546 of file forwarding_index_space_handle.cc.

References _host, _local_id, has_product_structure(), is_attached(), and product_structure().

Referenced by new_product_structure().

◆ detach()

void sheaf::forwarding_index_space_handle::detach ( )
virtual

Detach this handle form its state, if any.

Postcondition
  • !is_attached()

Implements sheaf::index_space_handle.

Definition at line 759 of file forwarding_index_space_handle.cc.

References _local_id, conforms_to_state(), sheaf::invalid_pod_index(), and is_attached().

Referenced by attach_to().

◆ end()

sheaf::index_space_handle::pod_type sheaf::forwarding_index_space_handle::end ( ) const
virtual

Ending id of this space.

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 317 of file forwarding_index_space_handle.cc.

References _host, _local_id, contains(), sheaf::index_space_collection::end(), and is_attached().

Referenced by begin().

◆ get_id_space()

sheaf::index_space_handle & sheaf::forwarding_index_space_handle::get_id_space ( ) const
virtual

Allocates an id space handle from the handle pool.

Precondition
Postcondition
  • result.is_attached()

Implements sheaf::index_space_handle.

Definition at line 811 of file forwarding_index_space_handle.cc.

References _host, _local_id, sheaf::index_space_collection::get_id_space(), is_attached(), sheaf::index_space_handle::is_attached(), and release_id_space().

Referenced by conforms_to_state().

◆ get_iterator()

sheaf::index_space_iterator & sheaf::forwarding_index_space_handle::get_iterator ( ) const
virtual

Allocates an id space iterator from the iterator pool.

Precondition
Postcondition
  • result.is_attached()

Implements sheaf::index_space_handle.

Definition at line 886 of file forwarding_index_space_handle.cc.

References _host, _local_id, sheaf::index_space_collection::get_id_space_iterator(), sheaf::index_space_iterator::is_attached(), is_attached(), and release_iterator().

Referenced by allocated_id_space().

◆ glued_hub_pod()

sheaf::index_space_handle::pod_type sheaf::forwarding_index_space_handle::glued_hub_pod ( pod_type  xid) const
virtual

The pod index in the hub id space equivalent to xid in this id space. synonym for unglued_hub_pod(xid).

Precondition
Postcondition

Definition at line 464 of file forwarding_index_space_handle.cc.

References _host, _local_id, contains(), sheaf::index_space_collection::glued_hub_pod(), sheaf::index_space_handle::hub_id_space(), is_attached(), is_persistent(), and sheaf::is_valid().

Referenced by unglued_hub_pod().

◆ has_product_structure()

bool sheaf::forwarding_index_space_handle::has_product_structure ( ) const
virtual

True if this id space has a product structure.

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 613 of file forwarding_index_space_handle.cc.

References _host, _local_id, sheaf::index_space_collection::has_product_structure(), host(), and is_attached().

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

◆ host()

const sheaf::index_space_collection & sheaf::forwarding_index_space_handle::host ( ) const
virtual

The host collection.

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 645 of file forwarding_index_space_handle.cc.

References _host, index(), and is_attached().

Referenced by attach_to(), and has_product_structure().

◆ id_spaces() [1/2]

const sheaf::index_space_family & sheaf::forwarding_index_space_handle::id_spaces ( ) const
virtual

The id space family for this (const version).

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 228 of file forwarding_index_space_handle.cc.

References _host, sheaf::index_space_collection::id_spaces(), and is_attached().

Referenced by attach_to(), clone(), forwarding_index_space_handle(), id_spaces(), and index().

◆ id_spaces() [2/2]

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

The id space family for this (mutable version).

Precondition
Hack:
The host should be const but a mutable interface for the family is required by put_name(). Do a const cast for now and review in the future.
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 249 of file forwarding_index_space_handle.cc.

References _host, ct(), id_spaces(), and is_attached().

◆ index()

sheaf::index_space_handle::pod_type sheaf::forwarding_index_space_handle::index ( ) const
virtual

Index of this space.

Precondition
Postcondition

Implements sheaf::index_space_handle.

Definition at line 666 of file forwarding_index_space_handle.cc.

References _host, _local_id, contains(), sheaf::index_space_collection::family_scope(), id_spaces(), and is_attached().

Referenced by attach_to(), forwarding_index_space_handle(), and host().

◆ invariant()

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

◆ is_ancestor_of()

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

Conformance test; true if other conforms to this.

Precondition
  • other != 0

Reimplemented from sheaf::index_space_handle.

Definition at line 961 of file forwarding_index_space_handle.cc.

References invariant().

Referenced by allocated_iterator().

◆ is_attached()

◆ is_persistent()

bool sheaf::forwarding_index_space_handle::is_persistent ( ) const
virtual

True if this id space should be written to disk.

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 485 of file forwarding_index_space_handle.cc.

References _host, _local_id, is_attached(), sheaf::index_space_collection::is_persistent(), and new_product_structure().

Referenced by glued_hub_pod().

◆ new_product_structure()

void sheaf::forwarding_index_space_handle::new_product_structure ( const abstract_product_structure xproduct)
virtual

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

Precondition
Issue:
_host needs to const because the attach_to interface passes a const host. This is only necessary because the attach_to interface is public. The interval classes want to use this interface and we don't want to make every interval a friend. The interval calls it from get_id_space which is const.
Postcondition

Implements sheaf::index_space_handle.

Definition at line 517 of file forwarding_index_space_handle.cc.

References _host, _local_id, delete_product_structure(), has_product_structure(), and is_attached().

Referenced by is_persistent().

◆ operator=() [1/2]

sheaf::forwarding_index_space_handle & sheaf::forwarding_index_space_handle::operator= ( const forwarding_index_space_handle xother)

Assignment operator; attach this handle to the state of xother. synonym for attach_to(xother).

Precondition
  • xother.is_attached() ? conforms_to_state(xother) : true
Postcondition
  • (*this) == xother

Definition at line 123 of file forwarding_index_space_handle.cc.

References attach_to(), conforms_to_state(), invariant(), is_attached(), and ~forwarding_index_space_handle().

Referenced by forwarding_index_space_handle(), and ~forwarding_index_space_handle().

◆ operator=() [2/2]

sheaf::forwarding_index_space_handle & sheaf::forwarding_index_space_handle::operator= ( const index_space_handle xother)
virtual

Assignment operator; attach this handle to the state of xother. synonym for attach_to(xother).

Precondition
  • xother.is_attached() ? conforms_to_state(xother) : true
Postcondition
  • (*this) == xother

Reimplemented from sheaf::index_space_handle.

Definition at line 172 of file forwarding_index_space_handle.cc.

References attach_to(), clone(), conforms_to_state(), invariant(), and sheaf::index_space_handle::is_attached().

◆ pod()

sheaf::index_space_handle::pod_type sheaf::forwarding_index_space_handle::pod ( pod_type  xid) const
virtual

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

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

Definition at line 422 of file forwarding_index_space_handle.cc.

References _host, _local_id, contains(), is_attached(), sheaf::is_valid(), sheaf::index_space_collection::pod(), and unglued_hub_pod().

Referenced by contains().

◆ product_structure() [1/2]

const sheaf::abstract_product_structure & sheaf::forwarding_index_space_handle::product_structure ( ) const
virtual

The product structure for this id space (const version).

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 568 of file forwarding_index_space_handle.cc.

References _host, _local_id, has_product_structure(), is_attached(), and sheaf::index_space_collection::product_structure().

Referenced by delete_product_structure(), and product_structure().

◆ product_structure() [2/2]

sheaf::abstract_product_structure & sheaf::forwarding_index_space_handle::product_structure ( )
virtual

The product structure for this id space (mutable version).

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 590 of file forwarding_index_space_handle.cc.

References _host, _local_id, has_product_structure(), is_attached(), and product_structure().

◆ release_id_space()

void sheaf::forwarding_index_space_handle::release_id_space ( ) const
virtual

Returns this id space handle to the handle pool.

Precondition
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 832 of file forwarding_index_space_handle.cc.

References _host, allocated_id_space(), is_attached(), and sheaf::index_space_collection::release_id_space().

Referenced by get_id_space().

◆ release_iterator()

void sheaf::forwarding_index_space_handle::release_iterator ( index_space_iterator xitr) const
virtual

Returns the id space iterator xitr to the iterator pool.

Precondition
  • allocated_iterator(xitr)
Postcondition
  • is_basic_query

Implements sheaf::index_space_handle.

Definition at line 907 of file forwarding_index_space_handle.cc.

References _host, allocated_iterator(), is_attached(), and sheaf::index_space_collection::release_id_space_iterator().

Referenced by get_iterator().

◆ unglued_hub_pod()

sheaf::index_space_handle::pod_type sheaf::forwarding_index_space_handle::unglued_hub_pod ( pod_type  xid) const
virtual

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

Precondition
Postcondition

Definition at line 443 of file forwarding_index_space_handle.cc.

References _host, _local_id, contains(), glued_hub_pod(), sheaf::index_space_handle::hub_id_space(), is_attached(), sheaf::is_valid(), and sheaf::index_space_collection::unglued_hub_pod().

Referenced by pod().

Member Data Documentation

◆ _host

◆ _local_id


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