Home » U++ Library support » U++ Core » Vector a user defined struct for XML persistency
Vector a user defined struct for XML persistency [message #55196] |
Sat, 17 October 2020 10:20 |
sinpeople
Messages: 29 Registered: October 2020 Location: Singapore
|
Promising Member |
|
|
Hi folks,
I am trying to put a user-defined Phase struct into a vector before using XML for persistency. It worked fine before I put it into a vector.
The code is below:
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);
}
After the Vector<Phase> is added into the code, it has compiling error like
the following:
Quote:
Core/Topt.h line 171 required from 'void Upp::AssertMoveable(T*)[with T= Phase]'
Core/Topt.h line 157 error: no match for 'operator*'(operand type is 'Phase')
Ideally, I want the XML looks like
<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>
Thank you very much for your support!
Best Regards
David WANG
-
Attachment: Capture.JPG
(Size: 57.23KB, Downloaded 245 times)
|
|
|
|
|
Goto Forum:
Current Time: Thu Mar 28 21:04:22 CET 2024
Total time taken to generate the page: 0.02644 seconds
|