void CAccess::insertSerializationData(std::vector<unsigned char>& buffer,int dataName,const std::vector<unsigned char>& data){ // 1. We remove the old data: std::vector<unsigned char> dummyBuffer; extractSerializationData(buffer,dataName,dummyBuffer); // 2. and insert the new data: // 2.1 data name: const unsigned int prevBuffSize = buffer.size(); const unsigned int dataSize = data.size(); buffer.resize(prevBuffSize+2*sizeof(int)+dataSize); int* prevBuffEnd = (int *)(buffer.data()+prevBuffSize); prevBuffEnd[0] = dataName; prevBuffEnd[1] = dataSize; memcpy((unsigned char *)(prevBuffEnd+2),data.data(),dataSize); // for (int i=0;i<4;i++) // buffer.push_back(((unsigned char*)&dataName)[i]); // // std::cout << "bufferSize: " << buffer.size() << std::endl; // // // 2.2 Data length: // int l=int(data.size()); // for (int i=0;i<4;i++) // buffer.push_back(((unsigned char*)&l)[i]); // // 2.3 The data itself: // for (int i=0;i<l;i++) // buffer.push_back(data[i]); }
void CAccess::insertSerializationData(std::vector<unsigned char>& buffer,int dataName,const std::vector<unsigned char>& data) { // Inserts data under the dataName item (see header file on data organization) // 1. We remove the old data: std::vector<unsigned char> dummyBuffer; extractSerializationData(buffer,dataName,dummyBuffer); // 2. and insert the new data: // 2.1 data name: for (int i=0;i<4;i++) buffer.push_back(((unsigned char*)&dataName)[i]); // 2.2 Data length: int l=int(data.size()); for (int i=0;i<4;i++) buffer.push_back(((unsigned char*)&l)[i]); // 2.3 The data itself: for (int i=0;i<l;i++) buffer.push_back(data[i]); }