21 #ifndef POSET_CRG_STATE_H 22 #define POSET_CRG_STATE_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/any.h" 32 #ifndef INDEX_SPACE_FAMILY_H 33 #include "SheafSystem/index_space_family.h" 36 #ifndef NAME_MULTIMAP_H 37 #include "SheafSystem/name_multimap.h" 41 #include "SheafSystem/pool.h" 44 #ifndef SCOPED_INDEX_H 45 #include "SheafSystem/scoped_index.h" 48 #ifndef STD_UNORDERED_MAP_H 49 #include "SheafSystem/std_unordered_map.h" 53 #include "SheafSystem/std_set.h" 57 #include "SheafSystem/std_string.h" 61 #include "SheafSystem/zn_to_bool.h" 67 class scattered_insertion_index_space_handle;
68 class index_space_family;
70 class implicit_crg_interval;
71 class index_space_handle;
72 class poset_crg_state;
73 SHEAF_DLL_SPEC
size_t deep_size(
const poset_crg_state& xp,
bool xinclude_shallow,
size_t xresults[2]);
147 const std::string& xinterval_type,
182 void put_standard_member_ct(
size_type xct);
243 void initialize_member_covers(
pod_index_type xid,
bool xstandard_member_hack =
false);
309 void update_gathered_hub_id_space();
319 bool has_gathered_hub_id_space()
const;
324 bool gathered_hub_id_space_excludes_bottom()
const;
353 member_name_map_type& member_name_map();
358 const member_name_map_type& member_name_map()
const;
367 member_name_map_type _member_name_map;
382 bool jim_edit_mode()
const;
387 void request_jim_edit_mode();
392 void release_jim_edit_mode();
397 int jim_edit_depth()
const;
422 bool cover_is_explicit(
bool xlower,
pod_index_type xmbr_index)
const;
429 bool cover_is_implicit(
bool xlower,
pod_index_type xmbr_index)
const;
448 template <
typename handle_type>
449 handle_type& get_cover_id_space(
bool xlower,
pod_index_type xmbr_index)
const;
455 template<
typename handle_type>
456 bool cover_id_space_handle_conforms_to(
bool xlower,
pod_index_type xmbr_index)
const;
482 bool cover_contains_iterator(
bool xlower,
493 bool cover_is_empty(
bool xlower,
pod_index_type xmbr_index)
const;
502 bool cover_is_singleton(
bool xlower,
pod_index_type xmbr_index)
const;
519 bool cover_contains_member(
bool xlower,
532 bool cover_is_equal(
bool xlower,
596 template <
typename filter_type>
597 void remove_cover_members(
const filter_type& xfilter,
627 void copy_cover(
bool xlower,
650 bool xinitialize =
true);
657 typedef unordered::unordered_map<pod_index_type, pod_index_type> explicit_dof_tuple_map_type;
662 explicit_dof_tuple_map_type _explicit_dof_tuple_map;
667 typedef std::map<pod_index_type, crg_interval*> interval_map_type;
672 interval_map_type _interval_map;
720 std::set<pod_index_type>& result)
const;
728 std::set<pod_index_type>& result)
const;
745 virtual bool is_ancestor_of(
const any* other)
const;
755 virtual bool invariant()
const;
784 #endif // ifndef POSET_CRG_STATE_H The data structure representing the cover relation graph of a poset.
The private state of a partially ordered set.
An abstract iterator over the ids of an id space.
standard_member_index
Ids for standard poset members.
A client handle for a general, abstract partially order set.
name_multimap member_name_map_type
The type of the member_name_map.
A partial multi-valued relation with total injective inverse between names and indices of type index_...
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...
Abstract implementation of crg_interval for an interval of implicit cover relation graph members...
Abstract base class with useful features for all objects.
A record_set containing records of type member_record.
Abstract emulator for an interval of cover relation graph members.
Struct representing the closed interval [_begin, _end].
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.
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.
Factory and container for a family of id spaces.