I am trying to Serialize a class : StartPeerSessionRequest::StartPeerSessionRequest() { mProtocolVersion = 1*10000 + 14*100 + 4; mSessionFlags = 1; mMaxResponseLength = 0; mMake = "MyMake"; mModel = "MyModel"; mSerialNumber = "10000"; mTrackDelay = 0; mHeadUnitModel = "Headunit"; mCarModelYear = "2014"; mVin = "1234567980"; mVehicleMileage = 1000; mShoutFormat = 3; mNotificationInterval = 1; } template <class Archive> void StartPeerSessionRequest::serialize(Archive &ar, const unsigned int version) { ar & mProtocolVersion; ar & mSessionFlags; ar & mMaxResponseLength; ar & mMake; ar & mModel; ar & mSerialNumber; ar & mTrackDelay; ar & mHeadUnitModel; ar & mCarModelYear; ar & mVin; ar & mVehicleMileage; ar & mShoutFormat; ar & mNotificationInterval; } void StartPeerSessionRequest::save() { boost::archive::binary_oarchive oa(serlreq, boost::archive::no_header); oa << (*this); /*cout<<"\n binary_oarchive :"<<serlreq.size();*/ boost::archive::text_oarchive ota(serializedRequest, boost::archive::no_header); ota<<(*this); cout<<"\n text_oarchive :"<<serializedRequest.str()<<"size :"<<serializedRequest.str().size(); } serializedRequest.str.size() provides me a length of 87
actually it should provide me 65 bytes.( I ve counted u can figure that out from the constructor ) I suspect it is appending lengths in between. I have tried using text_archive also it doesnt work. What I need is to just plain serialize class members as it is. I guess i need to use some traits or wrappers, or Please let me know Thanks |
Regards
Marshel Abraham
3097146