SheafSystem  0.0.0.0
sheaf::interval_index_space_handle Class Reference

An implementation of class scattered_insertion_index_space_handle that has a interval id space state. More...

#include <interval_index_space_handle.h>

Inheritance diagram for sheaf::interval_index_space_handle:
sheaf::scattered_insertion_index_space_handle sheaf::gathered_insertion_index_space_handle sheaf::explicit_index_space_handle sheaf::index_space_handle sheaf::any

Friends

class interval_index_space_state
 

SPACE FACTORY FACET

static interval_index_space_handle new_space (index_space_family &xid_spaces, const std::string &xname, bool xis_persistent, bool xmerge_mode)
 Create a new interval id space in the id space family xid_space with name xname, persistence xis_persistent, and merge mode xmerge_mode. Returns a handle to the id space created. More...
 

INTERVAL_INDEX_SPACE_HANDLE FACET

 interval_index_space_handle ()
 Default constructor. More...
 
 interval_index_space_handle (const interval_index_space_handle &xother)
 Copy constructor. More...
 
 interval_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...
 
 interval_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...
 
interval_index_space_handleoperator= (const interval_index_space_handle &xother)
 Assignment operator; attach this handle to the state of xother. synonym for attach_to(xother). More...
 
virtual ~interval_index_space_handle ()
 Destructor. More...
 
 interval_index_space_handle (interval_index_space_state &xstate)
 Constructor: Attach to state xstate. More...
 
interval_index_space_statestate ()
 The interval id space state (mutable version). More...
 
const interval_index_space_statestate () const
 The interval id space state (const version). More...
 

INTERVAL INDEX SPACE FACET

void insert_interval (pod_type xbegin, pod_type xend, const scoped_index &xhub_begin, const scoped_index &xhub_end)
 Make the closed interval [xbegin, xend] equivalent to [xbegin.hub_pod(), xhub_end.hub_pod()]. synonym for insert_interval(xbegin, xend, xhub_begin.hub_pod(), xhub_end.hub_pod()). More...
 
void insert_interval (pod_type xbegin, pod_type xend, pod_type xhub_begin, pod_type xhub_end)
 Make the closed interval [xbegin, xend] equivalent to [xhub_begin, xhub_end]. More...
 
void push_interval (const scoped_index &xhub_begin, const scoped_index &xhub_end)
 Push the closed interval [xhub_begin.hub_pod(), xhub_end.hub_pod()] to the end of this space. synonym for push_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()). More...
 
void push_interval (pod_type xhub_begin, pod_type xhub_end)
 Push the closed interval [xhub_begin, xhub_end] to the end of this space. More...
 
size_type remove_interval (const scoped_index &xhub_begin, const scoped_index &xhub_end)
 Removes the equivalance associated with the interval [xhub_begin.hub_pod(), xhub_end.hub_pod()]. synonym for remove_hub_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()). Returns the number of entries actually removed, if any. More...
 
size_type remove_hub_interval (pod_type xhub_begin, pod_type xhub_end)
 Removes the equivalance associated with the interval [xhub_begin, xhub_end]. Returns the number of entries actually removed, if any. More...
 
size_type remove_interval (pod_type xbegin, pod_type xend)
 Removes the equivalance associated with the interval [xbegin, xend]. Returns the number of entries actually removed, if any. More...
 
pod_type interval_begin (const scoped_index &xid) const
 The beginning of the interval containing xid.hub_pod(). synonym for internval_begin(xid.hub_pod()). More...
 
pod_type interval_begin (pod_type xhub_id) const
 The beginning of the interval containing xhub_id. More...
 
pod_type interval_end (const scoped_index &xid) const
 The end of the interval containing xid.hub_pod. synonym for internval_end(xid.hub_pod()). More...
 
pod_type interval_end (pod_type xhub_id) const
 The end of the interval containing xhub_id. More...
 
bool merge_mode () const
 True if and only if compatible intervals should be merged. More...
 
void put_merge_mode (bool xvalue)
 Sets merge_mode() to xvalue. More...
 

MAP REPRESENTATION FACET

void print_map_rep (std::ostream &xos) const
 Inserts the map representation into ostream xos. More...
 

INDEX_SPACE_HANDLE FACET

