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 load_dictionary()
 Attempt to load the dictionary specified in audit_conform category.
- 
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
- 
bool strip()
 Strip removes all categories and items that are invalid according to the assigned validator. Will also add a valid audit_conform block.
- Returns
 true if the remaining datablock is 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
- 
inline bool contains(std::string_view name) const
 Return true if this datablock contains a non-empty category.
- 
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.
- 
inline std::vector<std::string> get_tag_order() const
 Get the preferred order of the categories when writing them.
- 
std::vector<std::string> get_item_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> &item_name_order)
 Write out the contents to os using the order defined in item_name_order.
- 
datablock() = default