From 0c6a557878a517734b899c0b614bab15e71185a4 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Sat, 1 Sep 2018 15:52:59 -0500 Subject: [PATCH] [ox/fs] Make Directory type a type parameter in FileSystemTemplate --- deps/ox/src/ox/fs/filesystem2/filesystem.cpp | 4 +- deps/ox/src/ox/fs/filesystem2/filesystem.hpp | 106 +++++++++---------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/deps/ox/src/ox/fs/filesystem2/filesystem.cpp b/deps/ox/src/ox/fs/filesystem2/filesystem.cpp index a4d7fb327..3d52a2835 100644 --- a/deps/ox/src/ox/fs/filesystem2/filesystem.cpp +++ b/deps/ox/src/ox/fs/filesystem2/filesystem.cpp @@ -13,7 +13,7 @@ namespace ox::fs { template class Directory; template class Directory; -template class FileSystemTemplate; -template class FileSystemTemplate; +template class FileSystemTemplate>; +template class FileSystemTemplate>; } diff --git a/deps/ox/src/ox/fs/filesystem2/filesystem.hpp b/deps/ox/src/ox/fs/filesystem2/filesystem.hpp index 5eafd1345..ec6bc28db 100644 --- a/deps/ox/src/ox/fs/filesystem2/filesystem.hpp +++ b/deps/ox/src/ox/fs/filesystem2/filesystem.hpp @@ -15,7 +15,7 @@ namespace ox::fs { -template +template class FileSystemTemplate { private: static constexpr InodeId_t InodeFsData = 2; @@ -82,21 +82,21 @@ class FileSystemTemplate { }; -template -FileSystemTemplate::FileSystemTemplate(FileStore *fs) { +template +FileSystemTemplate::FileSystemTemplate(FileStore *fs) { m_fs = fs; } -template -FileSystemTemplate::~FileSystemTemplate() { +template +FileSystemTemplate::~FileSystemTemplate() { } -template -Error FileSystemTemplate::format() { +template +Error FileSystemTemplate::format() { oxReturnError(m_fs->format()); constexpr auto rootDirInode = MaxValue / 2; - Directory rootDir(m_fs, rootDirInode); + Directory rootDir(m_fs, rootDirInode); oxReturnError(rootDir.init()); FileSystemData fd; @@ -111,12 +111,12 @@ Error FileSystemTemplate::format() { return OxError(0); } -template -Error FileSystemTemplate::mkdir(const char *path, bool recursive) { +template +Error FileSystemTemplate::mkdir(const char *path, bool recursive) { auto fd = fileSystemData(); if (fd.ok()) { oxTrace("ox::fs::FileSystemTemplate::mkdir") << "rootDirInode:" << fd.value.rootDirInode; - Directory rootDir(m_fs, fd.value.rootDirInode); + Directory rootDir(m_fs, fd.value.rootDirInode); return rootDir.mkdir(path, recursive); } else { oxLogError(fd.error); @@ -124,11 +124,11 @@ Error FileSystemTemplate::mkdir(const char *path, bool recursive) { } } -template -Error FileSystemTemplate::move(const char *src, const char *dest) { +template +Error FileSystemTemplate::move(const char *src, const char *dest) { auto fd = fileSystemData(); oxReturnError(fd.error); - Directory rootDir(m_fs, fd.value.rootDirInode); + Directory rootDir(m_fs, fd.value.rootDirInode); auto inode = rootDir.find(src); oxReturnError(inode.error); oxReturnError(rootDir.write(dest, inode)); @@ -136,31 +136,31 @@ Error FileSystemTemplate::move(const char *src, const char *dest) { return OxError(0); } -template -Error FileSystemTemplate::read(const char *path, void *buffer, std::size_t buffSize) { +template +Error FileSystemTemplate::read(const char *path, void *buffer, std::size_t buffSize) { auto fd = fileSystemData(); oxReturnError(fd.error); - Directory rootDir(m_fs, fd.value.rootDirInode); + Directory rootDir(m_fs, fd.value.rootDirInode); auto inode = rootDir.find(path); oxReturnError(inode.error); return read(inode, buffer, buffSize); } -template -Error FileSystemTemplate::read(uint64_t inode, void *buffer, std::size_t buffSize) { +template +Error FileSystemTemplate::read(uint64_t inode, void *buffer, std::size_t buffSize) { return m_fs->read(inode, buffer, buffSize); } -template -Error FileSystemTemplate::read(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) { +template +Error FileSystemTemplate::read(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) { return m_fs->read(inode, readStart, readSize, buffer, size); } -template -Error FileSystemTemplate::remove(const char *path, bool recursive) { +template +Error FileSystemTemplate::remove(const char *path, bool recursive) { auto fd = fileSystemData(); oxReturnError(fd.error); - Directory rootDir(m_fs, fd.value.rootDirInode); + Directory rootDir(m_fs, fd.value.rootDirInode); auto inode = rootDir.find(path); oxReturnError(inode.error); auto st = stat(inode); @@ -178,26 +178,26 @@ Error FileSystemTemplate::remove(const char *path, bool recursive) { return OxError(0); } -template -void FileSystemTemplate::resize(uint64_t size, void *buffer) { +template +void FileSystemTemplate::resize(uint64_t size, void *buffer) { m_fs->resize(size, buffer); } -template -Error FileSystemTemplate::write(const char *path, void *buffer, uint64_t size, uint8_t fileType) { +template +Error FileSystemTemplate::write(const char *path, void *buffer, uint64_t size, uint8_t fileType) { auto inode = find(path); oxReturnError(inode.error); return write(inode, buffer, size, fileType); } -template -Error FileSystemTemplate::write(uint64_t inode, void *buffer, uint64_t size, uint8_t fileType) { +template +Error FileSystemTemplate::write(uint64_t inode, void *buffer, uint64_t size, uint8_t fileType) { // TODO: directory insert return m_fs->write(inode, buffer, size, fileType); } -template -ValErr FileSystemTemplate::stat(uint64_t inode) { +template +ValErr FileSystemTemplate::stat(uint64_t inode) { auto s = m_fs->stat(inode); FileStat out; out.inode = s.value.inode; @@ -207,8 +207,8 @@ ValErr FileSystemTemplate::stat(uint64_t inode) { return {out, s.error}; } -template -ValErr FileSystemTemplate::stat(const char *path) { +template +ValErr FileSystemTemplate::stat(const char *path) { auto inode = find(path); if (inode.error) { return {{}, inode.error}; @@ -216,33 +216,33 @@ ValErr FileSystemTemplate::stat(const char *path) { return stat(inode.value); } -template -uint64_t FileSystemTemplate::spaceNeeded(uint64_t size) { +template +uint64_t FileSystemTemplate::spaceNeeded(uint64_t size) { return m_fs->spaceNeeded(size); } -template -uint64_t FileSystemTemplate::available() { +template +uint64_t FileSystemTemplate::available() { return m_fs->available(); } -template -uint64_t FileSystemTemplate::size() { +template +uint64_t FileSystemTemplate::size() { return m_fs->size(); } -template -uint8_t *FileSystemTemplate::buff() { +template +uint8_t *FileSystemTemplate::buff() { return m_fs->buff(); } -template -Error FileSystemTemplate::walk(Error(*cb)(uint8_t, uint64_t, uint64_t)) { +template +Error FileSystemTemplate::walk(Error(*cb)(uint8_t, uint64_t, uint64_t)) { return m_fs->walk(cb); } -template -ValErr::FileSystemData> FileSystemTemplate::fileSystemData() { +template +ValErr::FileSystemData> FileSystemTemplate::fileSystemData() { FileSystemData fd; auto err = m_fs->read(InodeFsData, &fd, sizeof(fd)); if (err != 0) { @@ -251,11 +251,11 @@ ValErr::FileSystemData> FileSystemTemplat return fd; } -template -ValErr FileSystemTemplate::find(const char *path) { +template +ValErr FileSystemTemplate::find(const char *path) { auto fd = fileSystemData(); oxReturnError(fd.error); - Directory rootDir(m_fs, fd.value.rootDirInode); + Directory rootDir(m_fs, fd.value.rootDirInode); auto inode = rootDir.find(path); oxReturnError(inode.error); return inode.value; @@ -264,10 +264,10 @@ ValErr FileSystemTemplate::find(const char *path) { extern template class Directory; extern template class Directory; -extern template class FileSystemTemplate; -extern template class FileSystemTemplate; +extern template class FileSystemTemplate>; +extern template class FileSystemTemplate>; -using FileSystem16 = FileSystemTemplate; -using FileSystem32 = FileSystemTemplate; +using FileSystem16 = FileSystemTemplate>; +using FileSystem32 = FileSystemTemplate>; }