21 #ifndef INDEX_SPACE_COLLECTION_H 22 #define INDEX_SPACE_COLLECTION_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/any.h" 33 #include "SheafSystem/pod_types.h" 39 class abstract_product_structure;
40 class explicit_index_space_state;
41 class hub_index_space_handle;
42 class index_space_family;
43 class index_space_handle;
44 class index_space_iterator;
84 virtual bool contains(pod_type xlocal_id)
const = 0;
89 virtual bool contains_family(pod_type xspace_id)
const = 0;
94 virtual pod_type local_scope(pod_type xspace_id)
const = 0;
99 virtual pod_type family_scope(pod_type xlocal_id)
const = 0;
159 virtual void remove(pod_type xlocal_id) = 0;
164 virtual size_type ct(pod_type xlocal_id)
const = 0;
169 bool is_empty(pod_type xlocal_id)
const;
174 virtual pod_type begin(pod_type xlocal_id)
const = 0;
179 virtual pod_type end(pod_type xlocal_id)
const = 0;
184 bool is_gathered(pod_type xlocal_id)
const;
189 virtual bool contains(pod_type xlocal_id, pod_type xid)
const = 0;
195 bool contains(pod_type xlocal_id,
const scoped_index& xid)
const;
202 bool contains_hub(pod_type xlocal_id, pod_type xid)
const;
208 virtual bool contains_unglued_hub(pod_type xlocal_id, pod_type xid)
const = 0;
214 bool contains_glued_hub(pod_type xlocal_id, pod_type xid)
const;
221 bool contains(pod_type xlocal_id, pod_type xid,
const scoped_index& xhub_id)
const;
227 virtual bool contains(pod_type xlocal_id, pod_type xid, pod_type xhub_id)
const = 0;
233 virtual pod_type pod(pod_type xlocal_id, pod_type xid)
const = 0;
239 pod_type pod(pod_type xlocal_id,
const scoped_index& xid)
const;
246 pod_type hub_pod(pod_type xlocal_id, pod_type xid)
const;
252 virtual pod_type unglued_hub_pod(pod_type xlocal_id, pod_type xid)
const = 0;
258 pod_type glued_hub_pod(pod_type xlocal_id, pod_type xid)
const;
263 virtual bool is_persistent(pod_type xlocal_id)
const = 0;
283 virtual void new_product_structure(pod_type xlocal_id,
289 virtual void delete_product_structure(pod_type xlocal_id) = 0;
304 virtual bool has_product_structure(pod_type xlocal_id)
const = 0;
385 virtual bool is_ancestor_of(
const any *other)
const;
390 virtual bool invariant()
const;
402 #endif // ifndef INDEX_SPACE_COLLECTION_H An abstract class that defines the product structure for an id space.
An abstract iterator over the ids of an id space.
index_space_collection(const index_space_collection &xother)
Copy constructor; disabled.
An abstract handle to a space of alternate integer identifiers (aliases) for a subset of a hub set of...
pod_index_type pod_type
The "plain old data" index type for this.
An implementation of class sum_index_space_handle that has a primary sum id space state...
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 implementation of class index_space_handle for an explicit_index_space_state.
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.
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.
An implementation of class index_space_iterator for an explicit_index_space_state.
int_type pod_index_type
The plain old data index type.
Namespace for the sheaves component of the sheaf system.
Factory and container for a family of id spaces.