/* ======================================== Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ======================================== */ #ifndef __NE_MINIMAL_OS__ #ifdef __FSKIT_INCLUDES_OPENHEFS__ #include #include /// @brief OpenHeFS File System Manager. /// BUGS: 0 namespace Kernel { /// @brief C++ constructor HeFileSystemMgr::HeFileSystemMgr() { mParser = new HeFileSystemParser(); MUST_PASS(mParser); kout << "We are done allocating HeFileSystemParser...\n"; } HeFileSystemMgr::~HeFileSystemMgr() { if (mParser) { kout << "Destroying HeFileSystemParser...\n"; delete mParser; mParser = nullptr; } } /// @brief Removes a node from the filesystem. /// @param path The filename /// @return If it was deleted or not. bool HeFileSystemMgr::Remove(_Input const Char* path) { if (path == nullptr || *path == 0) { kout << "OpenHeFS: Remove called with null or empty path\n"; return false; } return NO; } /// @brief Creates a node with the specified. /// @param path The filename path. /// @return The Node pointer. NodePtr HeFileSystemMgr::Create(_Input const Char* path) { if (!path || *path == 0) { kout << "OpenHeFS: Create called with null or empty path\n"; return nullptr; } return nullptr; } /// @brief Creates a node which is a directory. /// @param path The filename path. /// @return The Node pointer. NodePtr HeFileSystemMgr::CreateDirectory(const Char* path) { if (!path || *path == 0) { kout << "OpenHeFS: CreateDirectory called with null or empty path\n"; return nullptr; } return nullptr; } /// @brief Creates a node which is an alias. /// @param path The filename path. /// @return The Node pointer. NodePtr HeFileSystemMgr::CreateAlias(const Char* path) { if (!path || *path == 0) { kout << "OpenHeFS: CreateAlias called with null or empty path\n"; return nullptr; } return nullptr; } NodePtr HeFileSystemMgr::CreateSwapFile(const Char* path) { if (!path || *path == 0) { kout << "OpenHeFS: CreateSwapFile called with null or empty path\n"; return nullptr; } return nullptr; } /// @brief Gets the root directory. /// @return const Char* NeFileSystemHelper::Root() { return kHeFSRootDirectory; } /// @brief Gets the up-dir directory. /// @return const Char* NeFileSystemHelper::UpDir() { return kHeFSUpDir; } /// @brief Gets the separator character. /// @return Char NeFileSystemHelper::Separator() { return kHeFSSeparator; } /// @brief Gets the metafile character. /// @return Char NeFileSystemHelper::MetaFile() { return '\0'; } /// @brief Opens a new file. /// @param path /// @param r /// @return _Output NodePtr HeFileSystemMgr::Open(_Input const Char* path, _Input const Char* r) { if (!path || *path == 0) { kout << "OpenHeFS: Open called with null or empty path\n"; return nullptr; } if (!r || *r == 0) { kout << "OpenHeFS: Open called with null or empty mode string\n"; return nullptr; } return nullptr; } Void HeFileSystemMgr::Write(_Input NodePtr node, _Input VoidPtr data, _Input Int32 flags, _Input SizeT size) { NE_UNUSED(node); NE_UNUSED(flags); NE_UNUSED(size); NE_UNUSED(data); } _Output VoidPtr HeFileSystemMgr::Read(_Input NodePtr node, _Input Int32 flags, _Input SizeT size) { NE_UNUSED(node); NE_UNUSED(flags); NE_UNUSED(size); return nullptr; } Void HeFileSystemMgr::Write(_Input const Char* name, _Input NodePtr node, _Input VoidPtr data, _Input Int32 flags, _Input SizeT size) { NE_UNUSED(node); NE_UNUSED(flags); NE_UNUSED(size); NE_UNUSED(name); NE_UNUSED(data); } _Output VoidPtr HeFileSystemMgr::Read(_Input const Char* name, _Input NodePtr node, _Input Int32 flags, _Input SizeT sz) { NE_UNUSED(node); NE_UNUSED(flags); NE_UNUSED(sz); NE_UNUSED(name); return nullptr; } _Output Bool HeFileSystemMgr::Seek(NodePtr node, SizeT off) { NE_UNUSED(node); NE_UNUSED(off); return false; } /// @brief Tell current offset within catalog. /// @param node /// @return kFileMgrNPos if invalid, else current offset. _Output SizeT HeFileSystemMgr::Tell(NodePtr node) { NE_UNUSED(node); return kFileMgrNPos; } /// @brief Rewinds the catalog /// @param node /// @return False if invalid, nah? calls Seek(node, 0). _Output Bool HeFileSystemMgr::Rewind(NodePtr node) { NE_UNUSED(node); return kFileMgrNPos; } /// @brief Returns the parser of OpenHeFS. _Output HeFileSystemParser* HeFileSystemMgr::GetParser() noexcept { return mParser; } } // namespace Kernel #endif // ifdef __FSKIT_INCLUDES_OPENHEFS__ #endif // ifndef __NE_MINIMAL_OS__