11 #ifndef SEC_TUPLE_IMPL_H 12 #define SEC_TUPLE_IMPL_H 15 #include "SheafSystem/sec_tuple.h" 18 #ifndef NAMESPACE_POSET_H 19 #include "SheafSystem/namespace_poset.h" 22 #ifndef BINARY_SECTION_SPACE_SCHEMA_MEMBER_H 23 #include "SheafSystem/binary_section_space_schema_member.h" 26 #ifndef BINARY_SECTION_SPACE_SCHEMA_POSET_H 27 #include "SheafSystem/binary_section_space_schema_poset.h" 37 const std::string& xsection_suffix,
38 const std::string& xfiber_suffix)
42 require(xbase_path.
full());
43 require(xrep_path.
empty() || xrep_path.
full());
51 poset_path lstd_fiber_path(fiber_type::template standard_host_path<fiber_type>(xfiber_suffix));
52 poset_path lrep_path = !xrep_path.
empty() ? xrep_path : S::standard_rep_path();
54 std::string lposet_name(lstd_fiber_path.
poset_name());
55 lposet_name +=
"_on_";
61 lposet_name += xsection_suffix;
67 ensure(!result.
empty());
68 ensure(!result.
full());
81 const std::string& xsection_suffix,
82 const std::string& xfiber_suffix,
88 require(xbase_path.
full());
89 require(xrep_path.
empty() || xrep_path.
full());
97 poset_path lstd_path(S::template standard_host_path<S>(xbase_path, xrep_path, xsection_suffix, xfiber_suffix));
109 #endif // ifndef SEC_TUPLE_IMPL_H static poset_path standard_host_path(const poset_path &xbase_path, const poset_path &xrep_path, const std::string &xsection_suffix, const std::string &xfiber_suffix)
The standard host path for section type S with base path xbase_path, representation path xrep_path...
bool full() const
True if both poset name and member name are not empty.
A Cartesian product section space.
The default name space; a poset which contains other posets as members.
bool state_is_auto_read_accessible(bool xauto_access) const
True if the state is auto accessible for read, that is, if the state is already accessible for read o...
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
static bool standard_host_is_available(const namespace_poset &xns, const poset_path &xbase_path, const poset_path &xrep_path, const std::string &xsection_suffix, const std::string &xfiber_suffix, bool xauto_access)
True if and only if the host with path standard_host_path<S>(xbase_path, xrep_path, xsection_suffix, xfiber_suffix) does not exist in namespace xns, or if it exists, conforms to S::host_type.
bool path_is_available(const poset_path &xpath, bool xauto_access) const
True if the state referred to xpath does not exist or exists and conforms to poset type P...
std::string poset_name() const
The poset name part of the path.
A member of a Cartesian product space; a tuple of attributes (persistent version).
bool empty() const
True if both poset name and member name are empty.
std::string member_name() const
The member name part of the path.
static bool is_valid_name(const std::string &xname)
True if xname is not empty and contains only name legal characters.
Namespace for the fiber_bundles component of the sheaf system.