7 #include "tinyxml/tinyxml.h"
9 #include "libwfut/types.h"
10 #include "libwfut/FileIO.h"
11 #include "libwfut/ChannelFileList.h"
12 #include "libwfut/Encoder.h"
16 static int writeFile(TiXmlElement *element,
const FileObject &file) {
21 std::stringstream ss_crc32, ss_size;
22 ss_crc32 << file.crc32;
27 element->SetAttribute(TAG_version, file.version);
28 element->SetAttribute(TAG_crc32, ss_crc32.str());
29 element->SetAttribute(TAG_size, ss_size.str());
31 element->SetAttribute(TAG_execute, file.execute);
36 int writeFileList(
const std::string &filename,
const ChannelFileList &files) {
38 doc.InsertEndChild(TiXmlDeclaration(
"1.0",
"",
""));
40 TiXmlElement flist(TAG_filelist);
41 flist.SetAttribute(TAG_dir, files.getName());
43 const FileMap filemap = files.getFiles();
44 FileMap::const_iterator itr = filemap.begin();
45 while (itr != filemap.end()) {
46 TiXmlElement file(TAG_file);
47 writeFile(&file, itr->second);
48 flist.InsertEndChild(file);
52 doc.InsertEndChild(flist);
53 if (!doc.SaveFile(filename)) {
static std::string encodeString(const std::string &str)