21 #ifndef NAMESPACE_POSET_H 22 #define NAMESPACE_POSET_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 28 #ifndef POSET_STATE_HANDLE_H 29 #include "SheafSystem/poset_state_handle.h" 32 #ifndef NAMESPACE_POSET_DOF_MAP_H 33 #include "SheafSystem/namespace_poset_dof_map.h" 36 #ifndef NAMESPACE_POSET_SCHEMA_H 37 #include "SheafSystem/namespace_poset_schema.h" 40 #ifndef SCATTERED_INSERTION_INDEX_SPACE_HANDLE_H 41 #include "SheafSystem/scattered_insertion_index_space_handle.h" 44 #ifndef PRIMITIVES_POSET_H 45 #include "SheafSystem/primitives_poset.h" 48 #ifndef PRIMITIVES_POSET_SCHEMA_H 49 #include "SheafSystem/primitives_poset_schema.h" 52 #ifndef STD_IOSTREAM_H 53 #include "SheafSystem/std_iostream.h" 59 class namespace_poset_member;
129 static bool make_prototype();
166 return _primitives_schema;
174 return _primitives_schema;
204 bool contains_poset(
pod_index_type xhub_id,
bool xauto_access =
true)
const;
209 bool contains_poset(
const scoped_index& xid,
bool xauto_access =
true)
const;
215 template <
typename P>
217 bool contains_poset(
pod_index_type xhub_id,
bool xauto_access =
true)
const;
223 template <
typename P>
225 bool contains_poset(
const scoped_index&
id,
bool xauto_access =
true)
const;
230 bool contains_poset(
const poset_path& xpath,
bool xauto_access =
true)
const;
236 template <
typename P>
238 bool contains_poset(
const poset_path& xpath,
bool xauto_access =
true)
const;
252 bool xauto_access =
true)
const;
258 bool contains_poset_member(
const scoped_index& xposet_id,
260 bool xauto_access =
true)
const;
265 bool contains_poset_member(
const poset_path& xpath,
bool xauto_access =
true)
const;
271 bool contains_poset_members(
const std::string& xposet_name,
272 const std::string xmember_names[],
273 int xmember_names_ct,
274 bool xauto_access =
true)
const;
279 bool contains_poset_subposet(
const poset_path& xpath,
bool xauto_access =
true)
const;
295 template <
typename P>
297 P& member_poset(
pod_index_type xhub_id,
bool xauto_access =
true)
const;
303 template <
typename P>
305 P& member_poset(
const scoped_index& xid,
bool xauto_access =
true)
const;
317 template <
typename P>
319 P& member_poset(
const poset_path& xpath,
bool xauto_access =
true)
const;
339 void delete_poset(std::string xname,
bool xauto_access);
344 void delete_poset(
poset_path xpath,
bool xauto_access);
357 const std::string& xposet_name,
364 const std::string& xposet_name,
387 bool contains_path(
const poset_path& xpath,
bool xauto_access =
true)
const;
393 template <
typename P>
394 bool contains_path(
const poset_path& xpath,
bool xauto_access =
true)
const;
399 bool path_is_auto_read_accessible(
const poset_path& xpath,
bool xauto_access)
const;
405 template <
typename P>
406 bool path_is_auto_read_accessible(
const poset_path& xpath,
bool xauto_access)
const;
411 bool path_is_auto_read_write_accessible(
const poset_path& xpath,
bool xauto_access)
const;
417 template <
typename P>
418 bool path_is_auto_read_write_accessible(
const poset_path& xpath,
bool xauto_access)
const;
424 template <
typename P>
425 bool path_is_available(
const poset_path& xpath,
bool xauto_access)
const;
431 bool path_is_auto_read_available(
const poset_path& xpath,
bool xauto_access)
const;
437 template <
typename P>
438 bool path_is_auto_read_available(
const poset_path& xpath,
bool xauto_access)
const;
444 bool path_is_auto_read_write_available(
const poset_path& xpath,
bool xauto_access)
const;
450 template <
typename P>
451 bool path_is_auto_read_write_available(
const poset_path& xpath,
bool xauto_access)
const;
456 bool poset_state_is_read_accessible(
const poset_path& xpath,
bool xauto_access =
true)
const;
461 bool poset_state_is_read_write_accessible(
const poset_path& xpath,
bool xauto_access =
true)
const;
509 static void initialize_prototypes();
514 static void initialize_poset_prototypes();
519 static void initialize_crg_interval_prototypes();
524 static void initialize_dof_map_prototypes();
529 static void initialize_id_space_prototypes();
537 virtual void virtual_initialize_prototypes();
559 virtual const char* class_name()
const;
564 virtual void begin_jim_edit_mode(
bool xauto_access =
true);
569 virtual void end_jim_edit_mode(
bool xensure_lattice_invariant =
true,
570 bool xauto_access =
true);
575 virtual void get_read_access()
const;
583 virtual void get_read_write_access(
bool xrelease_read_only_access =
false);
589 virtual void release_access(
bool xall =
false)
const;
598 void new_state(
const std::string& xname);
603 virtual void detach_from_state();
609 virtual void attach_handle_data_members();
626 virtual std::string name()
const;
631 virtual std::string name(
bool xauto_access)
const;
636 virtual poset_path path(
bool xauto_access =
true)
const;
645 virtual void initialize_namespace(
namespace_poset& xns,
bool xauto_link =
true);
669 return _namespace_schema;
677 return _namespace_schema;
684 virtual bool row_dof_map_conforms(
const poset_dof_map* xdof_map)
const;
691 bool xrequire_write_access =
false)
const;
747 virtual void initialize_standard_members();
752 virtual void initialize_additional_members();
775 void release_member_poset_id_space(
index_space_handle& xid_space,
bool xauto_access)
const;
787 void release_member_poset_id_space_iterator(
index_space_iterator& xid_space,
bool xauto_access)
const;
794 void initialize_member_poset_id_space();
819 void put_name(
const std::string& xname);
836 void to_stream(std::ostream& xos = std::cout);
842 std::string to_string();
861 virtual bool is_ancestor_of(
const any* other)
const;
872 bool invariant()
const;
900 #endif // ifndef NAMESPACE_POSET_H The schema poset for the namespace.
const namespace_poset_schema & namespace_schema() const
The namespace poset schema within this namespace (const version)
const primitives_poset & primitives() const
The poset of primitives this namespace (const version)
An abstract iterator over the ids of an id space.
namespace_poset_schema & namespace_schema()
The namespace poset schema within this namespace (mutable version)
The default name space; a poset which contains other posets as members.
poset_type
Identifiers for poset types.
A client handle for a general, abstract partially order set.
namespace_poset & operator=(const poset_state_handle &xother)
Assignment operator; disabled.
primitives_poset & primitives()
The poset of primitives for this namespace (mutable version)
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
An abstract handle to a space of alternate integer identifiers (aliases) for a subset of a hub set of...
The general, abstract map from dof ids to dof values.
primitives_poset_schema & primitives_schema()
The schema poset for the primitives poset (mutable version)
A client handle for a member of a namespace poset.
The poset containing the primitive type definitions.
Abstract base class with useful features for all objects.
virtual void initialize_namespace(namespace_poset &xns, const std::string &xposet_name, bool xauto_link=true)
Installs this as a member of xns. If xauto_link, automatically links the member into an appropriate g...
namespace_poset(const namespace_poset &xother)
Copy constructor; disabled.
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.
The schema poset for the primitives.
namespace_poset_schema schema_type
The type of schema member for this class.
namespace_poset & operator=(const namespace_poset &xother)
Assignment operator; disabled.
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.
const primitives_poset_schema & primitives_schema() const
The schema poset for the primitives poset (const version)
A map from schema poset member ids to dof values for namespace_poset members.
void new_state(namespace_poset &xns, const poset_path &xpath, const schema_poset_member &xschema, array_poset_dof_map &xdof_map)
Creates a new poset state with schema xschema and table dof map xdof_map, attaches this to the state ...
namespace_poset_schema _namespace_schema
The schema poset for this namespace.
Agent responsible for importing and exporting posets from an external name space which resides on dis...