Go to the documentation of this file.00001
00021 #ifndef RZ_SET_DESCRIPTION_FILE_H
00022 #define RZ_SET_DESCRIPTION_FILE_H
00023
00024 #include "XMLFile.h"
00025 #include <vector>
00026 #include "RZ.h"
00027
00028 enum {
00029 ERROR_ARGS = 1,
00030 ERROR_XERCES_INIT,
00031 ERROR_PARSE,
00032 ERROR_EMPTY_DOCUMENT
00033 };
00034
00035 class RZSetDescriptionFile : public XMLFile {
00036
00037
00038 XMLCh* TAG_Device_name;
00039 XMLCh* TAG_Device_package;
00040 XMLCh* TAG_Speed_grade;
00041 XMLCh* TAG_DP;
00042 XMLCh* TAG_SG;
00043 XMLCh* TAG_RZ_description;
00044 XMLCh* TAG_Column;
00045
00046
00047 XMLCh* ATTR_RZ_ID;
00048 XMLCh* ATTR_Column_number;
00049 XMLCh* ATTR_Line_number;
00050 XMLCh* ATTR_Height;
00051 XMLCh* ATTR_Reverse;
00052 XMLCh* ATTR_Value;
00053
00054
00055 XMLCh* ATTR_Column_all;
00056 XMLCh* ATTR_Column_repeat;
00057
00058 public:
00059 RZSetDescriptionFile(string filename, Device* _device) : XMLFile(filename) {
00060
00061
00062 TAG_Device_name = XMLString::transcode("DeviceName");
00063 TAG_Device_package = XMLString::transcode("DevicePackage");
00064 TAG_Speed_grade = XMLString::transcode("SpeedGrade");
00065 TAG_DP = XMLString::transcode("DP");
00066 TAG_SG = XMLString::transcode("SG");
00067 TAG_RZ_description = XMLString::transcode("Description");
00068 TAG_Column = XMLString::transcode("CN");
00069
00070 ATTR_RZ_ID = XMLString::transcode("RZ_ID");
00071 ATTR_Column_number = XMLString::transcode("Column");
00072 ATTR_Line_number = XMLString::transcode("Line");
00073 ATTR_Height = XMLString::transcode("Height");
00074 ATTR_Reverse = XMLString::transcode("Reverse");
00075 ATTR_Value = XMLString::transcode("value");
00076
00077 ATTR_Column_all = XMLString::transcode("ALL");
00078 ATTR_Column_repeat = XMLString::transcode("REPEAT");
00079 }
00080
00081 ~RZSetDescriptionFile() {
00082
00083 try {
00084 XMLString::release(&TAG_Device_name);
00085 XMLString::release(&TAG_Device_package);
00086 XMLString::release(&TAG_Speed_grade);
00087 XMLString::release(&TAG_DP);
00088 XMLString::release(&TAG_SG);
00089 XMLString::release(&TAG_RZ_description);
00090 XMLString::release(&TAG_Column);
00091 XMLString::release(&ATTR_RZ_ID);
00092 XMLString::release(&ATTR_Column_number);
00093 XMLString::release(&ATTR_Line_number);
00094 XMLString::release(&ATTR_Height);
00095 XMLString::release(&ATTR_Reverse);
00096 XMLString::release(&ATTR_Value);
00097 XMLString::release(&ATTR_Column_all);
00098 XMLString::release(&ATTR_Column_repeat);
00099 } catch(...) {
00100 cerr << "Unknown exception encountered in TagNamesdtor" << endl;
00101 }
00102 }
00103
00104 int readConfigFile(Device *device, vector<RZ> &);
00105 void createDOMDocument(DOMDocument *doc, Device *device, vector<RZ> &);
00106 void writeConfigFile(Device *device, vector<RZ> &);
00107
00108 private:
00109 void readRZDescription(DOMDocument*, DOMElement*, Device* device, vector<RZ> &);
00110
00111 };
00112
00113 #endif