Class datablock
Defined in File datablock.hpp
Inheritance Relationships
Base Type
public std::list< category >
Class Documentation
-
class datablock : public std::list<category>
A datablock is a list of category objects with some additional features.
Public Functions
-
datablock() = default
-
inline datablock(std::string_view name)
Construct a new datablock object with name name.
- Parameters
name – The name for the new datablock
-
inline const std::string &name() const
Return the name of this datablock.
-
inline void set_name(std::string_view name)
Set the name of this datablock to name.
- Parameters
name – The new name
-
void set_validator(const validator *v)
Set the validator object to v.
- Parameters
v – The new validator object, may be null
-
const validator *get_validator() const
Get the validator object.
- Returns
const validator* The validator or nullptr if there is none
-
bool is_valid() const
Validates the content of this datablock and all its content.
- Returns
true If the content is valid
- Returns
false If the content is not valid
-
bool validate_links() const
Validates all contained data for valid links between parents and children as defined in the validator.
- Returns
true If all links are valid
- Returns
false If all links are not valid
-
category &operator[](std::string_view name)
Return the category named name, will create a new and empty category named name if it does not exist.
- Parameters
name – The name of the category to return
- Returns
category& Reference to the named category
-
const category &operator[](std::string_view name) const
Return the const category named name, will return a reference to a static empty category if it was not found.
- Parameters
name – The name of the category to return
- Returns
category& Reference to the named category
-
category *get(std::string_view name)
Return a pointer to the category named name or nullptr if it does not exist.
- Parameters
name – The name of the category
- Returns
category* Pointer to the category found or nullptr
-
const category *get(std::string_view name) const
Return a pointer to the category named name or nullptr if it does not exist.
- Parameters
name – The name of the category
- Returns
category* Pointer to the category found or nullptr
-
std::tuple<iterator, bool> emplace(std::string_view name)
Tries to find a category with name name and will create a new one if it is not found. The result is a tuple of an iterator pointing to the category and a boolean indicating whether the category was created or not.
- Parameters
name – The name for the category
- Returns
std::tuple<iterator, bool> A tuple containing an iterator pointing at the category and a boolean indicating whether the category was newly created.
-
std::vector<std::string> get_tag_order() const
Get the preferred order of the categories when writing them.
-
void write(std::ostream &os) const
Write out the contents to os.
-
void write(std::ostream &os, const std::vector<std::string> &tag_order)
Write out the contents to os using the order defined in tag_order.
-
datablock() = default