[nostalgia/studio] Replace int errors with ox::Error

This commit is contained in:
Gary Talent 2019-08-02 22:39:31 -05:00
parent 3c45558dfc
commit 8cd38dccbf
2 changed files with 21 additions and 29 deletions

View File

@ -29,7 +29,7 @@ void Project::create() {
QDir().mkpath(m_path); QDir().mkpath(m_path);
} }
int Project::openRomFs() { ox::Error Project::openRomFs() {
QFile file(m_path + ROM_FILE); QFile file(m_path + ROM_FILE);
auto buffSize = file.size(); auto buffSize = file.size();
auto buff = std::make_unique<uint8_t[]>(buffSize); auto buff = std::make_unique<uint8_t[]>(buffSize);
@ -38,20 +38,20 @@ int Project::openRomFs() {
if (file.read(reinterpret_cast<char*>(buff.get()), buffSize) > 0) { if (file.read(reinterpret_cast<char*>(buff.get()), buffSize) > 0) {
m_fsBuff = std::move(buff); m_fsBuff = std::move(buff);
if (m_fs.valid()) { if (m_fs.valid()) {
return 0; return OxError(0);
} else { } else {
return 1; return OxError(1);
} }
} else { } else {
return 2; return OxError(2);
} }
} else { } else {
return 3; return OxError(3);
} }
} }
int Project::saveRomFs() const { ox::Error Project::saveRomFs() const {
int err = 0; ox::Error err(0);
//QFile file(m_path + ROM_FILE); //QFile file(m_path + ROM_FILE);
//err |= file.open(QIODevice::WriteOnly) == false; //err |= file.open(QIODevice::WriteOnly) == false;
//err |= file.write((const char*) m_fsBuff.get(), m_fs.size()) == -1; //err |= file.write((const char*) m_fsBuff.get(), m_fs.size()) == -1;
@ -63,20 +63,20 @@ PassThroughFS *Project::romFs() {
return &m_fs; return &m_fs;
} }
int Project::mkdir(QString path) const { ox::Error Project::mkdir(QString path) const {
auto err = m_fs.mkdir(path.toUtf8().data(), true); auto err = m_fs.mkdir(path.toUtf8().data(), true);
emit updated(path); emit updated(path);
return err; return err;
} }
int Project::write(QString path, uint8_t *buff, size_t buffLen) const { ox::Error Project::write(QString path, uint8_t *buff, size_t buffLen) const {
auto err = m_fs.write(path.toUtf8().data(), buff, buffLen); auto err = m_fs.write(path.toUtf8().data(), buff, buffLen);
emit updated(path); emit updated(path);
return err; return err;
} }
ox::FileStat Project::stat(QString path) const { ox::ValErr<ox::FileStat> Project::stat(QString path) const {
return m_fs.stat(path.toUtf8().data()).value; return m_fs.stat(path.toUtf8().data());
} }
} }

View File

@ -35,23 +35,23 @@ class Project: public QObject {
void create(); void create();
int openRomFs(); ox::Error openRomFs();
int saveRomFs() const; ox::Error saveRomFs() const;
ox::PassThroughFS *romFs(); ox::PassThroughFS *romFs();
int mkdir(QString path) const; ox::Error mkdir(QString path) const;
int write(QString path, uint8_t *buff, size_t buffLen) const; ox::Error write(QString path, uint8_t *buff, size_t buffLen) const;
/** /**
* Writes a MetalClaw object to the project at the given path. * Writes a MetalClaw object to the project at the given path.
*/ */
template<typename T> template<typename T>
int writeObj(QString path, T *obj) const; ox::Error writeObj(QString path, T *obj) const;
ox::FileStat stat(QString path) const; ox::ValErr<ox::FileStat> stat(QString path) const;
signals: signals:
void updated(QString path) const; void updated(QString path) const;
@ -59,27 +59,19 @@ class Project: public QObject {
}; };
template<typename T> template<typename T>
int Project::writeObj(QString path, T *obj) const { ox::Error Project::writeObj(QString path, T *obj) const {
int err = 0;
auto buffLen = 1024 * 1024 * 10; auto buffLen = 1024 * 1024 * 10;
QByteArray buff(buffLen, 0); QByteArray buff(buffLen, 0);
// write MetalClaw // write MetalClaw
size_t mcSize = 0; size_t mcSize = 0;
err |= ox::writeMC(reinterpret_cast<uint8_t*>(buff.data()), buffLen, obj, &mcSize); oxReturnError(ox::writeMC(reinterpret_cast<uint8_t*>(buff.data()), buffLen, obj, &mcSize));
if (err) {
return err;
}
// write to FS // write to FS
err |= write(path, reinterpret_cast<uint8_t*>(buff.data()), mcSize); oxReturnError(write(path, reinterpret_cast<uint8_t*>(buff.data()), mcSize));
if (err) {
return err;
}
emit updated(path); emit updated(path);
return err; return OxError(0);
} }
} }