Hello everybody,
I would like to know what the purpose of the xml attribute class_id is,
how it works and in which cases it can be omitted.
An example: “Base” is the (abstract) base class of _GMTF_ and _TTF_, and
_Hist_ also has got a similar base class.
If a pointer of Hist is a member of GMTF and you want to serialize a
pointer of Base, you get something like:
<filter class_id="0" class_name="GMTF">
4
</filter>
Here, the macros
• BOOST_CLASS_EXPORT_GUID(...),
• BOOST_CLASS_IMPLEMENTATION(...,
boost::serialization::object_serializable) and
• BOOST_CLASS_TRACKING(..., boost::serialization::track_never)
are used.
The problem now is: Although the exact classes are given by
human-readable class names (and used!), you cannot omit or change the
class_id. If you edit the XML file by hand, it can become invalid (->
exception on reading). It seems that the class ids are just ascending
non-negative numbers.
What are the rules for choosing the class ids? Why are they necessary?
Is there a trick to remove this attribute or at least to ignore it?
Thanks,
Frank
--
Frank Stähr
Technische Universität Berlin
Communication Systems Group
Sekr. EN1 Einsteinufer 17
10587 Berlin, Germany