virtual interval_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 interval_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...
 

HANDLE FACET

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...
 

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::scattered_insertion_index_space_handle
 scattered_insertion_index_space_handle ()
 Default constructor. More...
 
 scattered_insertion_index_space_handle (const scattered_insertion_index_space_handle &xother)
 Copy constructor. More...
 
 scattered_insertion_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...
 
 scattered_insertion_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...
 
scattered_insertion_index_space_handleoperator= (const scattered_insertion_index_space_handle &xother)
 Assignment operator; attach this handle to the state of xother. synonym for attach_to(xother). More...
 
virtual ~scattered_insertion_index_space_handle ()
 Destructor. More...
 
void insert (pod_type xid, const scoped_index &xhub_id)
 Make id xid in this id space equivalent to xhub_id in the hub id space. synonym for insert(xid, xhub_id.hub_pod()). More...
 
void insert (pod_type xid, pod_type xhub_id)
 Make id xid in this id space equivalent to xhub_id in the hub id space. More...
 
- Public Member Functions inherited from sheaf::gathered_insertion_index_space_handle
 gathered_insertion_index_space_handle ()
 Default constructor. More...
 
 gathered_insertion_index_space_handle (const gathered_insertion_index_space_handle &xother)
 Copy constructor. More...
 
 gathered_insertion_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...
 
 gathered_insertion_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...
 
gathered_insertion_index_space_handleoperator= (const gathered_insertion_index_space_handle &xother)
 Assignment operator; attach this handle to the state of xother. synonym for attach_to(xother). More...
 
virtual ~gathered_insertion_index_space_handle ()
 Destructor. More...
 
void push_back (const scoped_index &xhub_id)
 Make the next id in this space equivalent to xhub_id in the hub id space. synonym for push_back(xhub_id.hub_pod()). More...
 
void push_back (pod_type xid)
 Make the next id in this space equivalent to xhub_id in the hub id space. More...
 
void push (index_space_iterator &xitr, const scoped_index &xhub_id)
 Makes id xitr.id() in this id space equivalent to xhub_id in the hub id space. Increments all ids greater than xitr.id() if any by one. Xitr will be set to the entry with id, xitr.id()+1. synonym for push(xitr, xhub_id.pod()). More...
 
void push (index_space_iterator &xitr, pod_type xhub_id)
 Makes id xitr.id() in this id space equivalent to xhub_id in the hub id space. Increments all ids greater than xitr.id() if any by one. Xitr will be set to the entry with id, xitr.id()+1. More...
 
pod_type next_id () const
 The id inserted by the next call to push_back. More...
 
size_type remove (const scoped_index &xid, bool update_extrema)
 Removes the equivalence associated with xid.hub_pod(). synonym for remove_hub(xid.hub_pod(), xupdate_extrema). Returns the number of entries actually removed, either 0 or 1. More...
 
size_type remove (pod_type xid, bool update_extrema)
 Removes the equivalence associated with id xid. Returns the number of entries actually removed, either 0 or 1. More...
 
size_type remove_hub (pod_type xhub_id, bool update_extrema)
 Removes the equivalence associated with hub id xhub_id. Returns the number of entries actually removed, either 0 or 1. More...
 
void remove (index_space_iterator &xitr, bool update_extrema)
 Removes the equivalence associated with id xitr.pod(). Increments xitr to the next entry if any. More...
 
void gather ()
 Gathers this id space into an interval. More...
 
void update_extrema ()
 Update the id extrema. More...
 
void reserve (size_type xcapacity)
 Reserve enough memory for xcapacity number of ids. More...
 
size_type capacity () const
 The number of ids reserved in memory. More...
 
void clear ()
 Delete all ids. More...
 
void put_is_persistent (bool xis_persistent)
 Set if this id space should be written to disk. More...
 
- Public Member Functions inherited from sheaf::explicit_index_space_handle
 explicit_index_space_handle ()
 Default constructor. More...
 
 explicit_index_space_handle (const explicit_index_space_handle &xother)
 Copy constructor. More...
 
 explicit_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...
 
 explicit_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...
 
explicit_index_space_handleoperator= (const explicit_index_space_handle &xother)
 Assignment operator; attach this handle to the state of xother. synonym for attach_to(xother). More...
 
