21 #ifndef ARRAY_INDEX_SPACE_STATE_H 22 #define ARRAY_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" 40 #ifndef STD_UNORDERED_MAP_H 41 #include "SheafSystem/std_unordered_map.h" 47 class array_index_space_handle;
48 class array_index_space_state;
49 class array_index_space_iterator;
81 const std::string& xname,
93 const std::string& xname,
159 virtual void update_extrema();
164 virtual void reserve(
size_type xcapacity);
176 virtual void update_extrema_after_remove();
194 virtual void map_rep_insert_entry(pod_type xdomain_id, pod_type xrange_id);
199 virtual void map_rep_push_back(pod_type xrange_id);
213 virtual size_type map_rep_remove_entry(pod_type xid,
bool xis_range_id);
224 virtual void map_rep_clear();
229 virtual void map_rep_gather();
295 virtual bool contains(pod_type xid)
const;
300 virtual bool contains_unglued_hub(pod_type xid)
const;
306 virtual bool contains(pod_type xid, pod_type xhub_id)
const;
311 virtual pod_type pod(pod_type xid)
const;
316 virtual pod_type unglued_hub_pod(pod_type xid)
const;
340 static size_type handle_pool_deep_size();
385 static size_type iterator_pool_deep_size();
425 virtual const std::string& class_name()
const;
439 static bool make_prototype();
454 virtual bool is_ancestor_of(
const any *other)
const;
459 virtual bool invariant()
const;
481 #endif // ifndef ARRAY_INDEX_SPACE_STATE_H unordered::unordered_map< pod_type, pod_type > to_domain_type
The type of the range id to domain id map.
An abstract iterator over the ids of an id space.
The default name space; a poset which contains other posets as members.
auto_block< pod_type, invalid_block_initialization_policy< pod_type > > to_range_type
The type of the domain id to range id map.
An implementation of class explicit_index_space_state that supports either gathered or scattered inse...
array_index_space_state(const array_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...
A contiguously allocated array of items of type T with size information and automatic resizing...
An array implementation of class scattered_insertion_index_space_state. This representation is intend...
virtual void update_extrema()=0
Update the id extrema.
to_range_type _to_range
The representation of the domain id to range id map.
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...
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.
An array implementation of class scattered_insertion_index_space_handle. This representation is inten...
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
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.
An iterator over an id space in which the equivalence between the ids in the space and the hub id spa...
Namespace for the sheaves component of the sheaf system.
Factory and container for a family of id spaces.
A reallocated pool of objects of type T. Objects in the pool are either allocated or stored in a free...
to_domain_type _to_domain
The representation of the range id to domain id map.