|
Boost Users : |
From: Oliver Mutz (omutz_at_[hidden])
Date: 2007-11-08 09:47:29
Hello Oliver,
Your save method has to be const.
Regards
Oliver
________________________________
Von: boost-users-bounces_at_[hidden]
[mailto:boost-users-bounces_at_[hidden]] Im Auftrag von Oliver Kania
Gesendet: Donnerstag, 8. November 2007 15:16
An: boost-users
Betreff: [Boost-users] [Boost Users] Serialization: problems when
splittingserialize into load / save
Hello out there !
I have an urgent problem concerning boost::serialize.
I have split the serialize operation into save / load as described
in the tutorial:
===================================================
template<class Archive>
void save( Archive &ar, unsigned int version) {
m_offlineMode = true;
// we cannot load more when offline --> always cachedAll
bool oldCachedAll = m_CachedAll;
m_CachedAll = true;
ar & m_CachedAll;
ar & m_offlineMode;
// do not serialize the lock -- use the default constructor.
// we assume that no iterators that lock the cache do exist
when serializing.
// ar & m_Lock;
ar & m_LookupId;
ar & m_LookupName;
ar & m_SequenceNumber;
//reset old state for the case we want to continue working
m_CachedAll = oldCachedAll;
m_offlineMode = false;
}
template<class Archive>
void load( Archive &ar, unsigned int version) {
ar & m_CachedAll;
ar & m_offlineMode;
// do not serialize the lock -- use the default constructor.
// we assume that no iterators that lock the cache do exist
when serializing.
// ar & m_Lock;
ar & m_LookupId;
ar & m_LookupName;
ar & m_SequenceNumber;
//reset old state for the case we want to continue working
}
BOOST_SERIALIZATION_SPLIT_MEMBER()
===============================================================
The class I serialize is part of a deep class hierarchy that I want to
serialize as a whole.
With the standard serialize() it seems to work, but now the compiler complains
( when I
want to perform the actual serialization):
error C2662: 'void
jedox::palo::AbstractCache<C,Exception>::save<Archive>(Archive &,unsigned
int)' :
cannot convert 'this' pointer from 'const
jedox::palo::AbstractCache<C,Exception>' to
'jedox::palo::AbstractCache<C,Exception> &'
AbstractCache is the class containing the above load / save operations
kind regards,
Oliver
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net