Пример #1
0
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]);
}
Пример #2
0
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]);
}