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

Этот класс предоставляет ключ-значение хранение свойств. Подробнее...

#include <pipropertystorage.h>

Классы

class  Property
 Элемент PIPropertyStorage. Подробнее...

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

 PIPropertyStorage ()
 Создает пустой PIPropertyStorage.
 PIPropertyStorage (const PIVector< Property > &pl)
 Создает PIPropertyStorage со свойствами "pl".
 PIPropertyStorage (PIVector< Property > &&o)
 Создает PIPropertyStorage из другого "o".
int length () const
 Возвращает количество свойств
int size () const
 Возвращает количество свойств
bool isEmpty () const
 Возвращает нет ли свойств
bool isNotEmpty () const
 Возвращает есть ли свойства
Property & front ()
 Возвращает первое свойство
const Property & front () const
 Возвращает первое свойство как константу
Property & back ()
 Возвращает последнее свойство
const Property & back () const
 Возвращает последнее свойство как константу
void removeAt (int i)
 Удаляет свойство по индексу "i".
void clear ()
 Удаляет все свойства
PIPropertyStorage copy () const
 Возвращает копию этого PIPropertyStorage.
int propertiesCount () const
 Возвращает количество свойств
PIVector< Property > & properties ()
 Возвращает свойства как PIVector.
const PIVector< Property > & properties () const
 Возвращает свойства как константный PIVector.
bool isPropertyExists (const PIString &name) const
 Возвращает присутствует ли свойство с именем "name".
void clearProperties ()
 Удаляет все свойства
bool addProperty (const Property &p)
 Добавляет новое свойство, если его имени не было в контейнере, иначе обновляет существующее свойство с этим именем
bool addProperty (const PIString &_name, const PIVariant &_def_value, const PIString &_comment=PIString(), int _flags=0)
 Добавляет новое свойство, если его имени не было в контейнере, иначе обновляет существующее свойство с этим именем
bool removeProperty (const PIString &name)
 Удаляет свойство с именем "name", возвращает было ли оно удалено
int removePropertiesByFlag (int flag)
 Удаляет все свойства с флагом "flag", возвращает количество удаленных свойств
void updateProperties (const PIVector< Property > &properties, int flag_ignore=0)
 Объединяет "properties" с текущим контейнером
Property propertyByName (const PIString &name) const
 Возвращает свойство с именем "name" или пустое PIPropertyStorage::Property.
PIVariant propertyValueByName (const PIString &name) const
 Возвращает значение свойства с именем "name" или недействительный PIVariant.
bool setPropertyValue (const PIString &name, const PIVariant &value)
 Устанавливает значение "value" свойству с именем "name", возвращает существует ли такое свойство
bool setPropertyComment (const PIString &name, const PIString &comment)
 Устанавливает комментарий "comment" свойству с именем "name", возвращает существует ли такое свойство
bool setPropertyFlags (const PIString &name, int flags)
 Устанавливает флаги "flags" свойству с именем "name", возвращает существует ли такое свойство
PIPropertyStorage & operator<< (const PIPropertyStorage::Property &p)
 Добавляет свойство "p".
PIPropertyStorage & operator<< (const PIVector< Property > &p)
 Добавляет свойства "p".
PIPropertyStorage & operator<< (const PIPropertyStorage &p)
 Добавляет свойства "p".
Property & operator[] (int i)
 Возвращает свойство по индексу "i".
const Property & operator[] (int i) const
 Возвращает свойство по индексу "i" как константу
Property & operator[] (const PIString &name)
 Возвращает свойство с именем "name".
const Property operator[] (const PIString &name) const
 Возвращает свойство с именем "name" как константу

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

Этот класс предоставляет ключ-значение хранение свойств.

PIPropertyStorage - контейнер для хранения свойств в виде пар "ключ-значение" с дополнительными метаданными, такими как комментарии и флаги.

Краткий обзор

Хранилище свойств ключ-значние, основанный на PIVector с элементами PIPropertyStorage::Property. Каждый элемент имеет уникальное имя. Доступ к свойствам через propertyValueByName() или propertyByName(). Добавление и перезапись свойств через addProperty(const Property&) или addProperty(const PIString&, const PIVariant&, const PIString&, int).

Пример:

Методы

◆ addProperty() [1/2]

bool PIPropertyStorage::addProperty ( const Property & p)

Добавляет новое свойство, если его имени не было в контейнере, иначе обновляет существующее свойство с этим именем

Возвращает истину если новое свойство добавлено, в случае обновления "ложь"

◆ addProperty() [2/2]

bool PIPropertyStorage::addProperty ( const PIString & _name,
const PIVariant & _def_value,
const PIString & _comment = PIString(),
int _flags = 0 )

Добавляет новое свойство, если его имени не было в контейнере, иначе обновляет существующее свойство с этим именем

Возвращает истину если новое свойство добавлено, в случае обновления "ложь"

◆ removePropertiesByFlag()

int PIPropertyStorage::removePropertiesByFlag ( int flag)

Удаляет все свойства с флагом "flag", возвращает количество удаленных свойств

"flag" проверяется как битовое поле

◆ updateProperties()

void PIPropertyStorage::updateProperties ( const PIVector< Property > & properties,
int flag_ignore = 0 )

Объединяет "properties" с текущим контейнером

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

"flag_ignore" - битовое поле для исключения свойств из процесса слияния

◆ operator<<()

PIPropertyStorage & PIPropertyStorage::operator<< ( const PIPropertyStorage & p)
inline

Добавляет свойства "p".

Добавляет несколько свойств из другого PIPropertyStorage в этот контейнер с использованием оператора <<.