virtual ~explicit_index_space_handle ()
 Destructor. More...
 
virtual const index_space_familyid_spaces () const
 The id space family for this (const version). More...
 
virtual index_space_familyid_spaces ()
 The id space family for this (mutable version). More...
 
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...
 
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...
 
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 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...
 
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...
 
- 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...
 
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...
 
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...
 
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...
 
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...
 
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...
 
- 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::scattered_insertion_index_space_handle
scattered_insertion_index_space_statestate ()
 The mutable id space state (mutable version). More...
 
const scattered_insertion_index_space_statestate () const
 The mutable id space state (const version). More...
 
- Protected Member Functions inherited from sheaf::gathered_insertion_index_space_handle
gathered_insertion_index_space_statestate ()
 The gathered_insertion id space state (gathered_insertion version). More...
 
const gathered_insertion_index_space_statestate () const
 The gathered_insertion id space state (const version). More...
 
- Protected Member Functions inherited from sheaf::explicit_index_space_handle
explicit_index_space_statestate ()
 The explicit state (mutable version). More...
 
const explicit_index_space_statestate () const
 The explicit state (const version). More...
 
void attach_to (explicit_index_space_state *xstate)
 Attach to the explicit id space state xstate. More...
 
virtual bool conforms_to_state (explicit_index_space_state *xstate) const
 True if this conforms to the iterator type required by the explicit id space state xstate. More...
 
explicit_index_space_statestate (pod_type xindex) const
 The explicit id space state at id xindex in id space family id_spaces(). Returns null if no id space stae is available at index xindex. More...
 
explicit_index_space_statestate (const index_space_collection &xhost, pod_type xlocal_id) const
 The explicit id space state with local scope id xlocal_id in the host id space collection xhost. 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...
 
- Protected Attributes inherited from sheaf::explicit_index_space_handle
explicit_index_space_state_state
 The explicit state. More...
 

Detailed Description

An implementation of class scattered_insertion_index_space_handle that has a interval id space state.

Definition at line 41 of file interval_index_space_handle.h.

Constructor & Destructor Documentation

◆ interval_index_space_handle() [1/5]

sheaf::interval_index_space_handle::interval_index_space_handle ( )

Default constructor.

Postcondition

Definition at line 81 of file interval_index_space_handle.cc.

References invariant().

Referenced by clone(), interval_index_space_handle(), new_space(), and ~interval_index_space_handle().

◆ interval_index_space_handle() [2/5]

sheaf::interval_index_space_handle::interval_index_space_handle ( const interval_index_space_handle xother)

Copy constructor.

Postcondition
  • (*this) == xother

Definition at line 98 of file interval_index_space_handle.cc.

References interval_index_space_handle(), and invariant().

◆ interval_index_space_handle() [3/5]

sheaf::interval_index_space_handle::interval_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
  • xid_spaces.contains(xindex)
  • conforms_to_state(xid_spaces, xindex)
Postcondition

Definition at line 117 of file interval_index_space_handle.cc.

References sheaf::explicit_index_space_handle::attach_to(), conforms_to_state(), sheaf::index_space_family::contains(), sheaf::explicit_index_space_handle::id_spaces(), sheaf::explicit_index_space_handle::index(), interval_index_space_handle(), invariant(), and sheaf::explicit_index_space_handle::is_attached().

◆ interval_index_space_handle() [4/5]

sheaf::interval_index_space_handle::interval_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
  • xid_spaces.contains(xname)
  • conforms_to_state(xid_spaces, xname)
Postcondition

Definition at line 142 of file interval_index_space_handle.cc.

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

◆ ~interval_index_space_handle()

sheaf::interval_index_space_handle::~interval_index_space_handle ( )
virtual

Destructor.

Definition at line 189 of file interval_index_space_handle.cc.

References interval_index_space_handle().

Referenced by operator=().

◆ interval_index_space_handle() [5/5]

sheaf::interval_index_space_handle::interval_index_space_handle ( interval_index_space_state xstate)
protected

Constructor: Attach to state xstate.

Postcondition

Definition at line 207 of file interval_index_space_handle.cc.

References sheaf::explicit_index_space_handle::attach_to(), invariant(), sheaf::explicit_index_space_handle::is_attached(), and state().

