21 #ifndef ARRAY_INDEX_SPACE_INTERVAL_H 22 #define ARRAY_INDEX_SPACE_INTERVAL_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 28 #ifndef FORWARDING_INDEX_SPACE_HANDLE_H 29 #include "SheafSystem/forwarding_index_space_handle.h" 32 #ifndef INDEX_SPACE_INTERVAL_H 33 #include "SheafSystem/index_space_interval.h" 37 #include "SheafSystem/block.h" 41 #include "SheafSystem/list_pool.h" 44 #ifndef STD_UNORDERED_MAP_H 45 #include "SheafSystem/std_unordered_map.h" 51 class array_implicit_index_space_iterator;
52 class index_space_handle;
118 bool owns_hub_ids()
const;
176 virtual const std::string& class_name()
const;
190 static bool make_prototype();
240 virtual void remove(pod_type xlocal_id);
245 virtual size_type ct(pod_type xlocal_id)
const;
252 virtual pod_type begin(pod_type xlocal_id)
const;
259 virtual pod_type end(pod_type xlocal_id)
const;
266 virtual bool contains(pod_type xlocal_id, pod_type xid)
const;
272 virtual bool contains_unglued_hub(pod_type xlocal_id, pod_type xid)
const;
278 virtual bool contains(pod_type xlocal_id, pod_type xid, pod_type xhub_id)
const;
284 virtual pod_type pod(pod_type xlocal_id, pod_type xid)
const;
290 virtual pod_type unglued_hub_pod(pod_type xlocal_id, pod_type xid)
const;
295 virtual bool is_persistent(pod_type xlocal_id)
const;
315 virtual void new_product_structure(pod_type xlocal_id,
321 virtual void delete_product_structure(pod_type xlocal_id);
336 virtual bool has_product_structure(pod_type xlocal_id)
const;
427 virtual bool is_ancestor_of(
const any *other)
const;
432 virtual bool invariant()
const;
454 #endif // ifndef ARRAY_INDEX_SPACE_INTERVAL_H size_type _ids_per_space
The number of ids per id space.
An abstract class that defines the product structure for an id space.
An abstract iterator over the ids of an id space.
The default name space; a poset which contains other posets as members.
bool _owns_hub_ids
True if this interval is responsible for the memory management of _hub_ids.
array_index_space_interval(const array_index_space_interval &xother)
Copy constructor; disabled.
An abstract handle to a space of alternate integer identifiers (aliases) for a subset of a hub set of...
list_pool< array_implicit_index_space_iterator > _iterators
The iterator pool.
Abstract base class with useful features for all objects.
An implemenation of index_space_collection that adds an interface for the interval [begin()...
list_pool< forwarding_index_space_handle > _handles
The handle pool.
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.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
A collection of id space states. This is a virtual class with provides an interface for accessing the...
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.
Namespace for the sheaves component of the sheaf system.
pod_type end() const
Ending space id of this interval in the id space family scope.
virtual bool contains(pod_type xlocal_id) const
True if this collection contains the id space with local id xlocal_id.
Factory and container for a family of id spaces.
pod_type begin() const
Beginning space id of this interval in the id space family scope.
A reallocated pool of objects of type T. Objects in the pool are either allocated or stored in a free...
An implementation of index_space_interval for an interval of implicit id spaces in which the hub ids ...