summaryrefslogtreecommitdiffstats
path: root/video_in_hal/nsframework/framework_unified/client/NS_XMLConfigeParser/library/src/ns_xmlparser_node.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'video_in_hal/nsframework/framework_unified/client/NS_XMLConfigeParser/library/src/ns_xmlparser_node.cpp')
-rwxr-xr-xvideo_in_hal/nsframework/framework_unified/client/NS_XMLConfigeParser/library/src/ns_xmlparser_node.cpp658
1 files changed, 0 insertions, 658 deletions
diff --git a/video_in_hal/nsframework/framework_unified/client/NS_XMLConfigeParser/library/src/ns_xmlparser_node.cpp b/video_in_hal/nsframework/framework_unified/client/NS_XMLConfigeParser/library/src/ns_xmlparser_node.cpp
deleted file mode 100755
index 47f6caa..0000000
--- a/video_in_hal/nsframework/framework_unified/client/NS_XMLConfigeParser/library/src/ns_xmlparser_node.cpp
+++ /dev/null
@@ -1,658 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_XmlParser
-/// \brief This file contains implementation of CXmlNode class.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <native_service/ns_xmlparser_if.h>
-#include <string>
-#include "ns_xmlconfig_parser_frameworkunifiedlog.h"
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// CXmlNode
-/// Constructor
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode::CXmlNode(): m_pXmlNodePtr(NULL) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// CXmlNode
-/// Parameterized Constructor
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode::CXmlNode(xmlNodePtr f_pXmlNodePtr): m_pXmlNodePtr(f_pXmlNodePtr) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CXmlNode
-/// Destructor
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode::~CXmlNode() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetXmlNodePtr
-/// Sets the xmlNodePtr in class
-////////////////////////////////////////////////////////////////////////////////////////////////
-VOID CXmlNode::SetXmlNodePtr(xmlNodePtr f_pXmlNodePtr) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- m_pXmlNodePtr = f_pXmlNodePtr;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// IsNull
-/// Checks whether the node is valid or not
-////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CXmlNode::IsNull() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL l_bNull = FALSE;
-
- if (NULL == m_pXmlNodePtr) {
- l_bNull = TRUE;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bNull;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// Type
-/// Gets the type of node
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedXmlNodeTypes CXmlNode::Type() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedXmlNodeTypes l_eNodeType = FRAMEWORKUNIFIED_XML_NODE_NONE;
-
- if (NULL != m_pXmlNodePtr) {
- switch (m_pXmlNodePtr->type) {
- case XML_ELEMENT_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_ELEMENT_NODE;
- break;
- case XML_ATTRIBUTE_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_ATTRIBUTE_NODE;
- break;
- case XML_TEXT_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_TEXT_NODE;
- break;
- case XML_CDATA_SECTION_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_CDATA_SECTION_NODE;
- break;
- case XML_ENTITY_REF_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_ENTITY_REF_NODE;
- break;
- case XML_ENTITY_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_ENTITY_NODE;
- break;
- case XML_PI_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_PI_NODE;
- break;
- case XML_COMMENT_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_COMMENT_NODE;
- break;
- case XML_DOCUMENT_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_DOCUMENT_NODE;
- break;
- case XML_DOCUMENT_TYPE_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_DOCUMENT_TYPE_NODE;
- break;
- case XML_DOCUMENT_FRAG_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_DOCUMENT_FRAG_NODE;
- break;
- case XML_NOTATION_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_NOTATION_NODE;
- break;
- case XML_HTML_DOCUMENT_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_HTML_DOCUMENT_NODE;
- break;
- case XML_DTD_NODE:
- l_eNodeType = FRAMEWORKUNIFIED_XML_DTD_NODE;
- break;
- case XML_ELEMENT_DECL:
- l_eNodeType = FRAMEWORKUNIFIED_XML_ELEMENT_DECL;
- break;
- case XML_ATTRIBUTE_DECL:
- l_eNodeType = FRAMEWORKUNIFIED_XML_ATTRIBUTE_DECL;
- break;
- case XML_ENTITY_DECL:
- l_eNodeType = FRAMEWORKUNIFIED_XML_ENTITY_DECL;
- break;
- case XML_NAMESPACE_DECL:
- l_eNodeType = FRAMEWORKUNIFIED_XML_NAMESPACE_DECL;
- break;
- case XML_XINCLUDE_START:
- l_eNodeType = FRAMEWORKUNIFIED_XML_XINCLUDE_START;
- break;
- case XML_XINCLUDE_END:
- l_eNodeType = FRAMEWORKUNIFIED_XML_XINCLUDE_END;
- break;
- default:
- break;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eNodeType;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// Name
-/// Gets the name of node
-////////////////////////////////////////////////////////////////////////////////////////////////
-std::string CXmlNode::Name() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- std::string l_cNodeName = "";
-
- if (NULL != m_pXmlNodePtr && NULL != m_pXmlNodePtr->name) {
- l_cNodeName = std::string((PCSTR)m_pXmlNodePtr->name); // LCOV_EXCL_BR_LINE 11: except branch
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_cNodeName;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetContent
-/// Gets the content of node
-////////////////////////////////////////////////////////////////////////////////////////////////
-std::string CXmlNode::GetContent() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- std::string l_cText = "";
-
- if ((NULL != m_pXmlNodePtr) &&
- (NULL != m_pXmlNodePtr->children) &&
- (XML_TEXT_NODE == m_pXmlNodePtr->children->type) &&
- (NULL == m_pXmlNodePtr->children->next)) {
- xmlChar * p_xmlText = xmlNodeGetContent(m_pXmlNodePtr);
- l_cText = std::string((PCSTR)p_xmlText); // LCOV_EXCL_BR_LINE 11: except branch
- xmlFree(p_xmlText); // LCOV_EXCL_BR_LINE 11: except branch
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_cText;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetContent
-/// Sets or updates the content of current node.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CXmlNode::SetContent(std::string f_cUpdatedText) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- if (NULL != m_pXmlNodePtr) {
- xmlNodeSetContent(m_pXmlNodePtr, (const xmlChar *)f_cUpdatedText.c_str());
- } else {
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetAttributeValue
-/// Gets the attribute's value for the key.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CXmlNode::GetAttributeValue(std::string f_cKey, std::string &f_cAttributeValue) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- if (NULL != m_pXmlNodePtr) {
- xmlChar *l_pAttrValue = xmlGetProp(m_pXmlNodePtr,
- (const xmlChar *)f_cKey.c_str());
- if (NULL != l_pAttrValue) {
- f_cAttributeValue.assign((PCSTR)l_pAttrValue);
-
- xmlFree(l_pAttrValue);
- l_pAttrValue = NULL;
- } else {
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Attribute key :: %s not found", f_cKey.c_str());
- }
- } else {
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Node ptr is NULL"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetAttributeValue
-/// Sets the attribute's value for the key
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CXmlNode::SetAttributeValue(std::string f_cKey, std::string f_cValue) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- FRAMEWORKUNIFIEDLOG(ZONE_NS_WAR, __FUNCTION__, "SetAttributeValue feature is not available,"
- "Reason: This API is not supported by libxml2 present in PosixBasedOS001"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// AddNewAttribute
-/// Add new attribute to the node
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CXmlNode::AddNewAttribute(std::string f_cKey, std::string f_cAttributeValue) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- xmlChar* p_key = reinterpret_cast<xmlChar*>(const_cast<char*>(f_cKey.c_str()));
- xmlChar* p_value = reinterpret_cast<xmlChar*>(const_cast<char*>(f_cAttributeValue.c_str()));
- if (NULL != m_pXmlNodePtr) {
- if (NULL == xmlNewNsProp(m_pXmlNodePtr,
- NULL,
- p_key,
- p_value)) {
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Unable to add new property :: %s", f_cKey.c_str());
- }
- } else {
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Node ptr is NULL"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// RemoveAttribute
-/// Removes the attribute from the node with the specified key
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CXmlNode::RemoveAttribute(std::string f_cKey) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- FRAMEWORKUNIFIEDLOG(ZONE_NS_WAR, __FUNCTION__, "RemoveAttribute feature is not available,"
- "Reason: This API is not supported by libxml2 present in PosixBasedOS001"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetAttributeItems
-/// Gets the list of all the attribute's key and value of the node
-////////////////////////////////////////////////////////////////////////////////////////////////
-TAttrList CXmlNode::GetAttributeItems() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- TAttrList l_cAttrList;
- std::string l_cKey;
- std::string l_cValue;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlAttrPtr l_pAttr = m_pXmlNodePtr->properties;
- l_pAttr != NULL;
- l_pAttr = l_pAttr->next) {
- l_cKey = (PCSTR)l_pAttr->name;
- l_cValue = "";
-
- if (NULL != l_pAttr->children) {
- l_cValue = (PCSTR)l_pAttr->children->content;
- }
-
- CXmlAttr l_pXmlAttr(l_cKey, l_cValue);
- l_cAttrList.push_back(l_pXmlAttr); // LCOV_EXCL_BR_LINE 11: except branch
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_cAttrList;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// Parent
-/// Gets the parent node
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode CXmlNode::Parent() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CXmlNode l_pXmlNode;
-
- if (NULL != m_pXmlNodePtr && NULL != m_pXmlNodePtr->parent) {
- if (XML_ELEMENT_NODE == m_pXmlNodePtr->parent->type) {
- l_pXmlNode.SetXmlNodePtr(m_pXmlNodePtr->parent); // LCOV_EXCL_BR_LINE 11: except branch
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pXmlNode;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// FirstChild
-/// Gets the first child of node
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode CXmlNode::FirstChild() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CXmlNode l_pXmlNode;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlNodePtr l_pNodePtr = m_pXmlNodePtr->children;
- l_pNodePtr != NULL;
- l_pNodePtr = l_pNodePtr->next) {
- if (XML_ELEMENT_NODE == l_pNodePtr->type) {
- l_pXmlNode.SetXmlNodePtr(l_pNodePtr); // LCOV_EXCL_BR_LINE 11: except branch
- break;
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pXmlNode;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// LastChild
-/// Gets the last child of node
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode CXmlNode::LastChild() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CXmlNode l_pXmlNode;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlNodePtr l_pNodePtr = m_pXmlNodePtr->last;
- l_pNodePtr != NULL;
- l_pNodePtr = l_pNodePtr->prev) {
- if (XML_ELEMENT_NODE == l_pNodePtr->type) {
- l_pXmlNode.SetXmlNodePtr(l_pNodePtr); // LCOV_EXCL_BR_LINE 11: except branch
- break;
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pXmlNode;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// Children
-/// Gets the list of all the child node of current node
-////////////////////////////////////////////////////////////////////////////////////////////////
-TNodeList CXmlNode::Children() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- TNodeList l_pNodeList;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlNodePtr l_pNodePtr = m_pXmlNodePtr->children;
- l_pNodePtr != NULL;
- l_pNodePtr = l_pNodePtr->next) {
- if (XML_ELEMENT_NODE == l_pNodePtr->type) {
- CXmlNode l_pXmlNode(l_pNodePtr);
- l_pNodeList.push_back(l_pXmlNode);
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pNodeList;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NextSibling
-/// Gets the next sibling node of current node
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode CXmlNode::NextSibling() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CXmlNode l_pXmlNode;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlNodePtr l_pNodePtr = m_pXmlNodePtr->next;
- l_pNodePtr != NULL;
- l_pNodePtr = l_pNodePtr->next) {
- if (XML_ELEMENT_NODE == l_pNodePtr->type) {
- l_pXmlNode.SetXmlNodePtr(l_pNodePtr); // LCOV_EXCL_BR_LINE 11: except branch
- break;
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pXmlNode;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// PrevSibling
-/// Gets the previous sibling node of current node
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode CXmlNode::PrevSibling() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CXmlNode l_pXmlNode;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlNodePtr l_pNodePtr = m_pXmlNodePtr->prev;
- l_pNodePtr != NULL;
- l_pNodePtr = l_pNodePtr->prev) {
- if (XML_ELEMENT_NODE == l_pNodePtr->type) {
- l_pXmlNode.SetXmlNodePtr(l_pNodePtr); // LCOV_EXCL_BR_LINE 11: except branch
- break;
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pXmlNode;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// FindChildNode
-/// Finds the first immediate sub node matching tag as f_cNodeName.
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode CXmlNode::FindChildNode(std::string f_cNodeName) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CXmlNode l_pXmlNode;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlNodePtr l_pNodePtr = m_pXmlNodePtr->children;
- l_pNodePtr != NULL;
- l_pNodePtr = l_pNodePtr->next) {
- if ((XML_ELEMENT_NODE == m_pXmlNodePtr->type) &&
- (0 == f_cNodeName.compare((PCSTR)l_pNodePtr->name))) {
- l_pXmlNode.SetXmlNodePtr(l_pNodePtr); // LCOV_EXCL_BR_LINE 11: except branch
- break;
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pXmlNode;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// FindAllChildNodes
-/// Gets the list of all the immediate sub node matching tag as f_cNodeName.
-////////////////////////////////////////////////////////////////////////////////////////////////
-TNodeList CXmlNode::FindAllChildNodes(std::string f_cNodeName) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- TNodeList l_pNodeList;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlNodePtr l_pNodePtr = m_pXmlNodePtr->children;
- l_pNodePtr != NULL;
- l_pNodePtr = l_pNodePtr->next) {
- if ((XML_ELEMENT_NODE == m_pXmlNodePtr->type) &&
- (0 == f_cNodeName.compare((PCSTR)l_pNodePtr->name))) {
- CXmlNode l_pXmlNode(l_pNodePtr);
- l_pNodeList.push_back(l_pXmlNode);
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pNodeList;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetContentOfChildNode
-/// Finds the first level sub node matching tag as f_cNodeName.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CXmlNode::GetContentOfChildNode(std::string f_cNodeName, std::string &f_cContent) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- CXmlNode l_pXmlNode = FindChildNode(f_cNodeName);
-
- if (!l_pXmlNode.IsNull()) {
- f_cContent.assign(l_pXmlNode.GetContent());
- } else {
- l_eStatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// AddChildNode
-/// Adds sub node to the current node
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode CXmlNode::AddChildNode(std::string f_cNodeName, std::string f_cText) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // pointer of child node
- xmlNodePtr l_pChildNode = NULL;
-
- // content of child node
- xmlChar *l_cNodeContent = NULL;
-
- // validate the node name
- if (NULL != m_pXmlNodePtr && 0 < f_cNodeName.length()) {
- if (0 < f_cText.length()) {
- xmlChar* p_text = reinterpret_cast<xmlChar*>(const_cast<char*>(f_cText.c_str()));
- l_cNodeContent = p_text;
- }
-
- if (NULL == (l_pChildNode = xmlNewDocNode(m_pXmlNodePtr->doc,
- m_pXmlNodePtr->ns,
- (const xmlChar *)f_cNodeName.c_str(),
- l_cNodeContent))) {
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Error creating child node");
- } else {
- l_pChildNode->type = XML_ELEMENT_NODE;
- l_pChildNode->parent = m_pXmlNodePtr;
- l_pChildNode->doc = m_pXmlNodePtr->doc;
-
- // if there is no other child to the parent
- if (m_pXmlNodePtr->children == NULL) {
- m_pXmlNodePtr->children = l_pChildNode;
- m_pXmlNodePtr->last = l_pChildNode;
- } else { // else add the new child to the end of children list
- // temp node
- xmlNodePtr l_pTempNode = m_pXmlNodePtr->last;
- l_pTempNode->next = l_pChildNode;
- l_pChildNode->prev = l_pTempNode;
-
- m_pXmlNodePtr->last = l_pChildNode;
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return CXmlNode(l_pChildNode);
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// AddSiblingNode
-/// Adds new node as sibling to the current node
-////////////////////////////////////////////////////////////////////////////////////////////////
-CXmlNode CXmlNode::AddSiblingNode(std::string f_cNodeName, std::string f_cText) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- xmlNodePtr l_pNewNode = NULL;
- xmlNodePtr l_pSiblingNode = NULL;
-
- if (NULL != m_pXmlNodePtr &&
- !this->Parent().IsNull()) { // check whether the node is root node
- if (NULL != (l_pNewNode = xmlNewNode(NULL,
- (const xmlChar *)f_cNodeName.c_str()))) {
- if (0 < f_cText.length()) {
- xmlChar* p_text = reinterpret_cast<xmlChar*>(const_cast<char*>(f_cText.c_str()));
- xmlNodeSetContent(l_pNewNode, p_text);
- }
-
- l_pSiblingNode = xmlAddSibling(m_pXmlNodePtr,
- l_pNewNode);
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return CXmlNode(l_pSiblingNode);
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// RemoveChildNode
-/// Removes the child node from current node
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CXmlNode::RemoveChildNode(std::string f_cNodeName) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- CXmlNode l_pXmlNode = FindChildNode(f_cNodeName);
- if (!l_pXmlNode.IsNull()) {
- xmlUnlinkNode(l_pXmlNode.m_pXmlNodePtr);
- xmlFreeNode(l_pXmlNode.m_pXmlNodePtr);
- } else {
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ClearNode
-/// Clears the contents, attributes of node
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CXmlNode::ClearNode() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- if (NULL != m_pXmlNodePtr) {
- for (xmlNodePtr l_pXmlNode = m_pXmlNodePtr->children;
- l_pXmlNode != NULL;
- l_pXmlNode = m_pXmlNodePtr->children) {
- xmlUnlinkNode(l_pXmlNode);
- xmlFreeNode(l_pXmlNode);
- }
-
- for (xmlAttrPtr l_pXmlAttr = m_pXmlNodePtr->properties;
- l_pXmlAttr != NULL;
- l_pXmlAttr = m_pXmlNodePtr->properties) {
- xmlRemoveProp(l_pXmlAttr);
- }
- } else {
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}