doc core reference done
This commit is contained in:
@@ -27,31 +27,83 @@
|
||||
|
||||
#include "pivector.h"
|
||||
|
||||
|
||||
//! \ingroup Core
|
||||
//! \~\brief
|
||||
//! \~english The %PIBitArray class provides an space-efficient array of bits.
|
||||
//! \~russian Класс %PIBitArray представляет собой компактный массив битов.
|
||||
class PIP_EXPORT PIBitArray {
|
||||
template <typename P>
|
||||
friend PIBinaryStream<P> & operator >>(PIBinaryStream<P> & s, PIBitArray & v);
|
||||
template <typename P>
|
||||
friend PIBinaryStream<P> & operator <<(PIBinaryStream<P> & s, const PIBitArray & v);
|
||||
public:
|
||||
PIBitArray(const int & size = 0) {resize(size);}
|
||||
PIBitArray(uchar val) {resize(sizeof(val) * 8); data_[0] = val;}
|
||||
PIBitArray(ushort val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
PIBitArray(uint val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
PIBitArray(ulong val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
PIBitArray(ullong val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
PIBitArray(const uchar * bytes, uint size) {resize(size * 8); memcpy(data(), bytes, size);}
|
||||
|
||||
//! \~english Constructs bit array with "size" size.
|
||||
//! \~russian Создает битовый массив с размером "size".
|
||||
PIBitArray(const int & size = 0) {resize(size);}
|
||||
|
||||
//! \~english Constructs bit array with size 8 and values from "val".
|
||||
//! \~russian Создает битовый массив с размером 8 и значениями из "val".
|
||||
PIBitArray(uchar val) {resize(sizeof(val) * 8); data_[0] = val;}
|
||||
|
||||
//! \~english Constructs bit array with size 16 and values from "val".
|
||||
//! \~russian Создает битовый массив с размером 16 и значениями из "val".
|
||||
PIBitArray(ushort val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
|
||||
//! \~english Constructs bit array with size 32 and values from "val".
|
||||
//! \~russian Создает битовый массив с размером 32 и значениями из "val".
|
||||
PIBitArray(uint val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
|
||||
//! \~english Constructs bit array with size 64 and values from "val".
|
||||
//! \~russian Создает битовый массив с размером 64 и значениями из "val".
|
||||
PIBitArray(ullong val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
|
||||
//! \~english Constructs bit array with size "bytes * 8" and values from "data".
|
||||
//! \~russian Создает битовый массив с размером "bytes * 8" и значениями из "data".
|
||||
PIBitArray(const uchar * data, uint bytes) {resize(bytes * 8); memcpy(this->data(), data, bytes);}
|
||||
|
||||
|
||||
//! \~english Returns a size in bits.
|
||||
//! \~russian Возвращает размер в битах.
|
||||
uint bitSize() const {return size_;}
|
||||
|
||||
//! \~english Returns a size in bytes.
|
||||
//! \~russian Возвращает размер в байтах.
|
||||
uint byteSize() const {return bytesInBits(size_);}
|
||||
|
||||
//! \~english Resize this array to "size" bits.
|
||||
//! \~russian Изменяет размер массива до "size" битов.
|
||||
PIBitArray & resize(const uint & size) {size_ = size; data_.resize(bytesInBits(size_)); return *this;}
|
||||
|
||||
|
||||
//! \~english Set bit with index "index" to 0.
|
||||
//! \~russian Устанавливает бит с индексом "index" в 0.
|
||||
PIBitArray & clearBit(const uint & index) {data_[index / 8] &= ~(1 << (index % 8)); return *this;}
|
||||
|
||||
//! \~english Set bit with index "index" to 1.
|
||||
//! \~russian Устанавливает бит с индексом "index" в 1.
|
||||
PIBitArray & setBit(const uint & index) {data_[index / 8] |= (1 << (index % 8)); return *this;}
|
||||
|
||||
//! \~english Set bit with index "index" to "value".
|
||||
//! \~russian Устанавливает бит с индексом "index" в "value".
|
||||
PIBitArray & writeBit(const uint & index, const bool & value) {if (value) setBit(index); else clearBit(index); return *this;}
|
||||
|
||||
//! \~english Set bit with index "index" to "value".
|
||||
//! \~russian Устанавливает бит с индексом "index" в "value".
|
||||
PIBitArray & writeBit(const uint & index, const uchar & value) {return writeBit(index, value > 0);}
|
||||
|
||||
|
||||
//! \~english Add bit with value "value" to the end of array.
|
||||
//! \~russian Добавляет бит со значением "value" в конец массива.
|
||||
PIBitArray & push_back(const bool & value) {resize(size_ + 1); writeBit(size_ - 1, value); return *this;}
|
||||
|
||||
//! \~english Add bit with value "value" to the end of array.
|
||||
//! \~russian Добавляет бит со значением "value" в конец массива.
|
||||
PIBitArray & push_back(const uchar & value) {return push_back(value > 0);}
|
||||
|
||||
//! \~english Insert bit with value "value" after "index" position.
|
||||
//! \~russian Вставляет бит со значением "value" после положения "index".
|
||||
PIBitArray & insert(const uint & index, const bool & value) {
|
||||
resize(size_ + 1);
|
||||
uint fi = byteSize() - 1, si = index / 8, ti = index % 8;
|
||||
@@ -65,10 +117,25 @@ public:
|
||||
if (value) data_[si] |= (1 << ti);
|
||||
else data_[si] &= ~(1 << ti);
|
||||
return *this;}
|
||||
|
||||
//! \~english Insert bit with value "value" after "index" position.
|
||||
//! \~russian Вставляет бит со значением "value" после положения "index".
|
||||
PIBitArray & insert(const uint & index, const uchar & value) {return insert(index, value > 0);}
|
||||
|
||||
//! \~english Add bit with value "value" to the beginning of array.
|
||||
//! \~russian Добавляет бит со значением "value" в начало массива.
|
||||
PIBitArray & push_front(const bool & value) {return insert(0, value);}
|
||||
|
||||
//! \~english Add bit with value "value" to the beginning of array.
|
||||
//! \~russian Добавляет бит со значением "value" в начало массива.
|
||||
PIBitArray & push_front(const uchar & value) {return push_front(value > 0);}
|
||||
|
||||
//! \~english Remove one bit from the end of array.
|
||||
//! \~russian Удаляет один бит с конца массива.
|
||||
PIBitArray & pop_back() {return resize(size_ - 1);}
|
||||
|
||||
//! \~english Remove one bit from the beginning of array.
|
||||
//! \~russian Удаляет один бит с начала массива.
|
||||
PIBitArray & pop_front() {
|
||||
if (size_ == 0) return *this;
|
||||
uint fi = byteSize() - 1;
|
||||
@@ -79,24 +146,67 @@ public:
|
||||
data_[fi] >>= 1;
|
||||
resize(size_ - 1);
|
||||
return *this;}
|
||||
|
||||
//! \~english Add bits "ba" to the end of array.
|
||||
//! \~russian Добавляет биты "ba" в конец массива.
|
||||
PIBitArray & append(const PIBitArray & ba) {for (uint i = 0; i < ba.bitSize(); ++i) push_back(ba[i]); return *this;}
|
||||
|
||||
|
||||
//! \~english Returns pointer to bytes data of array.
|
||||
//! \~russian Возвращает указатель на байтовое содержимое массива.
|
||||
uchar * data() {return data_.data();}
|
||||
|
||||
//! \~english Returns data of array as \b uchar.
|
||||
//! \~russian Возвращает байтовое содержимое массива как \b uchar.
|
||||
uchar toUChar() {if (size_ == 0) return 0; return data_[0];}
|
||||
|
||||
//! \~english Returns data of array as \b ushort.
|
||||
//! \~russian Возвращает байтовое содержимое массива как \b ushort.
|
||||
ushort toUShort() {ushort t = 0; memcpy(&t, data(), piMin<uint>(byteSize(), sizeof(t))); return t;}
|
||||
|
||||
//! \~english Returns data of array as \b uint.
|
||||
//! \~russian Возвращает байтовое содержимое массива как \b uint.
|
||||
uint toUInt() {uint t = 0; memcpy(&t, data(), piMin<uint>(byteSize(), sizeof(t))); return t;}
|
||||
ulong toULong() {ulong t = 0; memcpy(&t, data(), piMin<uint>(byteSize(), sizeof(t))); return t;}
|
||||
|
||||
//! \~english Returns data of array as \b ullong.
|
||||
//! \~russian Возвращает байтовое содержимое массива как \b ullong.
|
||||
ullong toULLong() {ullong t = 0; memcpy(&t, data(), piMin<uint>(byteSize(), sizeof(t))); return t;}
|
||||
|
||||
|
||||
//! \~english Returns bit value at index "index".
|
||||
//! \~russian Возвращает значение бита с индексом "index".
|
||||
bool at(const uint & index) const {return (1 & (data_[index / 8] >> (index % 8))) == 1 ? true : false;}
|
||||
|
||||
//! \~english Returns bit value at index "index".
|
||||
//! \~russian Возвращает значение бита с индексом "index".
|
||||
bool operator [](const uint & index) const {return at(index);}
|
||||
|
||||
//! \~english Similar to \a append().
|
||||
//! \~russian Аналог \a append().
|
||||
void operator +=(const PIBitArray & ba) {append(ba);}
|
||||
|
||||
//! \~english Returns if two bit arrays are similar.
|
||||
//! \~russian Возвращает равны ли для битовых массива.
|
||||
bool operator ==(const PIBitArray & ba) const {if (bitSize() != ba.bitSize()) return false; for (uint i = 0; i < bitSize(); ++i) if (at(i) != ba[i]) return false; return true;}
|
||||
|
||||
//! \~english Returns if two bit arrays are not similar.
|
||||
//! \~russian Возвращает не равны ли для битовых массива.
|
||||
bool operator !=(const PIBitArray & ba) const {return !(*this == ba);}
|
||||
|
||||
//! \~english Resize and set values from "val".
|
||||
//! \~russian Изменяет размер и устанавливает значения из "val".
|
||||
void operator =(const uchar & val) {resize(sizeof(val) * 8); data_[0] = val;}
|
||||
|
||||
//! \~english Resize and set values from "val".
|
||||
//! \~russian Изменяет размер и устанавливает значения из "val".
|
||||
void operator =(const ushort & val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
|
||||
//! \~english Resize and set values from "val".
|
||||
//! \~russian Изменяет размер и устанавливает значения из "val".
|
||||
void operator =(const uint & val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
void operator =(const ulong & val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
|
||||
//! \~english Resize and set values from "val".
|
||||
//! \~russian Изменяет размер и устанавливает значения из "val".
|
||||
void operator =(const ullong & val) {resize(sizeof(val) * 8); memcpy(data(), &val, sizeof(val));}
|
||||
|
||||
private:
|
||||
@@ -111,6 +221,9 @@ private:
|
||||
//std::ostream & operator <<(std::ostream & s, const PIBitArray & ba);
|
||||
#endif
|
||||
|
||||
//! \relatesalso PIByteArray
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
PICout operator <<(PICout s, const PIBitArray & ba);
|
||||
|
||||
#endif // PIBITARRAY_H
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
//! Этот класс предоставляет удобный механизм для разбора аргументов командной строки.
|
||||
//! Сперва необходимо добавить аргументы в %PICLI с помощью методов \a addArgument().
|
||||
//! Далее можно проверять аргументы на наличие в командной строке методом \a hasArgument(),
|
||||
//! а также получить их значения при помощи \a argumentValue().
|
||||
//! а также получать их значения при помощи \a argumentValue().
|
||||
//!
|
||||
//! \~english \section PICLI_sec1 Example
|
||||
//! \~russian \section PICLI_sec1 Пример
|
||||
@@ -52,8 +52,12 @@
|
||||
//! piCout << "Value =" << cli.argumentValue("Value");
|
||||
//! return 0;
|
||||
//! }
|
||||
//! \endcode
|
||||
//!
|
||||
//! These executions are similar:
|
||||
//! \~english These executions are similar:
|
||||
//! \~russian Эти вызовы будут идентичны:
|
||||
//!
|
||||
//! \~\code
|
||||
//! a.out -cd -v 10
|
||||
//! a.out --value 10 -dc
|
||||
//! a.out -c -v 10 -d
|
||||
|
||||
@@ -37,56 +37,62 @@ class PIP_EXPORT PICLI
|
||||
{
|
||||
public:
|
||||
|
||||
//! \~english Constructor
|
||||
//! \~russian Конструктор
|
||||
//! \~english Constructs %PICLI from "argc" and "argv" from "int main()" method.
|
||||
//! \~russian Создает %PICLI из "argc" и "argv" из метода "int main()".
|
||||
PICLI(int argc, char * argv[]);
|
||||
|
||||
|
||||
//! \~english Add argument with name "name", short key = name first letter and full key = name
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = первой букве имени и полным ключом = имени
|
||||
//! \~english Add argument with name "name", short key = name first letter and full key = name.
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = первой букве имени и полным ключом = имени.
|
||||
void addArgument(const PIString & name, bool value = false) {_args << Argument(name, name[0], name, value); needParse = true;}
|
||||
|
||||
//! \~english Add argument with name "name", short key = "shortKey" and full key = name
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = "shortKey" и полным ключом = имени
|
||||
//! \~english Add argument with name "name", short key = "shortKey" and full key = name.
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = "shortKey" и полным ключом = имени.
|
||||
void addArgument(const PIString & name, const PIChar & shortKey, bool value = false) {_args << Argument(name, shortKey, name, value); needParse = true;}
|
||||
|
||||
//! \~english Add argument with name "name", short key = "shortKey" and full key = name
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = "shortKey" и полным ключом = имени
|
||||
//! \~english Add argument with name "name", short key = "shortKey" and full key = name.
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = "shortKey" и полным ключом = имени.
|
||||
void addArgument(const PIString & name, const char * shortKey, bool value = false) {_args << Argument(name, PIChar(shortKey), name, value); needParse = true;}
|
||||
|
||||
//! \~english Add argument with name "name", short key = "shortKey" and full key = "fullKey"
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = "shortKey" и полным ключом = "fullKey"
|
||||
//! \~english Add argument with name "name", short key = "shortKey" and full key = "fullKey".
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = "shortKey" и полным ключом = "fullKey".
|
||||
void addArgument(const PIString & name, const PIChar & shortKey, const PIString & fullKey, bool value = false) {_args << Argument(name, shortKey, fullKey, value); needParse = true;}
|
||||
|
||||
//! \~english Add argument with name "name", short key = "shortKey" and full key = "fullKey"
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = "shortKey" и полным ключом = "fullKey"
|
||||
//! \~english Add argument with name "name", short key = "shortKey" and full key = "fullKey".
|
||||
//! \~russian Добавляет аргумент с именем "name", коротким ключом = "shortKey" и полным ключом = "fullKey".
|
||||
void addArgument(const PIString & name, const char * shortKey, const PIString & fullKey, bool value = false) {_args << Argument(name, PIChar(shortKey), fullKey, value); needParse = true;}
|
||||
|
||||
|
||||
//! \~english Returns unparsed command-line argument by index "index". Index 0 is program execute command
|
||||
//! \~russian Возвращает исходный аргумент командной строки по индексу "index". Индекс 0 это команда вызова программы
|
||||
//! \~english Returns unparsed command-line argument by index "index". Index 0 is program execute command.
|
||||
//! \~russian Возвращает исходный аргумент командной строки по индексу "index". Индекс 0 это команда вызова программы.
|
||||
PIString rawArgument(int index) {parse(); return _args_raw[index];}
|
||||
PIString mandatoryArgument(int index) {parse(); return _args_mand[index];}
|
||||
PIString optionalArgument(int index) {parse(); return _args_opt[index];}
|
||||
|
||||
//! \~english Returns unparsed command-line arguments
|
||||
//! \~russian Возвращает исходные аргументы командной строки
|
||||
//! \~english Returns unparsed command-line arguments.
|
||||
//! \~russian Возвращает исходные аргументы командной строки.
|
||||
const PIStringList & rawArguments() {parse(); return _args_raw;}
|
||||
const PIStringList & mandatoryArguments() {parse(); return _args_mand;}
|
||||
const PIStringList & optionalArguments() {parse(); return _args_opt;}
|
||||
|
||||
//! \~english Returns program execute command without arguments
|
||||
//! \~russian Возвращает команду вызова программы без аргументов
|
||||
//! \~english Returns program execute command without arguments.
|
||||
//! \~russian Возвращает команду вызова программы без аргументов.
|
||||
PIString programCommand() {parse(); return _args_raw.size() > 0 ? _args_raw.front() : PIString();}
|
||||
|
||||
//! \~english Returns if argument "name" found
|
||||
//! \~russian Возвращает найден ли аргумент "name"
|
||||
//! \~english Returns if argument "name" found.
|
||||
//! \~russian Возвращает найден ли аргумент "name".
|
||||
bool hasArgument(const PIString & name) {parse(); piForeach (Argument & i, _args) if (i.name == name && i.found) return true; return false;}
|
||||
|
||||
//! \~english Returns argument "name" value, or empty string if this is no value
|
||||
//! \~russian Возвращает значение аргумента "name" или пустую строку, если значения нет
|
||||
//! \~english Returns argument "name" value, or empty string if this is no value.
|
||||
//! \~russian Возвращает значение аргумента "name" или пустую строку, если значения нет.
|
||||
PIString argumentValue(const PIString & name) {parse(); piForeach (Argument &i, _args) if (i.name == name && i.found) return i.value; return PIString();}
|
||||
|
||||
//! \~english Returns short key of argument "name", or empty string if this is no argument.
|
||||
//! \~russian Возвращает короткий ключ аргумента "name" или пустую строку, если аргумента нет.
|
||||
PIString argumentShortKey(const PIString & name) {piForeach (Argument &i, _args) if (i.name == name) return i.short_key; return PIString();}
|
||||
|
||||
//! \~english Returns full key of argument "name", or empty string if this is no argument.
|
||||
//! \~russian Возвращает полный ключ аргумента "name" или пустую строку, если аргумента нет.
|
||||
PIString argumentFullKey(const PIString & name) {piForeach (Argument &i, _args) if (i.name == name) return i.full_key; return PIString();}
|
||||
|
||||
const PIString & shortKeyPrefix() const {return _prefix_short;}
|
||||
|
||||
@@ -20,32 +20,49 @@
|
||||
#include "pivariant.h"
|
||||
|
||||
|
||||
/** \class PIVariant
|
||||
* \details
|
||||
* \section PIVariant_sec0 Synopsis
|
||||
* This class provides general type that can contains all standard types, some
|
||||
* PIP types or custom type. In case of standard types this class also provides
|
||||
* convertions between them.
|
||||
*
|
||||
* \section PIVariant_sec1 Usage
|
||||
* %PIVariant useful if you want pass many variables with different types in
|
||||
* single array, e.g.:
|
||||
* \code{cpp}
|
||||
* PIVector<PIVariant> array;
|
||||
* array << PIVariant(10) << PIVariant(1.61) << PIVariant(true) << PIVariant("0xFF");
|
||||
* piCout << array;
|
||||
* piForeachC (PIVariant & i, array)
|
||||
* piCout << i.toInt();
|
||||
* \endcode
|
||||
* Result:
|
||||
* \code{cpp}
|
||||
* {PIVariant(Int, 10), PIVariant(Double, 1,61), PIVariant(Bool, true), PIVariant(String, 0xFF)}
|
||||
* 10
|
||||
* 1
|
||||
* 1
|
||||
* 255
|
||||
* \endcode
|
||||
* */
|
||||
//! \class PIVariant pivariant.h
|
||||
//! \details
|
||||
//! \~english \section PIVariant_sec0 Synopsis
|
||||
//! \~russian \section PIVariant_sec0 Краткий обзор
|
||||
//! \~english
|
||||
//! This class provides general type that can contains all standard types, some
|
||||
//! PIP types or custom type. In case of standard types this class also provides
|
||||
//! convertions between them.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Этот класс предоставляет некий общий тип, который может содержать все стандартные тип,
|
||||
//! некоторые типы PIP, а также любой свой тип. В случае стандартных типов предоставляется
|
||||
//! автоматическое преобразование между ними.
|
||||
//!
|
||||
//! \~english \section PIVariant_sec1 Usage
|
||||
//! \~russian \section PIVariant_sec1 Использование
|
||||
//! \~english
|
||||
//! %PIVariant useful if you want pass many variables with different types in
|
||||
//! single array, or type may vary from case to case, e.g.:
|
||||
//!
|
||||
//! \~russian
|
||||
//! %PIVariant полезен когда надо передать несколько разнотипных значений
|
||||
//! одним массивом, или тип заранее неизвестен, например:
|
||||
//!
|
||||
//! \~\code{cpp}
|
||||
//! PIVector<PIVariant> array;
|
||||
//! array << PIVariant(10) << PIVariant(1.61) << PIVariant(true) << PIVariant("0xFF");
|
||||
//! piCout << array;
|
||||
//! for (auto i: array)
|
||||
//! piCout << i.toInt();
|
||||
//! \endcode
|
||||
//!
|
||||
//! \~english Result:
|
||||
//! \~russian Результат:
|
||||
//! \~\code{cpp}
|
||||
//! {PIVariant(Int, 10), PIVariant(Double, 1,61), PIVariant(Bool, true), PIVariant(String, 0xFF)}
|
||||
//! 10
|
||||
//! 1
|
||||
//! 1
|
||||
//! 255
|
||||
//! \endcode
|
||||
//!
|
||||
|
||||
|
||||
#ifdef CUSTOM_PIVARIANT
|
||||
PIMap<PIString, __PIVariantInfo__ * > * __PIVariantInfoStorage__::map = 0;
|
||||
@@ -158,6 +175,8 @@ PIVariant::Type PIVariant::typeFromName(const PIString & tname) {
|
||||
if (s == "rect") return PIVariant::pivRect;
|
||||
if (s == "vector") return PIVariant::pivMathVector;
|
||||
if (s == "matrix") return PIVariant::pivMathMatrix;
|
||||
if (s == "line") return PIVariant::pivLine;
|
||||
if (s == "device" || s == "iodevice") return PIVariant::pivIODevice;
|
||||
return PIVariant::pivInvalid;
|
||||
}
|
||||
|
||||
@@ -219,12 +238,25 @@ PIString PIVariant::typeName(PIVariant::Type type) {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as boolean
|
||||
* \details In case of numeric types returns \b true if value != 0. \n
|
||||
* In case of String type returns \a PIString::toBool(). \n
|
||||
* In case of StringList type returns \b false if string list is empty,
|
||||
* otherwise returns \a PIString::toBool() of first string. \n
|
||||
* In case of other types returns \b false. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as boolean
|
||||
//! \~russian Возвращает содержимое как boolean
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of numeric types returns \b true if value != 0. \n
|
||||
//! In case of String type returns \a PIString::toBool(). \n
|
||||
//! In case of StringList type returns \b false if string list is empty,
|
||||
//! otherwise returns \a PIString::toBool() of first string. \n
|
||||
//! In case of other types returns \b false.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для численных типов возвращает \b true если значение != 0. \n
|
||||
//! Для типа String возвращает \a PIString::toBool(). \n
|
||||
//! Для типа StringList возвращает \b false если массив пустой, \n
|
||||
//! иначе возвращает \a PIString::toBool() первой строки. \n
|
||||
//! Для остальных типов возвращает \b false.
|
||||
//!
|
||||
bool PIVariant::toBool() const {
|
||||
PIByteArray ba(_content);
|
||||
switch (_type) {
|
||||
@@ -250,12 +282,25 @@ bool PIVariant::toBool() const {
|
||||
|
||||
|
||||
|
||||
/** \brief Returns variant content as int
|
||||
* \details In case of numeric types returns integer value. \n
|
||||
* In case of String type returns \a PIString::toInt(). \n
|
||||
* In case of StringList type returns \b 0 if string list is empty,
|
||||
* otherwise returns \a PIString::toInt() of first string. \n
|
||||
* In case of other types returns \b 0. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as int
|
||||
//! \~russian Возвращает содержимое как int
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of numeric types returns integer value. \n
|
||||
//! In case of String type returns \a PIString::toInt(). \n
|
||||
//! In case of StringList type returns \b 0 if string list is empty,
|
||||
//! otherwise returns \a PIString::toInt() of first string. \n
|
||||
//! In case of other types returns \b 0.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для численных типов возвращает целочисленное значение. \n
|
||||
//! Для типа String возвращает \a PIString::toInt(). \n
|
||||
//! Для типа StringList возвращает \b 0 если массив пустой, \n
|
||||
//! иначе возвращает \a PIString::toInt() первой строки. \n
|
||||
//! Для остальных типов возвращает \b 0.
|
||||
//!
|
||||
int PIVariant::toInt() const {
|
||||
PIByteArray ba(_content);
|
||||
switch (_type) {
|
||||
@@ -282,12 +327,25 @@ int PIVariant::toInt() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as long long
|
||||
* \details In case of numeric types returns integer value. \n
|
||||
* In case of String type returns \a PIString::toLLong(). \n
|
||||
* In case of StringList type returns \b 0L if string list is empty,
|
||||
* otherwise returns \a PIString::toLLong() of first string. \n
|
||||
* In case of other types returns \b 0L. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as long long
|
||||
//! \~russian Возвращает содержимое как long long
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of numeric types returns integer value. \n
|
||||
//! In case of String type returns \a PIString::toLLong(). \n
|
||||
//! In case of StringList type returns \b 0L if string list is empty,
|
||||
//! otherwise returns \a PIString::toLLong() of first string. \n
|
||||
//! In case of other types returns \b 0L.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для численных типов возвращает целочисленное значение. \n
|
||||
//! Для типа String возвращает \a PIString::toLLong(). \n
|
||||
//! Для типа StringList возвращает \b 0L если массив пустой, \n
|
||||
//! иначе возвращает \a PIString::toLLong() первой строки. \n
|
||||
//! Для остальных типов возвращает \b 0L.
|
||||
//!
|
||||
llong PIVariant::toLLong() const {
|
||||
PIByteArray ba(_content);
|
||||
switch (_type) {
|
||||
@@ -313,12 +371,25 @@ llong PIVariant::toLLong() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as float
|
||||
* \details In case of numeric types returns float value. \n
|
||||
* In case of String type returns \a PIString::toFloat(). \n
|
||||
* In case of StringList type returns \b 0.f if string list is empty,
|
||||
* otherwise returns \a PIString::toFloat() of first string. \n
|
||||
* In case of other types returns \b 0.f. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as float
|
||||
//! \~russian Возвращает содержимое как float
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of numeric types returns float value. \n
|
||||
//! In case of String type returns \a PIString::toFloat(). \n
|
||||
//! In case of StringList type returns \b 0.f if string list is empty,
|
||||
//! otherwise returns \a PIString::toFloat() of first string. \n
|
||||
//! In case of other types returns \b 0.f .
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для численных типов возвращает вещественное значение. \n
|
||||
//! Для типа String возвращает \a PIString::toFloat(). \n
|
||||
//! Для типа StringList возвращает \b 0.f если массив пустой, \n
|
||||
//! иначе возвращает \a PIString::toFloat() первой строки. \n
|
||||
//! Для остальных типов возвращает \b 0.f .
|
||||
//!
|
||||
float PIVariant::toFloat() const {
|
||||
PIByteArray ba(_content);
|
||||
switch (_type) {
|
||||
@@ -344,12 +415,25 @@ float PIVariant::toFloat() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as double
|
||||
* \details In case of numeric types returns double value. \n
|
||||
* In case of String type returns \a PIString::toDouble(). \n
|
||||
* In case of StringList type returns \b 0. if string list is empty,
|
||||
* otherwise returns \a PIString::toDouble() of first string. \n
|
||||
* In case of other types returns \b 0.. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as double
|
||||
//! \~russian Возвращает содержимое как double
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of numeric types returns double value. \n
|
||||
//! In case of String type returns \a PIString::toDouble(). \n
|
||||
//! In case of StringList type returns \b 0. if string list is empty,
|
||||
//! otherwise returns \a PIString::toDouble() of first string. \n
|
||||
//! In case of other types returns \b 0. .
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для численных типов возвращает вещественное значение. \n
|
||||
//! Для типа String возвращает \a PIString::toDouble(). \n
|
||||
//! Для типа StringList возвращает \b 0. если массив пустой, \n
|
||||
//! иначе возвращает \a PIString::toDouble() первой строки. \n
|
||||
//! Для остальных типов возвращает \b 0. .
|
||||
//!
|
||||
double PIVariant::toDouble() const {
|
||||
PIByteArray ba(_content);
|
||||
switch (_type) {
|
||||
@@ -375,12 +459,25 @@ double PIVariant::toDouble() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as long double
|
||||
* \details In case of numeric types returns long double value. \n
|
||||
* In case of String type returns \a PIString::toLDouble(). \n
|
||||
* In case of StringList type returns \b 0. if string list is empty,
|
||||
* otherwise returns \a PIString::toLDouble() of first string. \n
|
||||
* In case of other types returns \b 0.. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as long double
|
||||
//! \~russian Возвращает содержимое как long double
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of numeric types returns long double value. \n
|
||||
//! In case of String type returns \a PIString::toLDouble(). \n
|
||||
//! In case of StringList type returns \b 0. if string list is empty,
|
||||
//! otherwise returns \a PIString::toLDouble() of first string. \n
|
||||
//! In case of other types returns \b 0. .
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для численных типов возвращает вещественное значение. \n
|
||||
//! Для типа String возвращает \a PIString::toLDouble(). \n
|
||||
//! Для типа StringList возвращает \b 0. если массив пустой, \n
|
||||
//! иначе возвращает \a PIString::toLDouble() первой строки. \n
|
||||
//! Для остальных типов возвращает \b 0. .
|
||||
//!
|
||||
ldouble PIVariant::toLDouble() const {
|
||||
PIByteArray ba(_content);
|
||||
switch (_type) {
|
||||
@@ -406,10 +503,21 @@ ldouble PIVariant::toLDouble() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as time
|
||||
* \details In case of Time type returns time value. \n
|
||||
* In case of DateTime type returns time part of value. \n
|
||||
* In case of other types returns \a PITime(). */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as time
|
||||
//! \~russian Возвращает содержимое как время
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Time type returns time value. \n
|
||||
//! In case of DateTime type returns time part of value. \n
|
||||
//! In case of other types returns \a PITime().
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Time возвращает время. \n
|
||||
//! Для типа DateTime возвращает часть времени. \n
|
||||
//! Для остальных типов возвращает \a PITime().
|
||||
//!
|
||||
PITime PIVariant::toTime() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivTime) {PITime r; ba >> r; return r;}
|
||||
@@ -419,10 +527,21 @@ PITime PIVariant::toTime() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as date
|
||||
* \details In case of Date type returns date value. \n
|
||||
* In case of DateTime type returns date part of value. \n
|
||||
* In case of other types returns \a PIDate(). */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as date
|
||||
//! \~russian Возвращает содержимое как дата
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Date type returns date value. \n
|
||||
//! In case of DateTime type returns date part of value. \n
|
||||
//! In case of other types returns \a PIDate().
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Date возвращает дату. \n
|
||||
//! Для типа DateTime возвращает часть даты. \n
|
||||
//! Для остальных типов возвращает \a PIDate().
|
||||
//!
|
||||
PIDate PIVariant::toDate() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivDate) {PIDate r; ba >> r; return r;}
|
||||
@@ -432,11 +551,23 @@ PIDate PIVariant::toDate() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as date and time
|
||||
* \details In case of Time type returns time value with null date. \n
|
||||
* In case of Date type returns date value with null time. \n
|
||||
* In case of DateTime type returns date and time. \n
|
||||
* In case of other types returns \a PIDateTime(). */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as date and time
|
||||
//! \~russian Возвращает содержимое как дата и время
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Time type returns time value with null date. \n
|
||||
//! In case of Date type returns date value with null time. \n
|
||||
//! In case of DateTime type returns date and time. \n
|
||||
//! In case of other types returns \a PIDateTime().
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Time возвращает время без даты. \n
|
||||
//! Для типа Date возвращает дату без времени. \n
|
||||
//! Для типа DateTime возвращает время и дату. \n
|
||||
//! Для остальных типов возвращает \a PIDateTime().
|
||||
//!
|
||||
PIDateTime PIVariant::toDateTime() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivTime) {PITime r; ba >> r; return PIDateTime(r);}
|
||||
@@ -447,10 +578,19 @@ PIDateTime PIVariant::toDateTime() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as system time
|
||||
* \details In case of SystemTime type returns system time. \n
|
||||
* In case of other types returns \a PISystemTime::fromSeconds() from
|
||||
* double value of variant content. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as system time
|
||||
//! \~russian Возвращает содержимое как системное время
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of SystemTime type returns system time. \n
|
||||
//! In case of other types returns \a PISystemTime::fromSeconds() from \a toDouble().
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа SystemTime возвращает системное время. \n
|
||||
//! Для остальных типов возвращает \a PISystemTime::fromSeconds() от \a toDouble().
|
||||
//!
|
||||
PISystemTime PIVariant::toSystemTime() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivSystemTime) {PISystemTime r; ba >> r; return r;}
|
||||
@@ -459,15 +599,30 @@ PISystemTime PIVariant::toSystemTime() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as string
|
||||
* \details In case of numeric types returns \a PIString::fromNumber(). \n
|
||||
* In case of String type returns string value. \n
|
||||
* In case of StringList type returns joined string ("(" + PIStringList::join("; ") + ")"). \n
|
||||
* In case of BitArray or ByteArray types returns number of bits/bytes. \n
|
||||
* In case of Time, Date or DateTime types returns toString() of this values. \n
|
||||
* In case of SystemTime types returns second and nanoseconds of time
|
||||
* ("(PISystemTime::seconds s, PISystemTime::nanoseconds ns)"). \n
|
||||
* In case of other types returns \b "". */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as string
|
||||
//! \~russian Возвращает содержимое как строка
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of numeric types returns \a PIString::fromNumber(). \n
|
||||
//! In case of String type returns string value. \n
|
||||
//! In case of StringList type returns joined string ("(" + PIStringList::join("; ") + ")"). \n
|
||||
//! In case of BitArray or ByteArray types returns number of bits/bytes. \n
|
||||
//! In case of Time, Date or DateTime types returns toString() of this values. \n
|
||||
//! In case of SystemTime types returns second and nanoseconds of time
|
||||
//! ("(PISystemTime::seconds s, PISystemTime::nanoseconds ns)"). \n
|
||||
//! In case of other types returns \b "".
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для численных типов возвращает \a PIString::fromNumber(). \n
|
||||
//! Для типа String возвращает строку. \n
|
||||
//! Для типа StringList возвращает объединенную строку ("(" + PIStringList::join("; ") + ")"). \n
|
||||
//! Для типов BitArray или ByteArray возвращает количество бит/байт. \n
|
||||
//! Для типов Time, Date или DateTime возвращает toString(). \n
|
||||
//! Для типов SystemTime возвращает секунды и наносекунды в формате "(s, ns)".
|
||||
//! Для остальных типов возвращает \b "".
|
||||
//!
|
||||
PIString PIVariant::toString() const {
|
||||
PIByteArray ba(_content);
|
||||
switch (_type) {
|
||||
@@ -500,9 +655,19 @@ PIString PIVariant::toString() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as strings list
|
||||
* \details In case of StringList type returns strings list value. \n
|
||||
* In case of other types returns \a PIStringList with one string value of variant content. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as strings list
|
||||
//! \~russian Возвращает содержимое как массив строк
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of StringList type returns strings list value. \n
|
||||
//! In case of other types returns \a PIStringList with one string \a toString().
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа StringList возвращает массив строк. \n
|
||||
//! Для остальных типов возвращает \a PIStringList с одной строкой \a toString().
|
||||
//!
|
||||
PIStringList PIVariant::toStringList() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivStringList) {PIStringList r; ba >> r; return r;}
|
||||
@@ -512,9 +677,19 @@ PIStringList PIVariant::toStringList() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as bit array
|
||||
* \details In case of BitArray type returns bit array value. \n
|
||||
* In case of other types returns \a PIBitArray from \a toLLong() value. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as bit array
|
||||
//! \~russian Возвращает содержимое как массив битов
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of BitArray type returns bit array value. \n
|
||||
//! In case of other types returns \a PIBitArray from \a toLLong() value.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа BitArray возвращает массив битов. \n
|
||||
//! Для остальных типов возвращает \a PIBitArray от значения \a toLLong().
|
||||
//!
|
||||
PIBitArray PIVariant::toBitArray() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivBitArray) {PIBitArray r; ba >> r; return r;}
|
||||
@@ -523,9 +698,19 @@ PIBitArray PIVariant::toBitArray() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as byte array
|
||||
* \details In case of ByteArray type returns byte array value. \n
|
||||
* In case of other types returns empty \a PIByteArray. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as byte array
|
||||
//! \~russian Возвращает содержимое как массив байтов
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of ByteArray type returns byte array value. \n
|
||||
//! In case of other types returns empty \a PIByteArray.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа ByteArray возвращает массив байтов. \n
|
||||
//! Для остальных типов возвращает пустой \a PIByteArray.
|
||||
//!
|
||||
PIByteArray PIVariant::toByteArray() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivByteArray) {PIByteArray r; ba >> r; return r;}
|
||||
@@ -534,11 +719,23 @@ PIByteArray PIVariant::toByteArray() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as enum
|
||||
* \details In case of Enum type returns enum value. \n
|
||||
* In case of String returns Enum with one member. \n
|
||||
* In case of StringList returns Enum with corresponding members. \n
|
||||
* In case of other types returns empty Enum. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as enum
|
||||
//! \~russian Возвращает содержимое как перечисление
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Enum type returns enum value. \n
|
||||
//! In case of String returns Enum with one member. \n
|
||||
//! In case of StringList returns Enum with corresponding members. \n
|
||||
//! In case of other types returns empty Enum.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Enum возвращает перечисление. \n
|
||||
//! Для типа String возвращает Enum с одним членом. \n
|
||||
//! Для типа StringList возвращает Enum с членами по строкам. \n
|
||||
//! Для остальных типов возвращает пустой Enum.
|
||||
//!
|
||||
PIVariantTypes::Enum PIVariant::toEnum() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivEnum) {PIVariantTypes::Enum r; ba >> r; return r;}
|
||||
@@ -549,10 +746,21 @@ PIVariantTypes::Enum PIVariant::toEnum() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as file
|
||||
* \details In case of File type returns file value. \n
|
||||
* In case of String returns File with string value path. \n
|
||||
* In case of other types returns empty File. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as file
|
||||
//! \~russian Возвращает содержимое как файл
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of File type returns file value. \n
|
||||
//! In case of String returns File with string value path. \n
|
||||
//! In case of other types returns empty File.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа File возвращает файл. \n
|
||||
//! Для типа String возвращает File с путем значения строки. \n
|
||||
//! Для остальных типов возвращает пустой File.
|
||||
//!
|
||||
PIVariantTypes::File PIVariant::toFile() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivFile) {PIVariantTypes::File r; ba >> r; return r;}
|
||||
@@ -562,10 +770,21 @@ PIVariantTypes::File PIVariant::toFile() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as dir
|
||||
* \details In case of Dir type returns dir value. \n
|
||||
* In case of String returns Dir with string value path. \n
|
||||
* In case of other types returns empty Dir. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as dir
|
||||
//! \~russian Возвращает содержимое как директория
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Dir type returns dir value. \n
|
||||
//! In case of String returns Dir with string value path. \n
|
||||
//! In case of other types returns empty Dir.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Dir возвращает директорию. \n
|
||||
//! Для типа String возвращает Dir с путем значения строки. \n
|
||||
//! Для остальных типов возвращает пустой Dir.
|
||||
//!
|
||||
PIVariantTypes::Dir PIVariant::toDir() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivDir) {PIVariantTypes::Dir r; ba >> r; return r;}
|
||||
@@ -575,10 +794,21 @@ PIVariantTypes::Dir PIVariant::toDir() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as color
|
||||
* \details In case of Color type returns color value. \n
|
||||
* In case of int returns color with int value. \n
|
||||
* In case of other types returns empty Color. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as color
|
||||
//! \~russian Возвращает содержимое как цвет
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Color type returns color value. \n
|
||||
//! In case of Int returns color with int value. \n
|
||||
//! In case of other types returns empty Color.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Color возвращает цвет. \n
|
||||
//! Для типа Int возвращает цвет с целочисленным значением. \n
|
||||
//! Для остальных типов возвращает пустой Color.
|
||||
//!
|
||||
PIVariantTypes::Color PIVariant::toColor() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivColor) {PIVariantTypes::Color r; ba >> r; return r;}
|
||||
@@ -588,9 +818,19 @@ PIVariantTypes::Color PIVariant::toColor() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as IODevice
|
||||
* \details In case of IODevice type returns IODevice value. \n
|
||||
* In case of other types returns empty IODevice. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as IODevice
|
||||
//! \~russian Возвращает содержимое как IODevice
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of IODevice type returns IODevice value. \n
|
||||
//! In case of other types returns empty IODevice.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа IODevice возвращает IODevice. \n
|
||||
//! Для остальных типов возвращает пустой IODevice.
|
||||
//!
|
||||
PIVariantTypes::IODevice PIVariant::toIODevice() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivIODevice) {PIVariantTypes::IODevice r; ba >> r; return r;}
|
||||
@@ -598,9 +838,19 @@ PIVariantTypes::IODevice PIVariant::toIODevice() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as point
|
||||
* \details In case of PIPointd type returns point value. \n
|
||||
* In case of other types returns empty PIPointd. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as point
|
||||
//! \~russian Возвращает содержимое как точка
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Point type returns point value. \n
|
||||
//! In case of other types returns empty PIPointd.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Point возвращает точку. \n
|
||||
//! Для остальных типов возвращает пустую PIPointd.
|
||||
//!
|
||||
PIPointd PIVariant::toPoint() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivPoint) {PIPointd r; ba >> r; return r;}
|
||||
@@ -608,9 +858,19 @@ PIPointd PIVariant::toPoint() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as rect
|
||||
* \details In case of PIRectd type returns rect value. \n
|
||||
* In case of other types returns empty PIRectd. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as rect
|
||||
//! \~russian Возвращает содержимое как прямоугольник
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Rect type returns rect value. \n
|
||||
//! In case of other types returns empty PIRectd.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Rect возвращает прямоугольник. \n
|
||||
//! Для остальных типов возвращает пустой PIRectd.
|
||||
//!
|
||||
PIRectd PIVariant::toRect() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivRect) {PIRectd r; ba >> r; return r;}
|
||||
@@ -618,9 +878,19 @@ PIRectd PIVariant::toRect() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as line
|
||||
* \details In case of PILined type returns line value. \n
|
||||
* In case of other types returns empty PILined. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as line
|
||||
//! \~russian Возвращает содержимое как линия
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of Line type returns line value. \n
|
||||
//! In case of other types returns empty PILined.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа Line возвращает линию. \n
|
||||
//! Для остальных типов возвращает пустую PILined.
|
||||
//!
|
||||
PILined PIVariant::toLine() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivLine) {PILined r; ba >> r; return r;}
|
||||
@@ -628,9 +898,19 @@ PILined PIVariant::toLine() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as math vector
|
||||
* \details In case of PIMathVectord type returns rect value. \n
|
||||
* In case of other types returns empty PIMathVectord. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as math vector
|
||||
//! \~russian Возвращает содержимое как вектор
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of MathVector type returns rect value. \n
|
||||
//! In case of other types returns empty PIMathVectord.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа MathVector возвращает вектор. \n
|
||||
//! Для остальных типов возвращает пустой PIMathVectord.
|
||||
//!
|
||||
PIMathVectord PIVariant::toMathVector() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivMathVector) {PIMathVectord r; ba >> r; return r;}
|
||||
@@ -638,9 +918,19 @@ PIMathVectord PIVariant::toMathVector() const {
|
||||
}
|
||||
|
||||
|
||||
/** \brief Returns variant content as math matrix
|
||||
* \details In case of PIMathMatrixd type returns rect value. \n
|
||||
* In case of other types returns empty PIMathMatrixd. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as math matrix
|
||||
//! \~russian Возвращает содержимое как матрица
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of MathMatrix type returns rect value. \n
|
||||
//! In case of other types returns empty PIMathMatrixd.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Для типа MathMatrix возвращает матрицу. \n
|
||||
//! Для остальных типов возвращает пустую PIMathMatrixd.
|
||||
//!
|
||||
PIMathMatrixd PIVariant::toMathMatrix() const {
|
||||
PIByteArray ba(_content);
|
||||
if (_type == PIVariant::pivMathMatrix) {PIMathMatrixd r; ba >> r; return r;}
|
||||
|
||||
@@ -33,6 +33,23 @@
|
||||
#include "pimathmatrix.h"
|
||||
|
||||
|
||||
#ifdef DOXYGEN
|
||||
|
||||
//! \relatesalso PIVariant
|
||||
//! \~\brief
|
||||
//! \~english Macro to register type for using in %PIVariant
|
||||
//! \~russian Макрос для регистрации типа для использования в %PIVariant
|
||||
# define REGISTER_VARIANT(Typename)
|
||||
|
||||
//! \relatesalso PIVariant
|
||||
//! \~\brief
|
||||
//! \~english Macro to register type with namespace for using in %PIVariant
|
||||
//! \~russian Макрос для регистрации типа с пространством имен для использования в %PIVariant
|
||||
# define REGISTER_NS_VARIANT(Namespace, Typename)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef QNX
|
||||
# define CUSTOM_PIVARIANT
|
||||
#endif
|
||||
@@ -204,14 +221,16 @@ classname_to __PIVariantFunctions__<classname_from>::castVariant<classname_to>(c
|
||||
//! \ingroup Core
|
||||
//! \~\brief
|
||||
//! \~english Variant type.
|
||||
//! \~russian Вариантный тип.
|
||||
class PIP_EXPORT PIVariant {
|
||||
friend PICout operator <<(PICout s, const PIVariant & v);
|
||||
BINARY_STREAM_FRIEND(PIVariant);
|
||||
public:
|
||||
|
||||
//! Type of %PIVariant content
|
||||
//! \~english Type of %PIVariant content
|
||||
//! \~russian Тип содержимого %PIVariant
|
||||
enum Type {
|
||||
pivInvalid /** Invalid type , default type of empty contructor */ = 0 ,
|
||||
pivInvalid /** \~english Invalid type, default type of empty contructor \~russian Недействительный тип, также конструированный по умолчанию */ = 0 ,
|
||||
pivBool /** bool */ ,
|
||||
pivChar /** char */ ,
|
||||
pivUChar /** uchar */ ,
|
||||
@@ -244,205 +263,274 @@ public:
|
||||
pivMathVector /** PIMathVector<double> */ ,
|
||||
pivMathMatrix /** PIMathMatrix<double> */ ,
|
||||
pivLine /** PILine<double> */ ,
|
||||
pivCustom /** Custom */ = 0xFF
|
||||
pivCustom /** \~english Custom \~russian Свой тип */ = 0xFF
|
||||
};
|
||||
|
||||
//! Construct \a pivInvalid %PIVariant
|
||||
//! \~english Construct \a pivInvalid %PIVariant
|
||||
//! \~russian Создает \a pivInvalid %PIVariant
|
||||
PIVariant();
|
||||
|
||||
//! \~english Contructs a copy of %PIVariant.
|
||||
//! \~russian Создает копию %PIVariant.
|
||||
PIVariant(const PIVariant & v);
|
||||
|
||||
//! \~english Move constructor.
|
||||
//! \~russian Перемещающий конструктор.
|
||||
PIVariant(PIVariant && v);
|
||||
|
||||
//! Constructs %PIVariant from string
|
||||
//! \~english Constructs %PIVariant from string
|
||||
//! \~russian Создает %PIVariant из строки.
|
||||
PIVariant(const char * v) {initType(PIString(v));}
|
||||
|
||||
//! Constructs %PIVariant from boolean
|
||||
//! \~english Constructs %PIVariant from boolean
|
||||
//! \~russian Создает %PIVariant из логического значения.
|
||||
PIVariant(const bool v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from char
|
||||
//! \~english Constructs %PIVariant from char
|
||||
//! \~russian Создает %PIVariant из символа.
|
||||
PIVariant(const char v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from integer
|
||||
//! \~english Constructs %PIVariant from integer
|
||||
//! \~russian Создает %PIVariant из целого числа.
|
||||
PIVariant(const uchar v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from integer
|
||||
//! \~english Constructs %PIVariant from integer
|
||||
//! \~russian Создает %PIVariant из целого числа.
|
||||
PIVariant(const short v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from integer
|
||||
//! \~english Constructs %PIVariant from integer
|
||||
//! \~russian Создает %PIVariant из целого числа.
|
||||
PIVariant(const ushort v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from integer
|
||||
//! \~english Constructs %PIVariant from integer
|
||||
//! \~russian Создает %PIVariant из целого числа.
|
||||
PIVariant(const int & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from integer
|
||||
//! \~english Constructs %PIVariant from integer
|
||||
//! \~russian Создает %PIVariant из целого числа.
|
||||
PIVariant(const uint & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from integer
|
||||
//! \~english Constructs %PIVariant from integer
|
||||
//! \~russian Создает %PIVariant из целого числа.
|
||||
PIVariant(const llong & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from integer
|
||||
//! \~english Constructs %PIVariant from integer
|
||||
//! \~russian Создает %PIVariant из целого числа.
|
||||
PIVariant(const ullong & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from float
|
||||
//! \~english Constructs %PIVariant from float
|
||||
//! \~russian Создает %PIVariant из вещественного числа.
|
||||
PIVariant(const float & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from double
|
||||
//! \~english Constructs %PIVariant from double
|
||||
//! \~russian Создает %PIVariant из вещественного числа.
|
||||
PIVariant(const double & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from long double
|
||||
//! \~english Constructs %PIVariant from long double
|
||||
//! \~russian Создает %PIVariant из вещественного числа.
|
||||
PIVariant(const ldouble & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from bit array
|
||||
//! \~english Constructs %PIVariant from bit array
|
||||
//! \~russian Создает %PIVariant из массива битов.
|
||||
PIVariant(const PIBitArray & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from byte array
|
||||
//! \~english Constructs %PIVariant from byte array
|
||||
//! \~russian Создает %PIVariant из массива байтов.
|
||||
PIVariant(const PIByteArray & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from string
|
||||
//! \~english Constructs %PIVariant from string
|
||||
//! \~russian Создает %PIVariant из строки.
|
||||
PIVariant(const PIString & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from strings list
|
||||
//! \~english Constructs %PIVariant from strings list
|
||||
//! \~russian Создает %PIVariant из массива строк.
|
||||
PIVariant(const PIStringList & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from time
|
||||
//! \~english Constructs %PIVariant from time
|
||||
//! \~russian Создает %PIVariant из времени.
|
||||
PIVariant(const PITime & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from date
|
||||
//! \~english Constructs %PIVariant from date
|
||||
//! \~russian Создает %PIVariant из даты.
|
||||
PIVariant(const PIDate & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from date and time
|
||||
//! \~english Constructs %PIVariant from date and time
|
||||
//! \~russian Создает %PIVariant из даты и времени.
|
||||
PIVariant(const PIDateTime & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from system time
|
||||
//! \~english Constructs %PIVariant from system time
|
||||
//! \~russian Создает %PIVariant из системного времени.
|
||||
PIVariant(const PISystemTime & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from enum
|
||||
//! \~english Constructs %PIVariant from enum
|
||||
//! \~russian Создает %PIVariant из перечисления.
|
||||
PIVariant(const PIVariantTypes::Enum & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from file
|
||||
//! \~english Constructs %PIVariant from file
|
||||
//! \~russian Создает %PIVariant из файла.
|
||||
PIVariant(const PIVariantTypes::File & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from dir
|
||||
//! \~english Constructs %PIVariant from dir
|
||||
//! \~russian Создает %PIVariant из директории.
|
||||
PIVariant(const PIVariantTypes::Dir & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from color
|
||||
//! \~english Constructs %PIVariant from color
|
||||
//! \~russian Создает %PIVariant из цвета.
|
||||
PIVariant(const PIVariantTypes::Color & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from IODevice
|
||||
//! \~english Constructs %PIVariant from IODevice
|
||||
//! \~russian Создает %PIVariant из IODevice.
|
||||
PIVariant(const PIVariantTypes::IODevice & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from point
|
||||
//! \~english Constructs %PIVariant from point
|
||||
//! \~russian Создает %PIVariant из точки.
|
||||
PIVariant(const PIPointd & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from rect
|
||||
//! \~english Constructs %PIVariant from rect
|
||||
//! \~russian Создает %PIVariant из прямоугольника.
|
||||
PIVariant(const PIRectd & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from line
|
||||
//! \~english Constructs %PIVariant from line
|
||||
//! \~russian Создает %PIVariant из линии.
|
||||
PIVariant(const PILined & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from MathVector
|
||||
//! \~english Constructs %PIVariant from MathVector
|
||||
//! \~russian Создает %PIVariant из MathVector.
|
||||
PIVariant(const PIMathVectord & v) {initType(v);}
|
||||
|
||||
//! Constructs %PIVariant from MathMatrix
|
||||
//! \~english Constructs %PIVariant from MathMatrix
|
||||
//! \~russian Создает %PIVariant из MathMatrix.
|
||||
PIVariant(const PIMathMatrixd & v) {initType(v);}
|
||||
|
||||
|
||||
//! Set variant content and type to string
|
||||
//! \~english Set variant content and type to string
|
||||
//! \~russian Устанавливает значение и тип из строки
|
||||
void setValue(const char * v) {setValue(PIString(v));}
|
||||
|
||||
//! Set variant content and type to boolean
|
||||
//! \~english Set variant content and type to boolean
|
||||
//! \~russian Устанавливает значение и тип из
|
||||
void setValue(const bool v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to char
|
||||
//! \~english Set variant content and type to char
|
||||
//! \~russian Устанавливает значение и тип из символа
|
||||
void setValue(const char v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to integer
|
||||
//! \~english Set variant content and type to integer
|
||||
//! \~russian Устанавливает значение и тип из целого числа
|
||||
void setValue(const uchar v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to integer
|
||||
//! \~english Set variant content and type to integer
|
||||
//! \~russian Устанавливает значение и тип из целого числа
|
||||
void setValue(const short v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to integer
|
||||
//! \~english Set variant content and type to integer
|
||||
//! \~russian Устанавливает значение и тип из целого числа
|
||||
void setValue(const ushort v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to integer
|
||||
//! \~english Set variant content and type to integer
|
||||
//! \~russian Устанавливает значение и тип из целого числа
|
||||
void setValue(const int & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to integer
|
||||
//! \~english Set variant content and type to integer
|
||||
//! \~russian Устанавливает значение и тип из целого числа
|
||||
void setValue(const uint & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to integer
|
||||
//! \~english Set variant content and type to integer
|
||||
//! \~russian Устанавливает значение и тип из целого числа
|
||||
void setValue(const llong & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to integer
|
||||
//! \~english Set variant content and type to integer
|
||||
//! \~russian Устанавливает значение и тип из целого числа
|
||||
void setValue(const ullong & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to float
|
||||
//! \~english Set variant content and type to float
|
||||
//! \~russian Устанавливает значение и тип из вещественного числа
|
||||
void setValue(const float & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to double
|
||||
//! \~english Set variant content and type to double
|
||||
//! \~russian Устанавливает значение и тип из вещественного числа
|
||||
void setValue(const double & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to long double
|
||||
//! \~english Set variant content and type to long double
|
||||
//! \~russian Устанавливает значение и тип из вещественного числа
|
||||
void setValue(const ldouble & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to bit array
|
||||
//! \~english Set variant content and type to bit array
|
||||
//! \~russian Устанавливает значение и тип из массива битов
|
||||
void setValue(const PIBitArray & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to byte array
|
||||
//! \~english Set variant content and type to byte array
|
||||
//! \~russian Устанавливает значение и тип из массива байтов
|
||||
void setValue(const PIByteArray & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to string
|
||||
//! \~english Set variant content and type to string
|
||||
//! \~russian Устанавливает значение и тип из строки
|
||||
void setValue(const PIString & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to strings list
|
||||
//! \~english Set variant content and type to strings list
|
||||
//! \~russian Устанавливает значение и тип из массива строк
|
||||
void setValue(const PIStringList & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to time
|
||||
//! \~english Set variant content and type to time
|
||||
//! \~russian Устанавливает значение и тип из времени
|
||||
void setValue(const PITime & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to date
|
||||
//! \~english Set variant content and type to date
|
||||
//! \~russian Устанавливает значение и тип из даты
|
||||
void setValue(const PIDate & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to date and time
|
||||
//!
|
||||
//! \~english Set variant content and type to date and time
|
||||
//! \~russian Устанавливает значение и тип из даты и времени
|
||||
void setValue(const PIDateTime & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to system time
|
||||
//! \~english Set variant content and type to system time
|
||||
//! \~russian Устанавливает значение и тип из системного времени
|
||||
void setValue(const PISystemTime & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to enum
|
||||
//! \~english Set variant content and type to enum
|
||||
//! \~russian Устанавливает значение и тип из перечисления
|
||||
void setValue(const PIVariantTypes::Enum & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to file
|
||||
//! \~english Set variant content and type to file
|
||||
//! \~russian Устанавливает значение и тип из файла
|
||||
void setValue(const PIVariantTypes::File & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to dir
|
||||
//! \~english Set variant content and type to dir
|
||||
//! \~russian Устанавливает значение и тип из директории
|
||||
void setValue(const PIVariantTypes::Dir & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to color
|
||||
//! \~english Set variant content and type to color
|
||||
//! \~russian Устанавливает значение и тип из цвета
|
||||
void setValue(const PIVariantTypes::Color & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to IODevice
|
||||
//! \~english Set variant content and type to IODevice
|
||||
//! \~russian Устанавливает значение и тип из IODevice
|
||||
void setValue(const PIVariantTypes::IODevice & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to point
|
||||
//! \~english Set variant content and type to point
|
||||
//! \~russian Устанавливает значение и тип из точки
|
||||
void setValue(const PIPointd & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to rect
|
||||
//! \~english Set variant content and type to rect
|
||||
//! \~russian Устанавливает значение и тип из прямоугольника
|
||||
void setValue(const PIRectd & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to line
|
||||
//! \~english Set variant content and type to line
|
||||
//! \~russian Устанавливает значение и тип из линии
|
||||
void setValue(const PILined & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to math vector
|
||||
//! \~english Set variant content and type to math vector
|
||||
//! \~russian Устанавливает значение и тип из вектора
|
||||
void setValue(const PIMathVectord & v) {initType(v);}
|
||||
|
||||
//! Set variant content and type to math matrix
|
||||
//! \~english Set variant content and type to math matrix
|
||||
//! \~russian Устанавливает значение и тип из матрицы
|
||||
void setValue(const PIMathMatrixd & v) {initType(v);}
|
||||
|
||||
|
||||
//! Set current value from string without change type
|
||||
//! \~english Set current value from string without change type
|
||||
//! \~russian Устанавливает текущее значение из строки без изменения типа
|
||||
void setValueFromString(const PIString & v);
|
||||
|
||||
|
||||
@@ -472,102 +560,189 @@ public:
|
||||
PIMathMatrixd toMathMatrix() const;
|
||||
|
||||
|
||||
/** \brief Returns variant content as custom type
|
||||
* \details In case of known types this function equivalent \a to<Type> function. \n
|
||||
* Otherwise returns content as type T. */
|
||||
//! \~\brief
|
||||
//! \~english Returns variant content as custom type
|
||||
//! \~russian Возвращает содержимое в качестве своего типа
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of known types this function equivalent \a to<Type> function. \n
|
||||
//! Otherwise returns content as type T only if this type was set earlier.
|
||||
//! \~russian
|
||||
//! Для стандартных типов эквиваленстно методу \a to<Type>. \n
|
||||
//! Для других возвращает тип T только если он был установлен ранее.
|
||||
template<typename T>
|
||||
T value() const {return getAsValue<T>(*this);}
|
||||
|
||||
//! Assign operator
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIVariant & v);
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(PIVariant && v);
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const char * v) {setValue(PIString(v)); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const bool v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const char v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const uchar v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const short v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const ushort v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const int & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const uint & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const llong & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const ullong & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const float & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const double & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const ldouble & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIBitArray & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIByteArray & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIString & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIStringList & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PITime & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIDate & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIDateTime & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PISystemTime & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIVariantTypes::Enum & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIVariantTypes::File & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIVariantTypes::Dir & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIVariantTypes::Color & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIVariantTypes::IODevice & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIPointd & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIRectd & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PILined & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIMathVectord & v) {setValue(v); return *this;}
|
||||
//! Assign operator
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariant & operator =(const PIMathMatrixd & v) {setValue(v); return *this;}
|
||||
|
||||
|
||||
//! Compare operator
|
||||
//! \~english Compare operator. Check type and content.
|
||||
//! \~russian Оператор сравнения. Сравнивает тип и содержимое.
|
||||
bool operator ==(const PIVariant & v) const;
|
||||
//! Compare operator
|
||||
|
||||
//! \~english Compare operator. Check type and content.
|
||||
//! \~russian Оператор сравнения. Сравнивает тип и содержимое.
|
||||
bool operator !=(const PIVariant & v) const {return !(*this == v);}
|
||||
|
||||
|
||||
//! Returns type of variant content
|
||||
//! \~english Returns type of variant content.
|
||||
//! \~russian Возвращает тип значения.
|
||||
PIVariant::Type type() const {return _type;}
|
||||
|
||||
//! Returns type name of variant content
|
||||
//! \~english Returns type name of variant content.
|
||||
//! \~russian Возвращает имя типа значения.
|
||||
PIString typeName() const;
|
||||
|
||||
|
||||
//! Returns \b true if type is not Invalid
|
||||
//! \~english Returns if type is not \a pivInvalid.
|
||||
//! \~russian Возвращает не является ли тип \a pivInvalid.
|
||||
bool isValid() const {return _type != PIVariant::pivInvalid;}
|
||||
|
||||
//! \~english Swaps with other %PIVariant.
|
||||
//! \~russian Меняет с другим %PIVariant.
|
||||
void swap(PIVariant & v);
|
||||
|
||||
|
||||
/** \brief Returns new variant from custom type
|
||||
* \details In case of known types this function equivalent \a PIVariant(T) constructors. \n
|
||||
* Otherwise returns variant with content \a v and type Custom. */
|
||||
//! \~\brief
|
||||
//! \~english Returns new %PIVariant from custom type value.
|
||||
//! \~russian Возвращает новый %PIVariant из значения своего типа.
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In case of known types this function equivalent \a PIVariant() constructors. \n
|
||||
//! Otherwise returns variant with content "v" and type \a pivCustom.
|
||||
//! \~russian
|
||||
//! Для стандартных типов эквиваленстно конструктору \a PIVariant(). \n
|
||||
//! Для других устанавливает содержимое из "v" и тип \a pivCustom.
|
||||
template <typename T>
|
||||
static PIVariant fromValue(const T & v) {
|
||||
PIVariant ret;
|
||||
@@ -596,10 +771,12 @@ public:
|
||||
}
|
||||
|
||||
|
||||
//! Returns type from name
|
||||
//! \~english Returns type from its name.
|
||||
//! \~russian Возвращает тип из его названия.
|
||||
static PIVariant::Type typeFromName(const PIString & tname);
|
||||
|
||||
//! Returns type name
|
||||
//! \~english Returns type name.
|
||||
//! \~russian Возвращает имя типа.
|
||||
static PIString typeName(PIVariant::Type type);
|
||||
|
||||
private:
|
||||
@@ -808,6 +985,9 @@ BINARY_STREAM_READ(PIVariant) {
|
||||
return s;
|
||||
}
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
inline PICout operator <<(PICout s, const PIVariant & v) {
|
||||
s.space(); s.saveAndSetControls(0);
|
||||
s << "PIVariant(" << v.typeName();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*! \file pivariantsimple.h
|
||||
* \ingroup Core
|
||||
* \brief
|
||||
* \~english Variant simple type
|
||||
* \~english Simple variant type
|
||||
* \~russian Простой вариативный тип
|
||||
*/
|
||||
/*
|
||||
@@ -62,9 +62,28 @@ public:
|
||||
};
|
||||
|
||||
|
||||
//! \addtogroup Core
|
||||
//! \{
|
||||
//! \~\class PIVariantSimple pivariantsimple.h
|
||||
//! \~\brief
|
||||
//! \~english Simple variant type.
|
||||
//! \~russian Простой вариативный тип.
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//!
|
||||
//! \~russian
|
||||
//!
|
||||
//! \}
|
||||
class PIVariantSimple {
|
||||
public:
|
||||
|
||||
//! \~english Construct null %PIVariantSimple
|
||||
//! \~russian Создает пустой %PIVariantSimple
|
||||
PIVariantSimple() {ptr = 0; f = 0;}
|
||||
|
||||
//! \~english Contructs a copy of %PIVariantSimple.
|
||||
//! \~russian Создает копию %PIVariantSimple.
|
||||
PIVariantSimple(const PIVariantSimple & v) {
|
||||
ptr = 0;
|
||||
f = v.f;
|
||||
@@ -73,6 +92,8 @@ public:
|
||||
}
|
||||
~PIVariantSimple() {destroy();}
|
||||
|
||||
//! \~english Assign operator.
|
||||
//! \~russian Оператор присваивания.
|
||||
PIVariantSimple & operator=(const PIVariantSimple & v) {
|
||||
destroy();
|
||||
f = v.f;
|
||||
@@ -81,6 +102,8 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
//! \~english Set value to "v".
|
||||
//! \~russian Устанавливает значение в "v".
|
||||
template <typename T>
|
||||
void setValue(const T & v) {
|
||||
if (f) {
|
||||
@@ -94,6 +117,18 @@ public:
|
||||
f->newT(ptr, (const void *)&v);
|
||||
}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Returns value as type "T".
|
||||
//! \~russian Возвращает значение как тип "T".
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! In contrast of PIVariant this class has strong check of type.
|
||||
//! Returns value only if this type was set before.
|
||||
//!
|
||||
//! \~russian
|
||||
//! В отличии от PIVariant этот класс строго проверяет типы.
|
||||
//! Возвращает значение только если этот же тип был установлен ранее.
|
||||
//!
|
||||
template <typename T>
|
||||
T value() const {
|
||||
if (!f) return T();
|
||||
@@ -102,6 +137,8 @@ public:
|
||||
return *(T*)(ptr);
|
||||
}
|
||||
|
||||
//! \~english Returns %PIVariantSimple with value "v".
|
||||
//! \~russian Возвращает %PIVariantSimple со значением "v".
|
||||
template <typename T>
|
||||
static PIVariantSimple fromValue(const T & v) {
|
||||
PIVariantSimple ret;
|
||||
|
||||
@@ -23,8 +23,9 @@
|
||||
# include "piiodevice.h"
|
||||
#endif
|
||||
|
||||
|
||||
int PIVariantTypes::Enum::selectedValue() const {
|
||||
piForeachC (Enumerator & e, enum_list)
|
||||
for (const auto & e: enum_list)
|
||||
if (e.name == selected)
|
||||
return e.value;
|
||||
return 0;
|
||||
@@ -32,7 +33,7 @@ int PIVariantTypes::Enum::selectedValue() const {
|
||||
|
||||
|
||||
bool PIVariantTypes::Enum::selectValue(int v) {
|
||||
piForeachC (Enumerator & e, enum_list)
|
||||
for (const auto & e: enum_list)
|
||||
if (e.value == v) {
|
||||
selected = e.name;
|
||||
return true;
|
||||
@@ -42,7 +43,7 @@ bool PIVariantTypes::Enum::selectValue(int v) {
|
||||
|
||||
|
||||
bool PIVariantTypes::Enum::selectName(const PIString & n) {
|
||||
piForeachC (Enumerator & e, enum_list)
|
||||
for (const auto & e: enum_list)
|
||||
if (e.name == n) {
|
||||
selected = e.name;
|
||||
return true;
|
||||
@@ -52,7 +53,7 @@ bool PIVariantTypes::Enum::selectName(const PIString & n) {
|
||||
|
||||
|
||||
int PIVariantTypes::Enum::value(const PIString & n) const {
|
||||
piForeachC (Enumerator & e, enum_list)
|
||||
for (const auto & e: enum_list)
|
||||
if (e.name == n)
|
||||
return e.value;
|
||||
return 0;
|
||||
@@ -60,7 +61,7 @@ int PIVariantTypes::Enum::value(const PIString & n) const {
|
||||
|
||||
|
||||
PIString PIVariantTypes::Enum::name(int v) const {
|
||||
piForeachC (Enumerator & e, enum_list)
|
||||
for (const auto & e: enum_list)
|
||||
if (e.value == v)
|
||||
return e.name;
|
||||
return PIString();
|
||||
@@ -69,7 +70,7 @@ PIString PIVariantTypes::Enum::name(int v) const {
|
||||
|
||||
PIVector<int> PIVariantTypes::Enum::values() const {
|
||||
PIVector<int> ret;
|
||||
piForeachC (Enumerator & e, enum_list)
|
||||
for (const auto & e: enum_list)
|
||||
ret << e.value;
|
||||
return ret;
|
||||
}
|
||||
@@ -77,7 +78,7 @@ PIVector<int> PIVariantTypes::Enum::values() const {
|
||||
|
||||
PIStringList PIVariantTypes::Enum::names() const {
|
||||
PIStringList ret;
|
||||
piForeachC (Enumerator & e, enum_list)
|
||||
for (const auto & e: enum_list)
|
||||
ret << e.name;
|
||||
return ret;
|
||||
}
|
||||
@@ -151,7 +152,7 @@ PIVariantTypes::Enum & PIVariantTypes::Enum::operator <<(const PIString & v) {
|
||||
|
||||
|
||||
PIVariantTypes::Enum & PIVariantTypes::Enum::operator <<(const PIStringList & v) {
|
||||
piForeachC (PIString & s, v)
|
||||
for (const auto & s: v)
|
||||
(*this) << s;
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -32,148 +32,281 @@
|
||||
class PIPropertyStorage;
|
||||
|
||||
|
||||
//! \ingroup Core
|
||||
//! \relatesalso PIVariant
|
||||
//! \~english Namespace contains several types for PIVariant
|
||||
//! \~russian Пространство имен содержит некоторые типы для PIVariant
|
||||
namespace PIVariantTypes {
|
||||
|
||||
/**
|
||||
* \brief name-value pair
|
||||
*/
|
||||
|
||||
//! \addtogroup Core
|
||||
//! \{
|
||||
//! \~\struct Enumerator pivarianttypes.h
|
||||
//! \~\brief
|
||||
//! \~english Name-value pair.
|
||||
//! \~russian Пара имя-значение.
|
||||
//! \}
|
||||
struct PIP_EXPORT Enumerator {
|
||||
Enumerator(int v = 0, const PIString & n = PIString()): value(v), name(n) {}
|
||||
|
||||
//! \~english Value.
|
||||
//! \~russian Значение.
|
||||
int value;
|
||||
|
||||
//! \~english Name.
|
||||
//! \~russian Имя.
|
||||
PIString name;
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief Collection of PIVariantTypes::Enumerator. It's replace classic c-style enum.
|
||||
* Contains elements with unique name and not uniqueue values.
|
||||
*/
|
||||
|
||||
//! \addtogroup Core
|
||||
//! \{
|
||||
//! \~\struct Enum pivarianttypes.h
|
||||
//! \~\brief
|
||||
//! \~english Collection of PIVariantTypes::Enumerator.
|
||||
//! \~russian Набор PIVariantTypes::Enumerator.
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! This class represents classic c-style enum.
|
||||
//! Contains elements with unique names and not uniqueue values, also
|
||||
//! name of enum and selected member.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Этот класс представляет классический c-style enum.
|
||||
//! Содержит элементы с уникальными именами и неуникальными значениями,
|
||||
//! а также имя перечисления и выбранного элемента.
|
||||
//!
|
||||
//! \}
|
||||
struct PIP_EXPORT Enum {
|
||||
Enum(const PIString & n = PIString()): enum_name(n) {}
|
||||
|
||||
/**
|
||||
* \brief Find selected value.
|
||||
* @return selected value, otherwrise 0
|
||||
*/
|
||||
//! \~english Returns selected value, or 0 if there is no name in members.
|
||||
//! \~russian Возвращает выбранное значение, или 0, если выбранного имени нет в элементах.
|
||||
int selectedValue() const;
|
||||
|
||||
/**
|
||||
* \brief Get selected name
|
||||
* @return selected name, otherwrise empty PIString
|
||||
*/
|
||||
//! \~english Returns selected name.
|
||||
//! \~russian Возвращает выбранное имя.
|
||||
PIString selectedName() const {return selected;}
|
||||
|
||||
/**
|
||||
* \brief Select value if exists in Enum. If Enum contains several PIVariantTypes::Enumerator with same values,
|
||||
* first PIVariantTypes::Enumerator will selected
|
||||
* @param v value for selection
|
||||
* @return true if value exists in Enum, false otherwrise
|
||||
*/
|
||||
//! \~\brief
|
||||
//! \~english Select value if exists in Enum.
|
||||
//! \~russian Выбирает значение, если оно существует в Enum.
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! If Enum contains several PIVariantTypes::Enumerator with same values,
|
||||
//! first PIVariantTypes::Enumerator will selected.
|
||||
//! Returns if value exists in Enum.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Если Enum содержит несколько PIVariantTypes::Enumerator с этим значением,
|
||||
//! то будет выбран первый.
|
||||
//! Возвращает существовал ли такой Enum.
|
||||
//!
|
||||
bool selectValue(int v);
|
||||
|
||||
/**
|
||||
* \brief Select name if exists in enum
|
||||
* @param n name for selection
|
||||
* @return true if name exists in Enum, false otherwrise
|
||||
*/
|
||||
//! \~\brief
|
||||
//! \~english Select name if exists in Enum.
|
||||
//! \~russian Выбирает имя, если оно существует в Enum.
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! Returns if name exists in Enum.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Возвращает существовал ли такой Enum.
|
||||
//!
|
||||
bool selectName(const PIString & n);
|
||||
|
||||
/**
|
||||
* \brief Find PIVariantTypes::Enumerator with specific name and return it value
|
||||
* @param n name for search
|
||||
* @return value of founded PIVariantTypes::Enumerator, 0 otherwrise
|
||||
*/
|
||||
//! \~english Find PIVariantTypes::Enumerator with name "n" and return it value, otherwise 0.
|
||||
//! \~russian Ищет PIVariantTypes::Enumerator с именем "n" и возвращает его значение, иначе 0.
|
||||
int value(const PIString & n) const;
|
||||
|
||||
/**
|
||||
* \brief Find first PIVariantTypes::Enumerator with specific value and return it name
|
||||
* @param v value for search
|
||||
* @return name of founded PIVariantTypes::Enumerator, empty string otherwrise
|
||||
*/
|
||||
//! \~english Find PIVariantTypes::Enumerator with value "v" and return it name, otherwise empty string.
|
||||
//! \~russian Ищет PIVariantTypes::Enumerator со значением "v" и возвращает его имя, иначе пустую строку.
|
||||
PIString name(int v) const;
|
||||
|
||||
/**
|
||||
* \brief Make vector of Enum values
|
||||
*/
|
||||
//! \~english Returns all members values.
|
||||
//! \~russian Возвращает все значения членов.
|
||||
PIVector<int> values() const;
|
||||
|
||||
/**
|
||||
* \brief Make vector of Enum names
|
||||
*/
|
||||
//! \~english Returns all members names.
|
||||
//! \~russian Возвращает все имена членов.
|
||||
PIStringList names() const;
|
||||
|
||||
/**
|
||||
* \brief Add PIVariantTypes::Enumerator to Enum
|
||||
*/
|
||||
//! \~english Add PIVariantTypes::Enumerator to Enum.
|
||||
//! \~russian Добавляет в Enum PIVariantTypes::Enumerator.
|
||||
Enum & operator <<(const Enumerator & v);
|
||||
|
||||
/**
|
||||
* \brief Add PIVariantTypes::Enumerator element to Enum. Element contains specific name and value more per
|
||||
* unit then last element. If the is no elements, contains zero value.
|
||||
* @param v name for new PIVariantTypes::Enumerator element
|
||||
*/
|
||||
//! \~english Add PIVariantTypes::Enumerator with name "v" and value of last element + 1, otherwise 0.
|
||||
//! \~russian Добавляет PIVariantTypes::Enumerator с именем "v" и значением последнего элемента + 1, иначе 0.
|
||||
Enum & operator <<(const PIString & v);
|
||||
|
||||
/**
|
||||
* \brief Add PIVariantTypes::Enumerator element for each name in vector
|
||||
*/
|
||||
//! \~english Add PIVariantTypes::Enumerator element for each name of vector.
|
||||
//! \~russian Добавляет PIVariantTypes::Enumerator для каждой строки из массива.
|
||||
Enum & operator <<(const PIStringList & v);
|
||||
|
||||
/**
|
||||
* \brief Return true if Enum is empty
|
||||
*/
|
||||
//! \~english Returns if Enum is empty.
|
||||
//! \~russian Возвращает пустой ли Enum.
|
||||
bool isEmpty() const {return enum_list.isEmpty();}
|
||||
|
||||
|
||||
//! \~english Name of Enum.
|
||||
//! \~russian Имя Enum.
|
||||
PIString enum_name;
|
||||
|
||||
//! \~english Name of selected element.
|
||||
//! \~russian Имя выбранного элемента.
|
||||
PIString selected;
|
||||
|
||||
//! \~english Members.
|
||||
//! \~russian Элементы.
|
||||
PIVector<Enumerator> enum_list;
|
||||
};
|
||||
|
||||
|
||||
//! \addtogroup Core
|
||||
//! \{
|
||||
//! \~\struct File pivarianttypes.h
|
||||
//! \~\brief
|
||||
//! \~english File location description.
|
||||
//! \~russian Описание положения файла.
|
||||
//! \}
|
||||
struct PIP_EXPORT File {
|
||||
File(const PIString & p = PIString(), const PIString & f = PIString(), bool abs = false, bool save_mode = false):
|
||||
file(p), filter(f), is_abs(abs), is_save(save_mode) {}
|
||||
|
||||
//! \~english Returns path.
|
||||
//! \~russian Возвращает путь.
|
||||
PIString toString() const {return file;}
|
||||
|
||||
//! \~english Path.
|
||||
//! \~russian Путь.
|
||||
PIString file;
|
||||
|
||||
//! \~english Name filter.
|
||||
//! \~russian Фильтр имени.
|
||||
PIString filter;
|
||||
|
||||
//! \~english If path is absolute.
|
||||
//! \~russian Абсолютный ли путь.
|
||||
bool is_abs;
|
||||
|
||||
//! \~english If save is available.
|
||||
//! \~russian Доступно ли сохранение.
|
||||
bool is_save;
|
||||
};
|
||||
|
||||
|
||||
//! \addtogroup Core
|
||||
//! \{
|
||||
//! \~\struct Dir pivarianttypes.h
|
||||
//! \~\brief
|
||||
//! \~english Directory description.
|
||||
//! \~russian Описание директории.
|
||||
//! \}
|
||||
struct PIP_EXPORT Dir {
|
||||
Dir(const PIString & d = PIString(), bool abs = false):
|
||||
dir(d), is_abs(abs) {}
|
||||
|
||||
//! \~english Returns path.
|
||||
//! \~russian Возвращает путь.
|
||||
PIString toString() const {return dir;}
|
||||
|
||||
//! \~english Path.
|
||||
//! \~russian Путь.
|
||||
PIString dir;
|
||||
|
||||
//! \~english If path is absolute.
|
||||
//! \~russian Абсолютный ли путь.
|
||||
bool is_abs;
|
||||
};
|
||||
|
||||
|
||||
//! \addtogroup Core
|
||||
//! \{
|
||||
//! \~\struct Color pivarianttypes.h
|
||||
//! \~\brief
|
||||
//! \~english 32-bits color.
|
||||
//! \~russian 32-битный цвет.
|
||||
//! \}
|
||||
struct PIP_EXPORT Color {
|
||||
Color(uint v = 0) {rgba = v;}
|
||||
|
||||
//! \~english Integer color.
|
||||
//! \~russian Целочисленный цвет.
|
||||
uint rgba;
|
||||
};
|
||||
|
||||
|
||||
//! \addtogroup Core
|
||||
//! \{
|
||||
//! \~\struct IODevice pivarianttypes.h
|
||||
//! \~\brief
|
||||
//! \~english Input/output device description.
|
||||
//! \~russian Описание устройства ввода/вывода.
|
||||
//! \}
|
||||
struct PIP_EXPORT IODevice {
|
||||
IODevice();
|
||||
|
||||
//! \~english Serialize "ps" and set it to "props".
|
||||
//! \~russian Сериализует "ps" и устанавливает "props".
|
||||
void set(const PIPropertyStorage & ps);
|
||||
|
||||
//! \~english Deserialize "props" and returns it.
|
||||
//! \~russian Десериализует "props" и возвращает свойства.
|
||||
PIPropertyStorage get() const;
|
||||
|
||||
//! \~english Returns string for PICout.
|
||||
//! \~russian Возвращает строку для PICout.
|
||||
PIString toPICout() const;
|
||||
|
||||
//! \~english PIIODevice prefix, see \ref PIIODevice_sec7.
|
||||
//! \~russian Префикс PIIODevice, см. \ref PIIODevice_sec7.
|
||||
PIString prefix;
|
||||
int mode; // PIIODevice::DeviceMode
|
||||
int options; // PIIODevice::DeviceOptions
|
||||
|
||||
//! PIIODevice::DeviceMode.
|
||||
int mode;
|
||||
|
||||
//! PIIODevice::DeviceOptions.
|
||||
int options;
|
||||
|
||||
//! \~english Serialized properties.
|
||||
//! \~russian Сериализованные свойства.
|
||||
PIByteArray props;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
inline PICout operator <<(PICout s, const PIVariantTypes::Enumerator & v) {s << v.name << "(" << v.value << ")"; return s;}
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
inline PICout operator <<(PICout s, const PIVariantTypes::Enum & v) {s << "Enum(" << v.selectedValue() << "=" << v.selectedName() << ")"; return s;}
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
inline PICout operator <<(PICout s, const PIVariantTypes::File & v) {s << "File(\"" << v.file << "\")"; return s;}
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
inline PICout operator <<(PICout s, const PIVariantTypes::Dir & v) {s << "Dir(\"" << v.dir << "\")"; return s;}
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
inline PICout operator <<(PICout s, const PIVariantTypes::Color & v) {s.saveControls(); s << PICoutManipulators::Hex << "Color(#" << v.rgba << ")"; s.restoreControls(); return s;}
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
inline PICout operator <<(PICout s, const PIVariantTypes::IODevice & v) {s << v.toPICout(); return s;}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user