ComSDK
 Указатель Классы Пространства имен Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
Открытые типы | Открытые члены | Друзья | Полный список членов класса
Класс com::Anymap

Мультитиповой словарь Подробнее...

#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)
 
Anymapoperator= (boost::any p_value)
 
Anymapoperator= (const char *p_charStr)
 
Anymapoperator= (const Anymap &p_value)
 
Anymapoperator= (const void *p_voidPointer)
 
template<typename T >
Anymapoperator= (T *p_pointer)
 
Anymapoperator[] (const std::string &p_key)
 
const Anymapoperator() (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 ()
 
Anymapget (const std::string &p_key)
 
const Anymapget_const (const std::string &p_key) const
 
Anymapset (const std::string &p_key, boost::any p_value)
 
Anymapset (const std::string &p_key, const char *p_charStr)
 
Anymapset (const std::string &p_key, const Anymap &p_value)
 
Anymapset (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 >
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

Необходимо сделать:

требуется переделать на что-то более гибкое

вектора должны быть обобщены

Элементы перечислений
adtUndefined 

Неопределенно

adtInt 

Целое число

adtDouble 

Вещественное число

adtString 

Строка

adtVectorString 

Вектор строк

adtVectorInt 

Вектор целых чисел

adtObject 

Объект, поддерживающий сериализацию

adtAnyMap 

Словарь

Тип Anymap.

Элементы перечислений
amtSingleValue 

Одиночное значение

amtMap 

Словарь

Методы

StrAnyMap& com::Anymap::data ( )
inline
Ошибка:
Необходимо сделать:
добавлено для того, чтобы иметь возможность обходить элементы Anymap в цикле лучшим решением было бы переопределение специального итератора
void com::Anymap::deleteAllElements ( )

Рекурсивно удаляет все данные, хранящиеся в Anymap

void com::Anymap::deleteElement ( )

Удаляет значение, принадлежащее данному Anymap

Anymap & com::Anymap::get ( const std::string &  p_key)

Возвращает ссылку на данные, хранящиеся по ключу

Аргументы
[in]p_keyКлюч
Возвращает
Ссылка на Anymap
const Anymap & com::Anymap::get_const ( const std::string &  p_key) const

Возвращает константную ссылку на данные, хранящиеся по ключу

Аргументы
[in]p_keyКлюч
Возвращает
Константная сылка на Anymap
template<typename T >
AnyMapType com::Anymap::getAnyMapType ( const T &  ) const

Шаблонная функция, возвращающая тип Anymap

template<typename T >
AnyDataType com::Anymap::getDataType ( ) const
inline

Шаблонная функция, возвращающая тип данных в собственном значении

Anymap::AnyDataType com::Anymap::getDataTypeByKey ( const std::string &  p_key) const

Возвращает тип значения, соответствующий AnyDataType, по ключу

Аргументы
[in]p_keyКлюч
Возвращает
AnyDataType
Anymap::AnyDataType com::Anymap::getSelfDataType ( ) const

Возвращает тип текущего AnyMap, соответствующий AnyDataType

Возвращает
AnyDataType
bool com::Anymap::isSet ( const std::string &  p_key) const

Проверяет, задан ли указанный ключ

Аргументы
[in]p_keyКлюч
Возвращает
true, если задан
bool com::Anymap::isSingleValued ( ) const

Определяет, является ли экземпляр класса single-valued

Возвращает
true, если является
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*

Возвращает
Ссылку на себя (this)
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

Печать Anymap в форматированном виде

Аргументы
[in]p_outFileФайловый поток для записи
[in]p_preStrНазвание Anymap, которое будет выводиться в виде AnymapName["KEY"] = VALUE
void com::Anymap::printAsText ( const std::string &  p_fileName,
const std::string &  p_precStr = "" 
) const

Выводит все хранящиеся данные в файл

Аргументы
[in]p_fileNameИмя файла
[in]p_precStrПрефикс, который будет стоять перед данными Anymap (т.е., название данного Anymap)
Anymap & com::Anymap::set ( const std::string &  p_key,
boost::any  p_value 
)

Добавляет значение по ключу

Аргументы
[in]p_keyКлюч
[in]p_valueЗначение
Возвращает
Ссылка на себя (this)
Anymap & com::Anymap::set ( const std::string &  p_key,
const char *  p_charStr 
)

Добавляет строковое значение по ключу. Отдельная функция создана из-за особенностей boost::any

Аргументы
[in]p_keyКлюч
[in]p_charStrC-строка
Возвращает
Ссылка на себя (this)
Anymap & com::Anymap::set ( const std::string &  p_key,
const Anymap p_value 
)

Добавляет значение в виде Anymap по ключу

Аргументы
[in]p_keyКлюч
[in]p_valueЗначение
Возвращает
Ссылка на себя (this)
Anymap & com::Anymap::set ( const std::string &  p_key,
const void *  p_voidPointer 
)

Добавляет указатель на void по ключу. С его помощью можно хранить указатели на любые другие типы

Аргументы
[in]p_keyКлюч
[in]p_voidPointerУказатель на void
Возвращает
Ссылка на себя (this)
double com::Anymap::toDouble ( bool *  o_ok = 0) const

Переводит значение, хранящееся в Anymap, в double

Аргументы
[out]o_okУказатель на переменную, в которой будет указано, успешно ли прошел перевод
Возвращает
Значение в double
int com::Anymap::toInt ( bool *  o_ok = 0) const

Переводит значение, хранящееся в Anymap, в int

Аргументы
[out]o_okУказатель на переменную, в которой будет указано, успешно ли прошел перевод
Возвращает
Значение в int
template<typename T >
T * com::Anymap::toPointer ( bool *  o_ok = 0) const

Переводит значение, хранящееся в Anymap, в шаблонный T *

Аргументы
[out]o_okУказатель на переменную, в которой будет указано, успешно ли прошел перевод
Возвращает
Указатель на T
std::string com::Anymap::toStdString ( bool *  o_ok = 0) const

Переводит значение, хранящееся в Anymap, в std::string

Аргументы
[out]o_okУказатель на переменную, в которой будет указано, успешно ли прошел перевод
Возвращает
Строка
template<typename T >
std::vector< T > com::Anymap::toStdVector ( bool *  o_ok = 0) const

Переводит значение, хранящееся в Anymap, в шаблонный std::vector< T >

Аргументы
[out]o_okУказатель на переменную, в которой будет указано, успешно ли прошел перевод
Возвращает
Вектор
template<typename T >
T com::Anymap::toType ( bool *  o_ok = 0) const

Шаблонная функция для перевода в произвольный тип

void * com::Anymap::toVoid ( bool *  o_ok = 0) const

Переводит значение, хранящееся в Anymap, в void *

Аргументы
[out]o_okУказатель на переменную, в которой будет указано, успешно ли прошел перевод
Возвращает
Указатель на void

Документация по друзьям класса и функциям, отноносящимся к классу

MAC_DLLEXPORT std::ostream& operator<< ( std::ostream &  o_out,
const Anymap p_anymap 
)
friend

Перегрузка оператора записи в поток. Может использоваться как для бинарной, так и для текстовой сериализации

Аргументы
[in,out]o_outПоток, в который будет будет произведена запись
[in]p_anymapОбъект Anymap для записи
Возвращает
Поток o_out
MAC_DLLEXPORT std::istream& operator>> ( std::istream &  o_in,
Anymap o_anymap 
)
friend

Перегрузка оператора чтения из потока. Может использоваться как для бинарной, так и для текстовой сериализации

Аргументы
[in,out]o_inПоток, из которого производится чтение
[in]p_anymapОбъект Anymap, в который производится чтение
Возвращает
Поток o_in

Объявления и описания членов классов находятся в файлах: