ComSDK
|
Мультитиповой словарь Подробнее...
#include <anymap.h>
Открытые типы | |
enum | AnyDataType { adtUndefined, adtInt, adtDouble, adtString, adtVectorString, adtVectorInt, adtObject, adtAnyMap } |
enum | AnyMapType { amtSingleValue, amtMap } |
Тип Anymap. Подробнее... | |
typedef std::map< std::string, Anymap > | StrAnyMap |
Открытые члены | |
Anymap (boost::any p_selfData) | |
Anymap & | operator= (boost::any p_value) |
Anymap & | operator= (const char *p_charStr) |
Anymap & | operator= (const Anymap &p_value) |
Anymap & | operator= (const void *p_voidPointer) |
template<typename T > | |
Anymap & | operator= (T *p_pointer) |
Anymap & | operator[] (const std::string &p_key) |
const Anymap & | operator() (const std::string &p_key) const |
std::string | toStdString (bool *o_ok=0) const |
int | toInt (bool *o_ok=0) const |
double | toDouble (bool *o_ok=0) const |
void * | toVoid (bool *o_ok=0) const |
template<typename T > | |
T * | toPointer (bool *o_ok=0) const |
template<typename T > | |
std::vector< T > | toStdVector (bool *o_ok=0) const |
void | deleteElement () |
void | deleteAllElements () |
Anymap & | get (const std::string &p_key) |
const Anymap & | get_const (const std::string &p_key) const |
Anymap & | set (const std::string &p_key, boost::any p_value) |
Anymap & | set (const std::string &p_key, const char *p_charStr) |
Anymap & | set (const std::string &p_key, const Anymap &p_value) |
Anymap & | set (const std::string &p_key, const void *p_voidPointer) |
bool | isSet (const std::string &p_key) const |
std::vector< std::string > | keys () const |
bool | isSingleValued () const |
AnyDataType | getSelfDataType () const |
AnyDataType | getDataTypeByKey (const std::string &p_key) const |
void | printAsText (const std::string &p_fileName, const std::string &p_precStr="") const |
StrAnyMap & | data () |
template<typename T > | |
AnyDataType | getDataType () const |
template<typename T > | |
AnyMapType | getAnyMapType (const T &) const |
template<typename T > | |
T | toType (bool *o_ok=0) const |
void | printAnyMap (std::ofstream &p_outFile, std::string p_preStr="") const |
template<> | |
Anymap::AnyDataType | getDataType () const |
template<> | |
Anymap::AnyDataType | getDataType () const |
template<> | |
Anymap::AnyDataType | getDataType () const |
template<> | |
Anymap::AnyDataType | getDataType () const |
template<> | |
Anymap::AnyDataType | getDataType () const |
Друзья | |
MAC_DLLEXPORT std::ostream & | operator<< (std::ostream &o_out, const Anymap &p_anymap) |
MAC_DLLEXPORT std::istream & | operator>> (std::istream &o_in, Anymap &o_anymap) |
Мультитиповой словарь
Класс позволяет пользоваться интерфейсом, схожим с std::map, где каждому строковому (std::string) ключу сопоставляется произвольный тип данных (включая C-строки)
Тип данных, хранимый в собственном значении Anymap
требуется переделать на что-то более гибкое
вектора должны быть обобщены
Тип Anymap.
Элементы перечислений | |
---|---|
amtSingleValue |
Одиночное значение |
amtMap |
Словарь |
|
inline |
void com::Anymap::deleteAllElements | ( | ) |
Рекурсивно удаляет все данные, хранящиеся в Anymap
void com::Anymap::deleteElement | ( | ) |
Удаляет значение, принадлежащее данному Anymap
Anymap & com::Anymap::get | ( | const std::string & | p_key | ) |
const Anymap & com::Anymap::get_const | ( | const std::string & | p_key | ) | const |
Возвращает константную ссылку на данные, хранящиеся по ключу
[in] | p_key | Ключ |
AnyMapType com::Anymap::getAnyMapType | ( | const T & | ) | const |
Шаблонная функция, возвращающая тип Anymap
|
inline |
Шаблонная функция, возвращающая тип данных в собственном значении
Anymap::AnyDataType com::Anymap::getDataTypeByKey | ( | const std::string & | p_key | ) | const |
Возвращает тип значения, соответствующий AnyDataType, по ключу
[in] | p_key | Ключ |
Anymap::AnyDataType com::Anymap::getSelfDataType | ( | ) | const |
Возвращает тип текущего AnyMap, соответствующий AnyDataType
bool com::Anymap::isSet | ( | const std::string & | p_key | ) | const |
Проверяет, задан ли указанный ключ
[in] | p_key | Ключ |
bool com::Anymap::isSingleValued | ( | ) | const |
Определяет, является ли экземпляр класса single-valued
std::vector< std::string > com::Anymap::keys | ( | ) | const |
Возвращает список всех ключей
const Anymap & com::Anymap::operator() | ( | const std::string & | p_key | ) | const |
Перегрузка оператора (), позволяющего получить константную ссылку на значение в виде Anymap по ключу
[in] | p_key | Ключ |
Anymap & com::Anymap::operator= | ( | boost::any | p_value | ) |
Перегрузка оператора присваивания для случаев boost::any, const char*, Anymap, шаблонного T* и const void*
Anymap & com::Anymap::operator[] | ( | const std::string & | p_key | ) |
Перегрузка оператора [], позволяющего получить ссылку на значение в виде Anymap по ключу
[in] | p_key | Ключ |
void com::Anymap::printAnyMap | ( | std::ofstream & | p_outFile, |
std::string | p_preStr = "" |
||
) | const |
void com::Anymap::printAsText | ( | const std::string & | p_fileName, |
const std::string & | p_precStr = "" |
||
) | const |
Anymap & com::Anymap::set | ( | const std::string & | p_key, |
boost::any | p_value | ||
) |
Добавляет значение по ключу
[in] | p_key | Ключ |
[in] | p_value | Значение |
Anymap & com::Anymap::set | ( | const std::string & | p_key, |
const char * | p_charStr | ||
) |
Добавляет строковое значение по ключу. Отдельная функция создана из-за особенностей boost::any
[in] | p_key | Ключ |
[in] | p_charStr | C-строка |
Добавляет значение в виде Anymap по ключу
[in] | p_key | Ключ |
[in] | p_value | Значение |
Anymap & com::Anymap::set | ( | const std::string & | p_key, |
const void * | p_voidPointer | ||
) |
Добавляет указатель на void по ключу. С его помощью можно хранить указатели на любые другие типы
[in] | p_key | Ключ |
[in] | p_voidPointer | Указатель на void |
double com::Anymap::toDouble | ( | bool * | o_ok = 0 | ) | const |
Переводит значение, хранящееся в Anymap, в double
[out] | o_ok | Указатель на переменную, в которой будет указано, успешно ли прошел перевод |
int com::Anymap::toInt | ( | bool * | o_ok = 0 | ) | const |
Переводит значение, хранящееся в Anymap, в int
[out] | o_ok | Указатель на переменную, в которой будет указано, успешно ли прошел перевод |
T * com::Anymap::toPointer | ( | bool * | o_ok = 0 | ) | const |
Переводит значение, хранящееся в Anymap, в шаблонный T *
[out] | o_ok | Указатель на переменную, в которой будет указано, успешно ли прошел перевод |
std::string com::Anymap::toStdString | ( | bool * | o_ok = 0 | ) | const |
Переводит значение, хранящееся в Anymap, в std::string
[out] | o_ok | Указатель на переменную, в которой будет указано, успешно ли прошел перевод |
std::vector< T > com::Anymap::toStdVector | ( | bool * | o_ok = 0 | ) | const |
Переводит значение, хранящееся в Anymap, в шаблонный std::vector< T >
[out] | o_ok | Указатель на переменную, в которой будет указано, успешно ли прошел перевод |
T com::Anymap::toType | ( | bool * | o_ok = 0 | ) | const |
Шаблонная функция для перевода в произвольный тип
void * com::Anymap::toVoid | ( | bool * | o_ok = 0 | ) | const |
Переводит значение, хранящееся в Anymap, в void *
[out] | o_ok | Указатель на переменную, в которой будет указано, успешно ли прошел перевод |
|
friend |
Перегрузка оператора записи в поток. Может использоваться как для бинарной, так и для текстовой сериализации
[in,out] | o_out | Поток, в который будет будет произведена запись |
[in] | p_anymap | Объект Anymap для записи |
|
friend |
Перегрузка оператора чтения из потока. Может использоваться как для бинарной, так и для текстовой сериализации
[in,out] | o_in | Поток, из которого производится чтение |
[in] | p_anymap | Объект Anymap, в который производится чтение |