21 #ifndef EXPLICIT_INDEX_SPACE_STATE_H 22 #define EXPLICIT_INDEX_SPACE_STATE_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/any.h" 33 #include "SheafSystem/factory.h" 37 #include "SheafSystem/pod_types.h" 43 class abstract_product_structure;
44 class explicit_index_space_handle;
45 class explicit_index_space_iterator;
46 class hub_index_space_handle;
47 class index_space_collection;
48 class index_space_family;
49 class index_space_handle;
50 class index_space_iterator;
99 pod_type index()
const;
129 const std::string& xname,
130 bool xis_persistent);
139 const std::string& xname,
140 bool xis_persistent);
187 bool is_empty()
const;
192 pod_type begin()
const;
197 pod_type end()
const;
202 bool is_gathered()
const;
207 virtual bool contains(pod_type xid)
const = 0;
219 bool contains_hub(pod_type xid)
const;
224 virtual bool contains_unglued_hub(pod_type xid)
const = 0;
229 virtual bool contains_glued_hub(pod_type xid)
const;
236 bool contains(pod_type xid,
const scoped_index& xhub_id)
const;
242 virtual bool contains(pod_type xid, pod_type xhub_id)
const;
247 virtual pod_type pod(pod_type xid)
const = 0;
259 pod_type hub_pod(pod_type xid)
const;
264 virtual pod_type unglued_hub_pod(pod_type xid)
const = 0;
269 virtual pod_type glued_hub_pod(pod_type xid)
const ;
274 bool is_persistent()
const;
281 void invalidate_extrema();
324 virtual void delete_product_structure();
339 bool has_product_structure()
const;
433 virtual const std::string& class_name()
const;
462 virtual bool is_ancestor_of(
const any *other)
const;
467 virtual bool invariant()
const;
495 #endif // ifndef EXPLICIT_INDEX_SPACE_STATE_H abstract_product_structure * _product
The product structure for this id space.
An abstract class that defines the product structure for an id space.
An abstract iterator over the ids of an id space.
explicit_index_space_state(const explicit_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...
An implementation of class sum_index_space_handle that has a primary sum id space state...
pod_type _end
Ending id of this space.
Abstract base class with useful features for all objects.
pod_type _index
The index of this id space.
An immutable abstract state for a space of alternate integer identifiers (aliases) for a subset of th...
A factory for instanting descendants of an abstract type T, given the class name of the descendant...
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...
An implementation of index_space_interval for an interval of explicit id spaces.
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.
size_type _ct
The number of members.
pod_index_type pod_type
The "plain old data" index type for this.
An implementation of class index_space_iterator for an explicit_index_space_state.
int_type pod_index_type
The plain old data index type.
SHEAF_DLL_SPEC std::ostream & operator<<(std::ostream &os, const dof_descriptor_array &p)
Insert dof_descriptor_array& p into ostream& os.
Namespace for the sheaves component of the sheaf system.
An implementation of index_space_collection for a sparse collection of explicit id spaces...
bool _is_persistent
True if this id space should be written to disk.
Factory and container for a family of id spaces.
pod_type _begin
Beginning id of this space.
index_space_collection * _host
The host collection.