PIP 5.9.0
Platform-Independent Primitives
Загрузка...
Поиск...
Не найдено
Класс PIValueTree

Класс PIValueTree представляет собой древовидную структуру значений PIVariant с атрибутами. Подробнее...

#include <pivaluetree.h>

Классы

struct  Attribute
 Структура Attribute содержит константы для часто используемых имен атрибутов. Подробнее...

Открытые члены

 PIValueTree ()
 Создает пустой объект PIValueTree.
 PIValueTree (const PIVariant &v)
 Создает объект PIValueTree только со значением.
 PIValueTree (const PIString &n, const PIVariant &v, const PIVariantMap &a=PIVariantMap())
 Создает объект PIValueTree с именем, значением и набором атрибутов.
bool isNull () const
 Возвращает, является ли текущий объект PIValueTree пустым.
bool isValid () const
 Возвращает, является ли текущий объект PIValueTree допустимым.
bool isArray () const
 Возвращает, является ли текущий объект PIValueTree массивом.
bool hasChildren () const
 Возвращает, имеет ли текущий объект PIValueTree дочерние элементы.
const PIString & name () const
 Возвращает имя текущего объекта PIValueTree.
void setName (const PIString &n)
 Устанавливает имя текущего объекта PIValueTree.
const PIString & comment () const
 Возвращает комментарий текущего объекта PIValueTree.
void setComment (const PIString &c)
 Устанавливает комментарий текущего объекта PIValueTree.
const PIVariant & value () const
 Возвращает значение текущего объекта PIValueTree.
void setValue (const PIVariant &v)
 Устанавливает значение текущего объекта PIValueTree.
const PIVariantMap & attributes () const
 Возвращает набор атрибутов текущего объекта PIValueTree.
PIVariantMap & attributes ()
 Возвращает ссылку на набор атрибутов текущего объекта PIValueTree.
PIVariant attribute (const PIString &an, const PIVariant &def=PIVariant()) const
 Возвращает значение атрибута для данного имени атрибута или "def", если атрибут не найден.
void setAttribute (const PIString &n, const PIVariant &a)
 Устанавливает значение атрибута для данного имени атрибута.
void mergeAttributes (const PIVariantMap &a)
 Объединяет набор атрибутов в текущий набор атрибутов объекта PIValueTree.
void applyValues (const PIValueTree &root, bool recursive=true)
 Применяет значения данного объекта PIValueTree к текущему объекту PIValueTree.
void merge (const PIValueTree &root)
 Устанавливает или добавляет значения данного объекта PIValueTree к текущему объекту PIValueTree.
const PIVector< PIValueTree > & children () const
 Возвращает дочерние элементы текущего объекта PIValueTree.
void clearChildren ()
 Очищает дочерние элементы текущего объекта PIValueTree.
PIVariant childValue (const PIString &child_name, const PIVariant &default_value=PIVariant(), bool *exists=nullptr) const
 Возвращает значение дочернего элемента с заданным именем.
PIVariant childValue (const PIStringList &child_path, const PIVariant &default_value=PIVariant(), bool *exists=nullptr) const
 Возвращает значение дочернего элемента с заданным путем.
template<typename T>
PIValueTree & readChildValue (const PIString &child_name, T &read_to)
 Читает значение дочернего элемента с заданным именем в "read_to". Возвращает ссылку на текущий объект PIValueTree.
bool contains (const PIString &name) const
 Возвращает, содержит ли текущий объект PIValueTree дочерний элемент с заданным именем.
bool contains (const PIStringList &path) const
 Возвращает, содержит ли текущий объект PIValueTree дочерний элемент с заданным путем.
int childIndex (const PIString &name) const
 Возвращает индекс дочернего узла с заданным именем или -1, если узел не найден.
const PIValueTree & child (const PIString &name) const
 Возвращает константную ссылку на дочерний узел с заданным именем или пустой узел, если его нет.
const PIValueTree & child (const PIStringList &path) const
 Возвращает константную ссылку на дочерний узел с заданным путем или пустой узел, если его нет.
PIValueTree & child (const PIString &name)
 Возвращает ссылку на дочерний узел с заданным именем или пустой узел, если его нет.