Member Function Documentation

◆ clone()

sheaf::interval_index_space_handle * sheaf::interval_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

Reimplemented from sheaf::scattered_insertion_index_space_handle.

Definition at line 673 of file interval_index_space_handle.cc.

References conforms_to_state(), interval_index_space_handle(), and sheaf::any::is_same_type().

Referenced by operator=().

◆ conforms_to_state()

bool sheaf::interval_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

Reimplemented from sheaf::scattered_insertion_index_space_handle.

Definition at line 705 of file interval_index_space_handle.cc.

References sheaf::index_space_collection::contains(), is_ancestor_of(), and state().

Referenced by clone(), interval_index_space_handle(), sheaf::interval_index_space_state::new_space(), and operator=().

◆ insert_interval() [1/2]

void sheaf::interval_index_space_handle::insert_interval ( pod_type  xbegin,
pod_type  xend,
const scoped_index xhub_begin,
const scoped_index xhub_end 
)

Make the closed interval [xbegin, xend] equivalent to [xbegin.hub_pod(), xhub_end.hub_pod()]. synonym for insert_interval(xbegin, xend, xhub_begin.hub_pod(), xhub_end.hub_pod()).

Precondition
  • xhub_begin.in_scope()
  • xhub_end.in_scope()
  • precondition_of(insert_interval(xbegin, xend. xhub_begin.hub_pod(), xhub_end.hub_pod()))
Postcondition
  • postcondition_of(insert_interval(xbegin, xend, xhub_begin.hub_pod(), xhub_end.hub_pod()))

Definition at line 281 of file interval_index_space_handle.cc.

References sheaf::scoped_index::hub_pod(), sheaf::scoped_index::in_scope(), and sheaf::explicit_index_space_handle::is_attached().

Referenced by sheaf::storage_agent::initialize_namespace_id_spaces_for_read(), sheaf::interval_index_space_record::internalize(), sheaf::member_record_set::make_internal_dataspace(), and state().

◆ insert_interval() [2/2]

void sheaf::interval_index_space_handle::insert_interval ( pod_type  xbegin,
pod_type  xend,
pod_type  xhub_begin,
pod_type  xhub_end 
)

Make the closed interval [xbegin, xend] equivalent to [xhub_begin, xhub_end].

Precondition
  • xhub_begin <= xhub_end
  • xbegin <= xend
  • (xhub_end - xhub_begin) == (xend - xbegin)
Postcondition
  • for( pod_type i=xhub_begin ; i<=xhub_end ; ++i ) pod(i) == xbegin+(i-xhub_begin)
  • for( pod_type i=xbegin ; i<=xend ; ++i ) hub_pod(i) == xhub_begin+(i-xbegin)

Definition at line 313 of file interval_index_space_handle.cc.

References sheaf::explicit_index_space_handle::ct(), sheaf::index_space_handle::hub_pod(), sheaf::interval_index_space_state::insert_interval(), sheaf::explicit_index_space_handle::is_attached(), sheaf::explicit_index_space_handle::pod(), push_interval(), and state().

◆ interval_begin() [1/2]

sheaf::interval_index_space_handle::pod_type sheaf::interval_index_space_handle::interval_begin ( const scoped_index xid) const

The beginning of the interval containing xid.hub_pod(). synonym for internval_begin(xid.hub_pod()).

Precondition
  • xid.in_scope()
  • precondition_of(interval_begin(xid.hub_pod()))
Postcondition
  • postcondition_of(interval_begin(xid.hub_pod()))

Definition at line 469 of file interval_index_space_handle.cc.

References sheaf::scoped_index::hub_pod(), sheaf::scoped_index::in_scope(), and sheaf::explicit_index_space_handle::is_attached().

Referenced by sheaf::member_record_set::internalize(), and remove_interval().

◆ interval_begin() [2/2]

sheaf::interval_index_space_handle::pod_type sheaf::interval_index_space_handle::interval_begin ( pod_type  xhub_id) const

The beginning of the interval containing xhub_id.

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

Definition at line 492 of file interval_index_space_handle.cc.

References sheaf::index_space_handle::contains_hub(), sheaf::interval_index_space_state::interval_begin(), interval_end(), sheaf::explicit_index_space_handle::is_attached(), sheaf::is_valid(), and state().

