69 #include <boost/shared_ptr.hpp>
70 #include <boost/any.hpp>
106 Anymap(boost::any p_selfData);
112 Anymap& operator=(boost::any p_value);
113 Anymap& operator=(
const char* p_charStr);
115 Anymap& operator=(
const void *p_voidPointer);
117 template <
typename T>
118 Anymap& operator=(T* p_pointer);
125 Anymap& operator[](
const std::string& p_key);
132 const Anymap& operator()(
const std::string& p_key)
const;
139 std::string toStdString(
bool *o_ok = 0)
const;
146 int toInt(
bool *o_ok = 0)
const;
153 double toDouble(
bool *o_ok = 0)
const;
160 void *toVoid(
bool *o_ok = 0)
const;
167 template <
typename T>
168 T* toPointer(
bool *o_ok = 0)
const;
176 std::vector<T> toStdVector(
bool *o_ok = 0)
const;
181 void deleteElement();
186 void deleteAllElements();
193 Anymap&
get(
const std::string& p_key);
200 const Anymap& get_const(
const std::string& p_key)
const;
208 Anymap& set(
const std::string& p_key,boost::any p_value);
216 Anymap& set(
const std::string& p_key,
const char *p_charStr);
224 Anymap& set(
const std::string& p_key,
const Anymap& p_value);
232 Anymap& set(
const std::string& p_key,
const void *p_voidPointer);
239 bool isSet(
const std::string& p_key)
const;
245 std::vector< std::string > keys()
const;
251 bool isSingleValued()
const;
257 AnyDataType getSelfDataType()
const;
264 AnyDataType getDataTypeByKey(
const std::string& p_key)
const;
271 void printAsText(
const std::string& p_fileName,
const std::string& p_precStr =
"")
const;
279 friend MAC_DLLEXPORT std::ostream& operator<<(std::ostream& o_out,
const Anymap& p_anymap);
287 friend MAC_DLLEXPORT std::istream& operator>>(std::istream& o_in,
Anymap& o_anymap);
290 typedef std::map<std::string,Anymap> StrAnyMap;
314 AnyMapType getAnyMapType(
const T&)
const;
320 T toType(
bool *o_ok = 0)
const;
327 void printAnyMap(std::ofstream& p_outFile, std::string p_preStr =
"")
const;
330 boost::any m_selfData;
331 boost::shared_ptr< void > m_selfPointerData;
335 mutable bool m_singleValue;
349 result = boost::any_cast<T>(m_selfData);
351 catch(
const boost::bad_any_cast& p_badCast){
367 return toType< std::vector<T> >(o_ok);
371 template <
typename T>
374 return (T*)boost::any_cast<
char*>(m_selfData);
378 template <
typename T>
381 m_selfData = (
char *)p_pointer;
383 m_singleValue =
true;
AnyMapType
Тип Anymap.
Definition: anymap.h:98
Вещественное число
Definition: anymap.h:89
AnyDataType
Definition: anymap.h:85
T * toPointer(bool *o_ok=0) const
Definition: anymap.h:372
Строка
Definition: anymap.h:90
AnyDataType getDataType() const
Definition: anymap.h:305
std::vector< T > toStdVector(bool *o_ok=0) const
Definition: anymap.h:365
Одиночное значение
Definition: anymap.h:100
T toType(bool *o_ok=0) const
Definition: anymap.h:341
Словарь
Definition: anymap.h:94
Anymap & operator=(boost::any p_value)
Definition: anymap.cpp:178
Мультитиповой словарь
Definition: anymap.h:79
Объект, поддерживающий сериализацию
Definition: anymap.h:93
Вектор строк
Definition: anymap.h:91
Вектор целых чисел
Definition: anymap.h:92
Целое число
Definition: anymap.h:88
StrAnyMap & data()
Definition: anymap.h:295
Неопределенно
Definition: anymap.h:87
Словарь
Definition: anymap.h:101