ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/c++/XMLFormatter.cpp
Revision: 1.5
Committed: Fri Mar 23 14:07:11 2001 UTC (23 years, 6 months ago) by ab11
Branch: MAIN
Changes since 1.4: +20 -13 lines
Log Message:
put in some error checking to stop possible segmentation faults

File Contents

# User Rev Content
1 ab11 1.2 #include "XMLFormatter.h"
2 ab11 1.1
3 ab11 1.2 XMLFormatter::XMLFormatter( string newHostInfo ){
4     // std::cout << "DEBUG: " << newHostInfo << "\n";
5     xmlData += "<";
6     xmlData += newHostInfo;
7     xmlData += ">";
8    
9     hostInfo = newHostInfo;
10     // std::cout << "DEBUG: xmldata: " << xmlData << "\n";
11    
12     stackPointer = 0;
13     }
14    
15 ab11 1.5 XMLFormatter::XMLFormatter(){
16 ab11 1.2 // std::cout << "DEBUG: " << "No Root info" << "\n";
17     hostInfo = ""; // null
18 ab11 1.5 xmlData = "";
19 ab11 1.2 stackPointer = 0;
20     }
21    
22     XMLFormatter::XMLFormatter( string newHostInfo, string attributes){
23     // std::cout << "DEBUG: " << newHostInfo << ":" << attributes << "\n";
24     xmlData += "<";
25     xmlData += newHostInfo;
26 ab11 1.4 xmlData += " ";
27     xmlData += attributes;
28 ab11 1.2 xmlData += ">";
29    
30     hostInfo = newHostInfo;
31    
32     stackPointer = 0;
33 ab11 1.1 }
34    
35     void XMLFormatter::closeNest(){
36 ab11 1.2 // std::cout << "DEBUG: Closing Nest: " << stackPointer << ":" << stack[stackPointer] << "\n";
37 ab11 1.5 if ( stackPointer >= 0 ){
38    
39     stackPointer--;
40     xmlData += "</";
41     xmlData += stack[stackPointer];
42     xmlData += ">";
43     }
44 ab11 1.2
45 ab11 1.1 return;
46     }
47    
48 ab11 1.2 void XMLFormatter::addNest(string nest){
49     // std::cout << "DEBUG: Adding Nest: " << nest << "\n";
50     xmlData += "<";
51     xmlData += nest;
52     xmlData += ">";
53    
54     // now add the nest to the stack
55     stack[stackPointer] = nest;
56     stackPointer++;
57 ab11 1.1 return;
58     }
59    
60 ab11 1.2 void XMLFormatter::addElement(string element, string attributes, string value){
61     // std::cout << "DEBUG: Add Element: " << element << ":" << attributes << ":" << value << "\n";
62     xmlData += "<";
63     xmlData += element;
64     xmlData += " ";
65     xmlData += attributes;
66     xmlData += ">";
67 ab11 1.5 if ( value != "" ){
68     xmlData += value;
69     xmlData += "</";
70     xmlData += element;
71     xmlData += ">";
72     } // if
73     return;
74 ab11 1.1 }
75    
76 ab11 1.2 void XMLFormatter::addElement(string element, string value){
77     // std::cout << "DEBUG: Add Element: " << element << ":" << value << "\n";
78     xmlData += "<";
79     xmlData += element;
80     xmlData += ">";
81     xmlData += value;
82     xmlData += "</";
83     xmlData += element;
84     xmlData += ">";
85     return;
86     }
87    
88    
89     string XMLFormatter::returnXML(){
90     // close as many nests as we have open, could (but shouldn't) cause
91     // some arraylist out of bounds errors.
92     for ( int count= stackPointer; count > 0; count-- ){
93     // close nest
94     closeNest();
95     }
96    
97 ab11 1.5 if ( hostInfo.length() > 0 ){
98     xmlData += "</";
99 ab11 1.2 xmlData += hostInfo;
100     xmlData += ">";
101     }
102 ab11 1.5
103     stackPointer = 0;
104 ab11 1.2
105     // std::cout << "DEBUG: returning XML: " << xmlData;
106     return xmlData;
107 ab11 1.1 }