From 23f9f7712bfa33b5a488a447a6fabe6035cc3240 Mon Sep 17 00:00:00 2001 From: chriszero Date: Sat, 15 Nov 2014 19:43:07 +0100 Subject: initial commit --- XmlObject.cpp | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 XmlObject.cpp (limited to 'XmlObject.cpp') diff --git a/XmlObject.cpp b/XmlObject.cpp new file mode 100644 index 0000000..41a9d39 --- /dev/null +++ b/XmlObject.cpp @@ -0,0 +1,87 @@ +#include "XmlObject.h" + +namespace plexclient +{ + +XmlObject::XmlObject() +{ +} + +XmlObject::~XmlObject() +{ +} + +std::string XmlObject::GetNodeValue(Poco::XML::Node* pNode) +{ + std::string value; + if(pNode != 0) { + value = pNode->getNodeValue(); + } + return value; +} + +int XmlObject::GetNodeValueAsInt(Poco::XML::Node* pNode) +{ + int value = 0; + if(pNode != 0) { + try { + value = std::stoi(pNode->getNodeValue()); + } catch(Poco::Exception) {} + } + return value; +} + +long XmlObject::GetNodeValueAsLong(Poco::XML::Node* pNode) +{ + long value = 0; + if(pNode != 0) { + try { + value = std::stol(pNode->getNodeValue()); + } catch(Poco::Exception) {} + } + return value; +} + +bool XmlObject::GetNodeValueAsBool(Poco::XML::Node* pNode) +{ + bool value = false; + if(pNode != 0) { + value = pNode->getNodeValue() == "1"; + } + return value; +} + +Poco::Timestamp XmlObject::GetNodeValueAsTimeStamp(Poco::XML::Node* pNode) +{ + Poco::Timestamp value; + if(pNode != 0) { + try { + long lValue = std::stol(pNode->nodeValue()); + value = Poco::Timestamp(lValue); + } catch (Poco::Exception) {} + } + return value; +} + +MediaType XmlObject::GetNodeValueAsMediaType(Poco::XML::Node* pNode) +{ + MediaType type = MediaType::UNDEF; + + if(pNode != 0) { + std::string sType = pNode->nodeValue(); + if (Poco::icompare(sType, "photo") == 0) { + type = MediaType::PHOTO; + } else if (Poco::icompare(sType, "movie") == 0) { + type = MediaType::MOVIE; + } else if (Poco::icompare(sType, "music") == 0) { + type = MediaType::MUSIC; + } else if (Poco::icompare(sType, "show") == 0) { + type = MediaType::SHOW; + } else if (Poco::icompare(sType, "season") == 0) { + type = MediaType::SHOW; + } + } + return type; +} + +} -- cgit v1.2.3