mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
83 lines
1.7 KiB
C++
83 lines
1.7 KiB
C++
#include <Core/Core.h>
|
|
|
|
using namespace Upp;
|
|
|
|
struct Data {
|
|
Size sz;
|
|
int lang;
|
|
String text;
|
|
Vector<Size> vector;
|
|
VectorMap<String, int> score;
|
|
VectorMap<String, String> map;
|
|
ArrayMap<int, Size> sizemap;
|
|
double number;
|
|
bool option;
|
|
|
|
void Dump();
|
|
void Xmlize(XmlIO& xml);
|
|
};
|
|
|
|
void Data::Xmlize(XmlIO& xml)
|
|
{
|
|
xml
|
|
("Dimension", sz)
|
|
("text", text)
|
|
.List("vector", "size", vector)
|
|
("Scores", score)
|
|
("map", map)
|
|
("sizemap", sizemap)
|
|
("number", number)
|
|
("option", option)
|
|
;
|
|
XmlizeLang(xml, "Language", lang);
|
|
}
|
|
|
|
void Data::Dump()
|
|
{
|
|
DUMP(sz);
|
|
DUMP(text);
|
|
LOG("lang: " << LNGAsText(lang));
|
|
DUMPC(vector);
|
|
LOG("score: ");
|
|
for(int i = 0; i < score.GetCount(); i++)
|
|
LOG(" " << score.GetKey(i) << " ..... " << score[i]);
|
|
LOG("map: ");
|
|
for(int i = 0; i < map.GetCount(); i++)
|
|
LOG(" " << map.GetKey(i) << " ..... " << map[i]);
|
|
LOG("sizemap: ");
|
|
for(int i = 0; i < sizemap.GetCount(); i++)
|
|
LOG(" " << sizemap.GetKey(i) << " ..... " << sizemap[i]);
|
|
DUMP(number);
|
|
DUMP(option);
|
|
}
|
|
|
|
CONSOLE_APP_MAIN
|
|
{
|
|
StdLogSetup(LOG_COUT|LOG_FILE);
|
|
|
|
Data x;
|
|
x.sz.cx = 10;
|
|
x.sz.cy = 20;
|
|
x.lang = LNGFromText("CS-CZ");
|
|
x.text = "Some text";
|
|
x.vector.Add(Size(1, 2));
|
|
x.vector.Add(Size(3, 4));
|
|
x.score.Add("peter", 100);
|
|
x.score.Add("john", 10);
|
|
x.score.Add("frank", 20);
|
|
x.map.Add("keytext", "valuetext");
|
|
x.map.Add("key1text", "value1text");
|
|
x.sizemap.Add(1, Size(2, 3));
|
|
x.sizemap.Add(10, Size(20, 30));
|
|
x.number = -1.235e-30;
|
|
x.option = true;
|
|
|
|
LOG(StoreAsXML(x));
|
|
LOG("====");
|
|
|
|
StoreAsXMLFile(x);
|
|
|
|
Data y;
|
|
LoadFromXMLFile(y);
|
|
y.Dump();
|
|
}
|