--- projects/cms/source/host/c++/XMLFormatter.cpp 2001/01/24 19:33:37 1.2 +++ projects/cms/source/host/c++/XMLFormatter.cpp 2002/05/18 18:15:56 1.8 @@ -1,82 +1,117 @@ +/* + * i-scream central monitoring system + * Copyright (C) 2000-2002 i-scream + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + #include "XMLFormatter.h" XMLFormatter::XMLFormatter( string newHostInfo ){ - // std::cout << "DEBUG: " << newHostInfo << "\n"; - xmlData += "<"; - xmlData += newHostInfo; - xmlData += ">"; - hostInfo = newHostInfo; - // std::cout << "DEBUG: xmldata: " << xmlData << "\n"; + if ( newHostInfo != "" ){ + xmlData += "<"; + xmlData += newHostInfo; + xmlData += ">"; + hostInfo = newHostInfo; + + } // if stackPointer = 0; -} + +} // XMLFormatter -XMLFormatter::XMLFormatter( ){ - // std::cout << "DEBUG: " << "No Root info" << "\n"; +XMLFormatter::XMLFormatter(){ + hostInfo = ""; // null - xmlData = hostInfo; + xmlData = ""; stackPointer = 0; -} + +} // XMLFormatter XMLFormatter::XMLFormatter( string newHostInfo, string attributes){ - // std::cout << "DEBUG: " << newHostInfo << ":" << attributes << "\n"; + xmlData += "<"; xmlData += newHostInfo; + xmlData += " "; + xmlData += attributes; xmlData += ">"; hostInfo = newHostInfo; stackPointer = 0; -} +} // XMLFormatter void XMLFormatter::closeNest(){ - // std::cout << "DEBUG: Closing Nest: " << stackPointer << ":" << stack[stackPointer] << "\n"; - stackPointer--; - xmlData += ""; + if ( stackPointer >= 0 ){ + + stackPointer--; + xmlData += ""; + } // if + return; -} +} // closeNest void XMLFormatter::addNest(string nest){ - // std::cout << "DEBUG: Adding Nest: " << nest << "\n"; - xmlData += "<"; - xmlData += nest; - xmlData += ">"; - - // now add the nest to the stack - stack[stackPointer] = nest; - stackPointer++; - return; -} + // check it is not empty + if ( nest != "" ){ + xmlData += "<"; + xmlData += nest; + xmlData += ">"; + + // now add the nest to the stack + stack[stackPointer] = nest; + stackPointer++; + } // if + + return; +} // addNest + void XMLFormatter::addElement(string element, string attributes, string value){ - // std::cout << "DEBUG: Add Element: " << element << ":" << attributes << ":" << value << "\n"; + xmlData += "<"; xmlData += element; xmlData += " "; xmlData += attributes; xmlData += ">"; - xmlData += value; - xmlData += ""; - return; -} + xmlData += value; + xmlData += ""; + return; +} // addElement + void XMLFormatter::addElement(string element, string value){ - // std::cout << "DEBUG: Add Element: " << element << ":" << value << "\n"; - xmlData += "<"; - xmlData += element; - xmlData += ">"; - xmlData += value; - xmlData += ""; - return; -} + + if (( element != "" ) && ( value != "" )){ + xmlData += "<"; + xmlData += element; + xmlData += ">"; + xmlData += value; + xmlData += ""; + } // if + return; + +} // addElement string XMLFormatter::returnXML(){ @@ -85,14 +120,16 @@ string XMLFormatter::returnXML(){ for ( int count= stackPointer; count > 0; count-- ){ // close nest closeNest(); - } + } // if - if ( hostInfo.length() != 0 ){ - xmlData += " 0 ){ + xmlData += ""; - } + } // if - // std::cout << "DEBUG: returning XML: " << xmlData; + stackPointer = 0; + return xmlData; -} \ No newline at end of file + +} // returnXML \ No newline at end of file