PIValueTree & child (const PIStringList &path)
 Возвращает ссылку на дочерний узел с заданным путем или пустой узел, если его нет.
PIValueTree & insertChild (int index, const PIValueTree &n)
 Вставляет узел в заданном индексе. Возвращает ссылку на текущий объект PIValueTree.
PIValueTree & addChild (const PIValueTree &n)
 Добавляет узел в конец списка дочерних элементов. Возвращает ссылку на текущий объект PIValueTree.
PIValueTree & addChildren (const PIVector< PIValueTree > &n)
 Добавляет вектор элементов в конец списка дочерних элементов. Возвращает ссылку на текущий объект PIValueTree.
PIValueTree & remove (const PIString &name)
 Удаляет дочерний элемент с заданным именем. Возвращает ссылку на текущий объект PIValueTree.
PIValueTree & operator[] (const PIString &name)
 Возвращает ссылку на дочерний узел с заданным именем, создавая его, если он не существует.
PIValueTree & operator[] (const PIStringList &path)
 Возвращает ссылку на дочерний узел с заданным путем, создавая его, если он не существует.
const PIValueTree & operator[] (const PIString &name) const
 Возвращает константную ссылку на дочерний узел с заданным именем или пустой узел, если его нет.
void forEachRecursive (std::function< void(const PIValueTree &item, const PIString &path)> func)
 Рекурсивно выполняет "func" для каждого узла. "path" - это имя с путём, соединены ".".

Открытые статические члены

static const PIStringList & standardAttributes ()
 Возвращает список стандартных имен атрибутов.

Подробное описание

Класс PIValueTree представляет собой древовидную структуру значений PIVariant с атрибутами.

Этот класс позволяет работать с иерархическими структурами данных, представленными в виде значений PIVariant. Каждый узел PIValueTree имеет имя, значение и набор именованных атрибутов. Узлы PIValueTree могут иметь дочерние узлы, что позволяет создавать древовидную структуру.

Методы

◆ mergeAttributes()

void PIValueTree::mergeAttributes ( const PIVariantMap & a)

Объединяет набор атрибутов в текущий набор атрибутов объекта PIValueTree.

Объединяет предоставленный набор атрибутов в текущие атрибуты, перезаписывая существующие атрибуты с тем же именем.

◆ applyValues()

void PIValueTree::applyValues ( const PIValueTree & root,
bool recursive = true )

Применяет значения данного объекта PIValueTree к текущему объекту PIValueTree.

Аргументы
rootОбъект PIValueTree, значения которого должны быть применены.
recursiveЕсли установлено в true, то значения будут применяться рекурсивно к дочерним узлам.

◆ merge()

void PIValueTree::merge ( const PIValueTree & root)

Устанавливает или добавляет значения данного объекта PIValueTree к текущему объекту PIValueTree.

Аргументы
rootОбъект PIValueTree, значения которого должны быть добавлены.

◆ childValue() [1/2]

PIVariant PIValueTree::childValue ( const PIString & child_name,
const PIVariant & default_value = PIVariant(),
bool * exists = nullptr ) const

Возвращает значение дочернего элемента с заданным именем.

Аргументы
child_nameИмя дочернего узла.
default_valueЗначение по умолчанию, которое будет возвращено, если дочерний узел не найден.
existsЕсли не равно нулю, будет установлено в true, если дочерний узел существует, false в противном случае.

◆ childValue() [2/2]

PIVariant PIValueTree::childValue ( const PIStringList & child_path,
const PIVariant & default_value = PIVariant(),
bool * exists = nullptr ) const

Возвращает значение дочернего элемента с заданным путем.

Аргументы
child_pathПуть дочернего узла.
default_valueЗначение по умолчанию, которое будет возвращено, если дочерний узел не найден.
existsЕсли не равно нулю, будет установлено в true, если дочерний узел существует, false в противном случае.

◆ forEachRecursive()

void PIValueTree::forEachRecursive ( std::function< void(const PIValueTree &item, const PIString &path)> func)

Рекурсивно выполняет "func" для каждого узла. "path" - это имя с путём, соединены ".".

Рекурсивно вызывает предоставленную функцию для каждого узла в дереве. Параметр path содержит полный путь к узлу, при этом имена предков соединены точками.