PIP 5.5.3
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 PIStringname () const
 Возвращает имя текущего объекта PIValueTree.
 
void setName (const PIString &n)
 Устанавливает имя текущего объекта PIValueTree.
 
const PIStringcomment () const
 Возвращает комментарий текущего объекта PIValueTree.
 
void setComment (const PIString &c)
 Устанавливает комментарий текущего объекта PIValueTree.
 
const PIVariantvalue () const
 Возвращает значение текущего объекта PIValueTree.
 
void setValue (const PIVariant &v)
 Устанавливает значение текущего объекта PIValueTree.
 
const PIVariantMapattributes () const
 Возвращает набор атрибутов текущего объекта PIValueTree.
 
PIVariantMapattributes ()
 Возвращает ссылку на набор атрибутов текущего объекта 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. Подробнее...
 
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 >
PIValueTreereadChildValue (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 PIValueTreechild (const PIString &name) const
 Возвращает константную ссылку на дочерний узел с заданным именем или пустой узел, если его нет.
 
const PIValueTreechild (const PIStringList &path) const
 Возвращает константную ссылку на дочерний узел с заданным путем или пустой узел, если его нет.
 
PIValueTreechild (const PIString &name)
 Возвращает ссылку на дочерний узел с заданным именем или пустой узел, если его нет.
 
PIValueTreechild (const PIStringList &path)
 Возвращает ссылку на дочерний узел с заданным путем или пустой узел, если его нет.
 
PIValueTreeinsertChild (int index, const PIValueTree &n)
 Вставляет узел в заданном индексе. Возвращает ссылку на текущий объект PIValueTree.
 
PIValueTreeaddChild (const PIValueTree &n)
 Добавляет узел в конец списка дочерних элементов. Возвращает ссылку на текущий объект PIValueTree.
 
PIValueTreeaddChildren (const PIVector< PIValueTree > &n)
 Добавляет вектор элементов в конец списка дочерних элементов. Возвращает ссылку на текущий объект PIValueTree.
 
PIValueTreeremove (const PIString &name)
 Удаляет дочерний элемент с заданным именем. Возвращает ссылку на текущий объект PIValueTree.
 
PIValueTreeoperator[] (const PIString &name)
 Возвращает ссылку на дочерний узел с заданным именем, создавая его, если он не существует.
 
PIValueTreeoperator[] (const PIStringList &path)
 Возвращает ссылку на дочерний узел с заданным путем, создавая его, если он не существует.
 
const PIValueTreeoperator[] (const PIString &name) const
 Возвращает константную ссылку на дочерний узел с заданным именем или пустой узел, если его нет.
 
void forEachRecursive (std::function< void(const PIValueTree &item, const PIString &path)> func)
 Рекурсивно выполняет "func" для каждого узла. "path" - это имя с путём, соединены ".".
 

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

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

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

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

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

Методы

◆ applyValues()

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

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

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

◆ 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 в противном случае.