ultimatepp/reference/XmlizeCustomValue/XmlizeCustomValue.cpp
cxl 94f5cdb0e8 reference: XmlizeCustomValue example
git-svn-id: svn://ultimatepp.org/upp/trunk@2156 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2010-02-28 13:37:30 +00:00

43 lines
1,016 B
C++

#include <Core/Core.h>
using namespace Upp;
struct MyCustomValue : AssignValueTypeNo<MyCustomValue, 514> {
int x, y, z;
int operator==(const MyCustomValue& o) const { return false; }
void Serialize(Stream& s) {}
String ToString() const { return ""; }
unsigned GetHashValue() const { return 0; }
bool IsNullInstance() const { return false; }
operator Value() const { return RichValue<MyCustomValue>(*this); }
MyCustomValue(const Value& v) { *this = ValueTo<MyCustomValue>(v); }
MyCustomValue() {}
};
void Xmlize(XmlIO xml, MyCustomValue& v)
{
xml
.Attr("x", v.x)
.Attr("y", v.y)
.Attr("z", v.z)
;
}
INITBLOCK {
RichValue<Color>::Register();
}
REGISTER_VALUE_XMLIZE(MyCustomValue);
CONSOLE_APP_MAIN
{
MyCustomValue a;
a.x = 1;
a.y = 2;
a.z = 3;
Value v = a;
LOG(StoreAsXML(v, "Test"));
}