◆ interval_end() [1/2]

sheaf::interval_index_space_handle::pod_type sheaf::interval_index_space_handle::interval_end ( const scoped_index xid) const

The end of the interval containing xid.hub_pod. synonym for internval_end(xid.hub_pod()).

Precondition
  • xid.in_scope()
  • precondition_of(interval_end(xid.hub_pod()))
Postcondition
  • postcondition_of(interval_end(xid.hub_pod()))

Definition at line 513 of file interval_index_space_handle.cc.

References sheaf::scoped_index::hub_pod(), sheaf::scoped_index::in_scope(), and sheaf::explicit_index_space_handle::is_attached().

Referenced by interval_begin().

◆ interval_end() [2/2]

sheaf::interval_index_space_handle::pod_type sheaf::interval_index_space_handle::interval_end ( pod_type  xhub_id) const

The end of the interval containing xhub_id.

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

Definition at line 536 of file interval_index_space_handle.cc.

References sheaf::index_space_handle::contains_hub(), sheaf::interval_index_space_state::interval_end(), sheaf::explicit_index_space_handle::is_attached(), sheaf::is_valid(), merge_mode(), and state().

◆ invariant()

◆ is_ancestor_of()

bool sheaf::interval_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::scattered_insertion_index_space_handle.

Definition at line 739 of file interval_index_space_handle.cc.

References invariant().

Referenced by conforms_to_state().

◆ merge_mode()

bool sheaf::interval_index_space_handle::merge_mode ( ) const

True if and only if compatible intervals should be merged.

Precondition
Postcondition
  • is_basic_query

Definition at line 557 of file interval_index_space_handle.cc.

References sheaf::explicit_index_space_handle::is_attached(), sheaf::interval_index_space_state::merge_mode(), put_merge_mode(), and state().

Referenced by interval_end(), sheaf::interval_index_space_state::new_space(), and put_merge_mode().

◆ new_space()

sheaf::interval_index_space_handle sheaf::interval_index_space_handle::new_space ( index_space_family xid_spaces,
const std::string &  xname,
bool  xis_persistent,
bool  xmerge_mode 
)
static

Create a new interval id space in the id space family xid_space with name xname, persistence xis_persistent, and merge mode xmerge_mode. Returns a handle to the id space created.

Precondition
  • !xname.empty()
  • !xid_spaces.contains(xname)
Postcondition
  • &result.id_spaces() == &xid_spaces
  • xid_spaces.contains(xname)
  • result.conforms_to_state(xname)
  • result.is_persistent() == xis_persistent
  • result.name() == xname
  • result.merge_mode() >= xmerge_mode

Definition at line 35 of file interval_index_space_handle.cc.

References sheaf::index_space_family::contains(), interval_index_space_handle(), and sheaf::interval_index_space_state::new_space().

Referenced by sheaf::poset_scaffold::initialize_dof_tuple_id_space(), sheaf::poset_scaffold::initialize_member_id_space(), sheaf::poset_scaffold::initialize_subposet_id_space(), and sheaf::member_record_set::member_record_set().

◆ operator=() [1/2]

sheaf::interval_index_space_handle & sheaf::interval_index_space_handle::operator= ( const interval_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 168 of file interval_index_space_handle.cc.

References sheaf::explicit_index_space_handle::attach_to(), conforms_to_state(), invariant(), sheaf::explicit_index_space_handle::is_attached(), and ~interval_index_space_handle().

Referenced by interval_index_space_handle(), and print_map_rep().

◆ operator=() [2/2]

sheaf::interval_index_space_handle & sheaf::interval_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::scattered_insertion_index_space_handle.

Definition at line 651 of file interval_index_space_handle.cc.

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

◆ print_map_rep()

void sheaf::interval_index_space_handle::print_map_rep ( std::ostream &  xos) const

◆ push_interval() [1/2]

void sheaf::interval_index_space_handle::push_interval ( const scoped_index xhub_begin,
const scoped_index xhub_end 
)

Push the closed interval [xhub_begin.hub_pod(), xhub_end.hub_pod()] to the end of this space. synonym for push_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()).

