struct Phase
{
int id;
double split;
Vector<int> signal_groups;
int min_green;
int all_red;
int amber;
int skip;
void Xmlize(XmlIO& xml);
};
void Phase::Xmlize(XmlIO& xml)
{
xml
("id", id)
("split", split)
.List("signal_groups", "signal_group", signal_groups)
("min_green", min_green)
("all_red", all_red)
("amber", amber)
("skip", skip)
;
}
struct JunctionCFG {
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;
Phase phase;
// Comment here, other compiling error
// Vector<Phase> phase_grp;
void Init();
void Load();
void Save();
//void Dump();
void Xmlize(XmlIO& xml);
};
void JunctionCFG::Xmlize(XmlIO& xml)
{
xml
("Dimension", sz)
("text", text)
.List("vector", "size", vector)
("Scores", score)
("map", map)
("sizemap", sizemap)
("number", number)
("option", option)
("phase", phase)
// .List("phase_group", "phase", phase_grp)
;
XmlizeLang(xml, "Language", lang);
}
<phases>
<phase>
<id value="2"/>
<split value="0.25"/>
<signal_groups>
<signal_group value="25"/>
<signal_group value="50"/>
</signal_groups>
<min_green value="-986896"/>
<all_red value="20"/>
<amber value="4"/>
<skip value="-1"/>
</phase>
<phase>
<id value="2"/>
<split value="0.25"/>
<signal_groups>
<signal_group value="25"/>
<signal_group value="50"/>
</signal_groups>
<min_green value="-986896"/>
<all_red value="20"/>
<amber value="4"/>
<skip value="-1"/>
</phase>
<phase>
<id value="2"/>
<split value="0.25"/>
<signal_groups>
<signal_group value="25"/>
<signal_group value="50"/>
</signal_groups>
<min_green value="-986896"/>
<all_red value="20"/>
<amber value="4"/>
<skip value="-1"/>
</phase>
<phase>
<id value="2"/>
<split value="0.25"/>
<signal_groups>
<signal_group value="25"/>
<signal_group value="50"/>
</signal_groups>
<min_green value="-986896"/>
<all_red value="20"/>
<amber value="4"/>
<skip value="-1"/>
</phase>
</phases>