diff options
Diffstat (limited to 'src/Common/XmlData.h')
-rw-r--r-- | src/Common/XmlData.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/Common/XmlData.h b/src/Common/XmlData.h index 1861b71..4f566fa 100644 --- a/src/Common/XmlData.h +++ b/src/Common/XmlData.h @@ -33,6 +33,7 @@ #include <libxml/parser.h> #include <boost/cstdint.hpp> +#include <boost/date_time/posix_time/posix_time.hpp> #include <boost/noncopyable.hpp> #include <boost/variant/get.hpp> #include <boost/variant/variant.hpp> @@ -56,12 +57,13 @@ class MAD_COMMON_EXPORT XmlData { friend class Entry; enum Type { - NONE, BINARY, + NONE, BINARY, TIME, INT, UINT, INT64, UINT64, FLOAT, DOUBLE, LONGDOUBLE, STRING }; - typedef boost::variant<long, unsigned long, long long, unsigned long long, float, double, long double, std::vector<boost::uint8_t> > Variant; + typedef boost::variant<long, unsigned long, long long, unsigned long long, + float, double, long double, std::vector<boost::uint8_t>, boost::posix_time::ptime> Variant; xmlNodePtr elementNode; @@ -128,6 +130,10 @@ class MAD_COMMON_EXPORT XmlData { void set(const std::vector<boost::uint8_t> &val) { set(val, BINARY); } + + void set(const boost::posix_time::ptime &val) { + set(val, TIME); + } }; public: @@ -151,7 +157,7 @@ class MAD_COMMON_EXPORT XmlData { return 0; xmlNodePtr newNode = xmlNewTextChild(entryNode, 0, (xmlChar*)"value", (xmlChar*)""); - xmlSetProp(newNode, (xmlChar*)"name", (xmlChar*)name.extractUTF8().c_str()); + xmlSetProp(newNode, (xmlChar*)"name", (xmlChar*)name.toUTF8().c_str()); xmlSetProp(newNode, (xmlChar*)"type", (xmlChar*)""); Element* newElement = new Element(newNode); @@ -227,7 +233,7 @@ class MAD_COMMON_EXPORT XmlData { return 0; xmlNodePtr newNode = xmlNewChild(entryNode, 0, (xmlChar*)"list", 0); - xmlSetProp(newNode, (xmlChar*)"name", (xmlChar*)name.extractUTF8().c_str()); + xmlSetProp(newNode, (xmlChar*)"name", (xmlChar*)name.toUTF8().c_str()); List *newList = new List(newNode); @@ -507,6 +513,8 @@ template <> MAD_COMMON_EXPORT const Core::String& XmlData::Entry::get<const Core template <> MAD_COMMON_EXPORT std::vector<boost::uint8_t> XmlData::Entry::get<std::vector<unsigned char> >(const Core::String &name) const; template <> MAD_COMMON_EXPORT const std::vector<boost::uint8_t>& XmlData::Entry::get<const std::vector<unsigned char>&>(const Core::String &name) const; +template <> MAD_COMMON_EXPORT boost::posix_time::ptime XmlData::Entry::get<boost::posix_time::ptime>(const Core::String &name) const; + } } |