void Entity::write(stream::Writer &writer) const { if(!good()) { writeDescriptor(writer, nullptr); return; } writeDescriptor(writer, descriptor); PositionF position = physicsObject->getPosition(); VectorF velocity = physicsObject->getVelocity(); stream::write<PositionF>(writer, position); stream::write<VectorF>(writer, velocity); descriptor->write(position, velocity, data, writer); }
/** * @brief Exports the portfolios to the archive. * The portfolios must have been sets before with addPortfolios. */ void ExportManager::exportArchive() { QuaZip zip(this->archivePath); if(!zip.open(QuaZip::mdCreate)) { throw ExportException("Cannot create archive "+this->archivePath+"."); } QuaZipFile archivedFile(&zip); // Adds the descriptor file in the archive: QByteArray data = writeDescriptor(); if(!archivedFile.open(QIODevice::WriteOnly, QuaZipNewInfo("portfolios.json"))) { throw ExportException("Cannot create descriptor file in archive."); } archivedFile.write(data); archivedFile.close(); // Adds the reports and assets' files to the archive: QDir resourcesFolder(SQLiteManager::getSessionFolder() + QDir::separator() + "Resources"); addToArchive(resourcesFolder, "Reports", archivedFile); addToArchive(resourcesFolder, "Assets", archivedFile); zip.close(); if(zip.getZipError() != 0) { throw ExportException("Error while archiving ("+QString::number(zip.getZipError())+")."); } }