Precondition
  • xhub_begin.in_scope()
  • xhub_end.in_scope()
  • precondition_of(push_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()))
Postcondition
  • postcondition_of(push_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()))

Definition at line 344 of file interval_index_space_handle.cc.

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

Referenced by sheaf::poset_crg_state::append_upper_cover_of_bottom(), insert_interval(), and sheaf::primary_sum_index_space_state::update_gathered_id_space().

◆ push_interval() [2/2]

void sheaf::interval_index_space_handle::push_interval ( pod_type  xhub_begin,
pod_type  xhub_end 
)

Push the closed interval [xhub_begin, xhub_end] to the end of this space.

Precondition
  • xhub_begin <= xhub_end
Postcondition
  • ct() == old_ct + (xhub_end - xhub_begin + 1)
  • next_id() == old_next_id + (xhub_end - xhub_begin + 1)
  • for( pod_type i=xhub_begin ; i<=xhub_end ; ++i ) pod(i) == old_next_id+(i-xhub_begin)

Definition at line 369 of file interval_index_space_handle.cc.

References sheaf::explicit_index_space_handle::ct(), sheaf::gathered_insertion_index_space_handle::next_id(), sheaf::explicit_index_space_handle::pod(), sheaf::interval_index_space_state::push_interval(), remove_interval(), and state().

◆ put_merge_mode()

void sheaf::interval_index_space_handle::put_merge_mode ( bool  xvalue)

◆ remove_hub_interval()

sheaf::size_type sheaf::interval_index_space_handle::remove_hub_interval ( pod_type  xhub_begin,
pod_type  xhub_end 
)

Removes the equivalance associated with the interval [xhub_begin, xhub_end]. Returns the number of entries actually removed, if any.

Precondition
  • xhub_begin <= xhub_end
Postcondition
  • for( pod_type i=xhub_begin ; i<=xhub_end ; ++i ) !contains_hub(i)

Definition at line 425 of file interval_index_space_handle.cc.

References sheaf::index_space_handle::contains_hub(), sheaf::explicit_index_space_handle::is_attached(), sheaf::interval_index_space_state::remove_hub_interval(), remove_interval(), and state().

Referenced by remove_interval().

◆ remove_interval() [1/2]

sheaf::size_type sheaf::interval_index_space_handle::remove_interval ( const scoped_index xhub_begin,
const scoped_index xhub_end 
)

Removes the equivalance associated with the interval [xhub_begin.hub_pod(), xhub_end.hub_pod()]. synonym for remove_hub_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()). Returns the number of entries actually removed, if any.

Precondition
  • xhub_begin.in_scope()
  • xhub_end.in_scope()
  • precondition_of(remove_hub_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()))
Postcondition
  • postcondition_of(remove_hub_interval(xhub_begin.hub_pod(), xhub_end.hub_pod()))

Definition at line 397 of file interval_index_space_handle.cc.

References sheaf::scoped_index::hub_pod(), sheaf::scoped_index::in_scope(), sheaf::explicit_index_space_handle::is_attached(), and remove_hub_interval().

Referenced by push_interval(), and remove_hub_interval().

◆ remove_interval() [2/2]

sheaf::size_type sheaf::interval_index_space_handle::remove_interval ( pod_type  xbegin,
pod_type  xend 
)

Removes the equivalance associated with the interval [xbegin, xend]. Returns the number of entries actually removed, if any.

Precondition
  • xbegin <= xend
Postcondition
  • for( pod_type i=xbegin ; i<=xend ; ++i ) !contains(i)

Definition at line 447 of file interval_index_space_handle.cc.

References sheaf::explicit_index_space_handle::contains(), interval_begin(), sheaf::explicit_index_space_handle::is_attached(), sheaf::interval_index_space_state::remove_interval(), and state().

◆ state() [1/2]

sheaf::interval_index_space_state & sheaf::interval_index_space_handle::state ( )
protected

◆ state() [2/2]

const sheaf::interval_index_space_state & sheaf::interval_index_space_handle::state ( ) const
protected

The interval id space state (const version).

Precondition
Postcondition
  • is_basic_query

Definition at line 250 of file interval_index_space_handle.cc.

References insert_interval(), and sheaf::explicit_index_space_handle::is_attached().


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