21 #include "SheafSystem/index_equivalence_class.h" 23 #include "SheafSystem/assert_contract.h" 24 #include "SheafSystem/hub_index_space_handle.h" 25 #include "SheafSystem/index_space_family_iterator.h" 26 #include "SheafSystem/index_space_family.h" 27 #include "SheafSystem/index_space_iterator.h" 29 #include "SheafSystem/block.impl.h" 39 bool xonly_persistent,
68 litem.first = lid_itr.
index();
83 litem.second = lid_itr.
pod();
146 list_type::const_iterator litr;
147 for(litr = lother_list.begin(); litr != lother_list.end(); ++litr)
236 ensure(is_basic_query);
262 bool result = (xitem1.first < xitem2.first);
index_equivalence_class & operator=(const index_equivalence_class &xother)
Assignment operator.
bool contains_rep_id(pod_index_type xrep_id) const
True if this class contains the representive id, xrep_id.
void release_id_space_iterator(index_space_iterator &xitr) const
Returns the id space iterator xitr to the iterator pool.
index_type ub() const
The upper bound on the storage array. The number of items current allocated in the storage array...
virtual pod_type index() const
Index of this space.
size_type ct() const
The number of items currently in use.
An abstract iterator over the ids of an id space.
pod_index_type pod_type
The "plain old data" index type for this.
pod_type pod() const
The current id in the iteration.
void reserve(index_type xub)
Makes ub() at least xub; if new storage is allocated, it is uninitialized.
size_type equivalence_ct(pod_index_type xrep_id) const
The number of ids in the equivalence list for the representive id, xrep_id.
virtual ~index_equivalence_class()
Destructor.
virtual void next()=0
Makes id() the next id in the iteration.
std::pair< pod_type, pod_type > member_type
The member type for the equivalence id list. The first value in the pair is the index of the id space...
An implementation of class sum_index_space_handle that has a primary sum id space state...
An abstract iterator over the id spaces of a interval.
block< list_type > _equivalence_lists
The block of equivalence id lists for a given representive id.
static bool id_space_less_than(const member_type &xitem1, const member_type &xitem2)
True if the id space of xitem1 is less than the id space of xitem2.
void push_back(const_reference_type item)
Insert item at the end of the items in the auto_block.
bool is_done() const
True if iteration is finished.
void set_ct(size_type xct)
Sets ct() == xct.
An index within the external ("client") scope of a given id space.
bool only_persistent() const
True if only the persistent id spaces are iterated over.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
virtual pod_type index() const =0
Index of this space.
std::list< member_type > list_type
The equivalence id list type for this.
pod_type index() const
The index of the current id space in the iteration.
const list_type & equivalence_list(pod_index_type xrep_id) const
The equivalence list for the representive id, xrep_id.
void next()
Makes id_space() the next id space in the iteration.
index_equivalence_class()
Default constructor; disabled.
index_space_iterator & get_id_space_iterator() const
Allocates an id space iterator from the iterator pool attached to the current id space state...
Data structure containing the id equivalence class for ab id space family. This class is used as a te...
int_type pod_index_type
The plain old data index type.
virtual pod_type end() const
Ending id of this space.
Factory and container for a family of id spaces.
bool is_done() const
True if iteration is finished.
SHEAF_DLL_SPEC bool is_valid(pod_index_type xpod_index)
True if an only if xpod_index is valid.
const hub_index_space_handle & hub_id_space() const
The hub id space of this family.
virtual bool contains(pod_type xid) const
True if this space contains id xid.
pod_type hub_pod() const
The current unglued hub id in the iteration. synonym for unglued_hub_pod().
pod_type hub_pod() const
The pod value of this mapped to the unglued hub id space.