23 #ifndef SHEAF_DLL_SPEC_H 24 #include "SheafSystem/sheaf_dll_spec.h" 27 #ifndef STD_IOSTREAM_H 28 #include "SheafSystem/std_iostream.h" 32 #include "SheafSystem/std_string.h" 39 class namespace_poset;
40 class primitive_value;
67 poset_path(
const std::string& xposet_name,
const std::string& xmember_name);
102 poset_path& operator=(
const std::string& xpath);
128 static bool is_valid_name(
const std::string& xname);
136 static bool is_valid_path(
const std::string& xpath);
146 bool operator==(
const std::string& xother)
const;
156 std::string path()
const;
161 std::string poset_name()
const;
166 void put_poset_name(
const std::string& xname);
171 std::string member_name()
const;
176 void put_member_name(
const std::string& xname);
181 static const std::string& name_legal_characters();
186 static char delimiter();
191 static const std::string& path_legal_characters();
196 static std::string poset_name(
const std::string& xpath);
201 static std::string delimiter(
const std::string& xpath);
206 static std::string member_name(
const std::string& xpath);
211 void to_stream(std::ostream& xos = std::cout)
const;
216 static std::string make_name(
const std::string& xprefix,
int xindex,
const std::string& xsuffix);
221 static std::string make_reserved_name(
const std::string& xprefix,
const size_t& xindex,
const std::string& xsuffix);
226 static std::string block_name(
const size_t& xindex);
232 static std::string block_name(
const std::string& xneighborhood_name);
237 static std::string block_neighborhood_name(
const size_t& xindex);
243 static std::string block_neighborhood_name(
const std::string& xblock_name);
248 static size_t block_id(
const std::string& xname);
253 static std::string reserved_prefix();
258 static std::string boundary_prefix();
264 static std::string boundary_name(
const std::string& xmbr_name);
269 static std::string block_prefix();
274 static std::string neighborhood_prefix();
288 bool state_exists(
bool xauto_access)
const;
295 bool poset_exists(
bool xauto_access)
const;
302 bool member_exists(
bool xauto_access)
const;
308 bool state_is_read_accessible(
bool xauto_access)
const;
314 bool state_is_read_write_accessible(
bool xauto_access)
const;
320 bool conforms_to(
const poset_path& xother,
bool xauto_access)
const;
334 std::string _poset_name;
339 std::string _member_name;
349 static void parse_path(
const std::string& xpath,
350 std::string& xposet_name,
351 std::string& xdelimiter,
352 std::string& xmember_name);
390 #endif // ifndef POSET_PATH_H The default name space; a poset which contains other posets as members.
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
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.
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.
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.
Abstract object wrapper for an instance of a primitive type.