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; }
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; }