void CPersistentDataContainer::_serialize(VArchive& ar,std::vector<std::string>& dataNames,std::vector<std::string>& dataValues) { if (ar.isStoring()) { // Storing ar << int(dataNames.size()); for (int i=0;i<int(dataNames.size());i++) { ar << (unsigned char) (1); ar << int(dataNames[i].size()); for (int j=0;j<int(dataNames[i].size());j++) ar << (unsigned char)(dataNames[i][j]); ar << int(dataValues[i].size()); for (int j=0;j<int(dataValues[i].size());j++) ar << (unsigned char)(dataValues[i][j]); } ar << (unsigned char) (0); } else { // Loading int count; ar >> count; if (count>0) { unsigned char d=1; while (d!=0) { ar >> d; if (d!=0) { std::string dat; std::string val; int l; unsigned char v; ar >> l; for (int i=0;i<l;i++) { ar >> v; dat+=v; } ar >> l; for (int i=0;i<l;i++) { ar >> v; val+=v; } dataNames.push_back(dat); dataValues.push_back(val); } } }