21 #ifndef INTERVAL_INDEX_SPACE_STATE_H 22 #define INTERVAL_INDEX_SPACE_STATE_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/auto_block.h" 33 #include "SheafSystem/list_pool.h" 36 #ifndef SCATTERED_INSERTION_INDEX_SPACE_STATE_H 37 #include "SheafSystem/scattered_insertion_index_space_state.h" 41 #include "SheafSystem/std_map.h" 47 class interval_index_space_handle;
48 class interval_index_space_state;
49 class interval_index_space_iterator;
88 const std::string& xname,
100 const std::string& xname,
124 static void insert_map_interval(
pod_type xdomain_begin,
128 std::map<pod_type, pod_type>& xmap,
134 static pod_type map_value(
pod_type xid,
const std::map<pod_type, pod_type>& xmap);
168 void insert_interval(
pod_type xbegin,
177 void insert_interval(
pod_type xbegin,
243 bool merge_mode()
const;
248 void put_merge_mode(
bool xvalue);
287 virtual void update_extrema();
292 virtual void reserve(
size_type xcapacity);
316 void print_map_rep(std::ostream& xos)
const;
324 void map_rep_insert_interval(
pod_type xdomain_begin,
346 virtual void map_rep_push_back(
pod_type xrange_id);
371 virtual void map_rep_clear();
376 virtual void map_rep_gather();
459 virtual bool contains(
pod_type xid)
const;
464 virtual bool contains_unglued_hub(
pod_type xid)
const;
498 static size_type handle_pool_deep_size();
543 static size_type iterator_pool_deep_size();
583 virtual const std::string& class_name()
const;
597 static bool make_prototype();
612 virtual bool is_ancestor_of(
const any *other)
const;
617 virtual bool invariant()
const;
639 #endif // ifndef INTERVAL_INDEX_SPACE_STATE_H An implementation of class scattered_insertion_index_space_handle that has a interval id space state...
An STL map implementation of class scattered_insertion_index_space_state optimized to efficiently rep...
An abstract iterator over the ids of an id space.
to_range_type _to_range
The representation of the domain id to range id map.
The default name space; a poset which contains other posets as members.
to_domain_type _to_domain
The representation of the range id to domain id map.
An implementation of class explicit_index_space_state that supports either gathered or scattered inse...
interval_index_space_state(const interval_index_space_state &xother)
Copy constructor; disabled.
An abstract handle to a space of alternate integer identifiers (aliases) for a subset of a hub set of...
std::map< pod_type, pod_type > map_type
The type of the id maps.
virtual void update_extrema()=0
Update the id extrema.
Abstract base class with useful features for all objects.
An immutable abstract state for a space of alternate integer identifiers (aliases) for a subset of th...
An index within the external ("client") scope of a given id space.
SHEAF_DLL_SPEC size_t deep_size(const dof_descriptor_array &xp, bool xinclude_shallow=true)
The deep size of the referenced object of type dof_descriptor_array.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
An iterator over an id space in which the equivalence between the ids in the space and the hub id spa...
pod_type _capacity
The capacity of this map.
bool operator==(const singly_linked_list< T, Alloc > &lhs, const singly_linked_list< T, Alloc > &rhs)
Checks if the contents of lhs and rhs are equal, that is, whether lhs.size() == rhs.size() and each element in lhs compares equal with the element in rhs at the same position.
virtual bool contains(pod_type xid) const =0
True if this space contains id xid.
pod_index_type pod_type
The "plain old data" index type for this.
map_type to_range_type
The type of the domain id to range id map.
bool _merge_mode
True if and only if compatible intervals should be merged.
Namespace for the sheaves component of the sheaf system.
Factory and container for a family of id spaces.
map_type to_domain_type
The type of the range id to domain id map.
A reallocated pool of objects of type T. Objects in the pool are either allocated or stored in a free...