summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2011-10-04 00:43:38 +0000
committerrandomdan <randomdan@localhost>2011-10-04 00:43:38 +0000
commit647e604b57ce384154397095bbeef0063224d9d4 (patch)
tree14e1a7c645bd0068a5a549a87ff8618be2013c25
parentEmpty the XSL row cache on iteration (diff)
downloadproject2-647e604b57ce384154397095bbeef0063224d9d4.tar.bz2
project2-647e604b57ce384154397095bbeef0063224d9d4.tar.xz
project2-647e604b57ce384154397095bbeef0063224d9d4.zip
Include broken down date and time parts in XML output
-rw-r--r--project2/xml/Jamfile.jam2
-rw-r--r--project2/xml/xmlPresenter.cpp7
2 files changed, 9 insertions, 0 deletions
diff --git a/project2/xml/Jamfile.jam b/project2/xml/Jamfile.jam
index be45dc6..8a4a5cc 100644
--- a/project2/xml/Jamfile.jam
+++ b/project2/xml/Jamfile.jam
@@ -5,6 +5,7 @@ alias libxslt : : : :
<cflags>"`pkg-config --cflags libexslt`"
<linkflags>"`pkg-config --libs libexslt`" ;
lib boost_filesystem : : <name>boost_filesystem ;
+lib boost_date_time : : <name>boost_date_time ;
cpp-pch pch : pch.hpp :
<include>../../libmisc
@@ -23,6 +24,7 @@ lib p2xml :
<library>../url//p2url
<library>libxslt
<library>boost_filesystem
+ <library>boost_date_time
: :
<library>../uuid//p2uuid
<include>.
diff --git a/project2/xml/xmlPresenter.cpp b/project2/xml/xmlPresenter.cpp
index 6d4ddeb..58321ba 100644
--- a/project2/xml/xmlPresenter.cpp
+++ b/project2/xml/xmlPresenter.cpp
@@ -4,6 +4,8 @@
#include "variables.h"
#include "appEngine.h"
#include <libxml++/document.h>
+#include <boost/date_time/posix_time/time_formatters.hpp>
+#include <boost/date_time/gregorian/formatters.hpp>
DECLARE_COMPONENT_LOADER("xml", XmlPresenter, PresenterLoader)
@@ -87,6 +89,11 @@ XmlPresenter::addText(const VariableType & value) const
{
if (!value.get<Null>()) {
nodeStack.back()->add_child_text(value);
+ // Special cases
+ if (const boost::posix_time::ptime * dt = value.get<boost::posix_time::ptime>()) {
+ nodeStack.back()->set_attribute("time", boost::posix_time::to_simple_string(dt->time_of_day()));
+ nodeStack.back()->set_attribute("date", boost::gregorian::to_iso_extended_string(dt->date()));
+ }
}
}