summaryrefslogtreecommitdiffstats
path: root/src/Common/XmlData.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/XmlData.h')
-rw-r--r--src/Common/XmlData.h16
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;
+
}
}