bool Board_Move_Dataset_record::addRecord(std::shared_ptr<Common::Record> record) {
   m_records.push_back(record);
   if (m_records.size() == 1) {
     seekToBegin();
   }
   return true;
 }
Exemple #2
0
bool FileStream::save(const char* newName)
{
	Assert(!m_path.empty());

	if (newName == NULL)
		return flush();

	int oldPos = 0;
	uint size = 0;
	uchar* buffer = 0;

	FileStream fs(newName);
	bool isopen = isOpen();
	if (!fs.open("wb"))
		goto IOErr;

	if (isopen)
	{
		flush();
		oldPos = getPosition();
	}
	else
	{
		if (!open())
			goto IOErr;
	}

	size = getLength();
	buffer = 0;
	if (size > 0)
	{
		buffer = new uchar[size];
		if (!seekToBegin() || !read(buffer, size) || !fs.write(buffer, size))
			goto IOErr;
	}
	fs.close();

	if (isopen)
		seek(oldPos);
	else
		close();

	safeDeleteArray(buffer);
	return true;

IOErr:
	if (!isopen && isOpen())
		close();
	fs.close();
	safeDeleteArray(buffer);
	return false;
}