From 1573a8c4cde1cd9528b422b2dcc598e37ffe94a7 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 2 May 2024 19:12:26 +1000 Subject: WIP merge cyclically dependent components into one big component --- src/database/file_gatherer.cpp | 80 ------------------------------------------ 1 file changed, 80 deletions(-) delete mode 100644 src/database/file_gatherer.cpp (limited to 'src/database/file_gatherer.cpp') diff --git a/src/database/file_gatherer.cpp b/src/database/file_gatherer.cpp deleted file mode 100644 index b7b7271e..00000000 --- a/src/database/file_gatherer.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2023 jacqueline - * - * SPDX-License-Identifier: GPL-3.0-only - */ - -#include "file_gatherer.hpp" - -#include -#include -#include -#include - -#include "ff.h" - -#include "memory_resource.hpp" -#include "spi.hpp" - -namespace database { - -static_assert(sizeof(TCHAR) == sizeof(char), "TCHAR must be CHAR"); - -auto FileGathererImpl::FindFiles( - const std::string& root, - std::function cb) -> void { - std::pmr::deque to_explore{&memory::kSpiRamResource}; - to_explore.push_back({root.data(), root.size()}); - - while (!to_explore.empty()) { - auto next_path_str = to_explore.front(); - to_explore.pop_front(); - - const TCHAR* next_path = static_cast(next_path_str.c_str()); - - FF_DIR dir; - FRESULT res; - { - auto lock = drivers::acquire_spi(); - res = f_opendir(&dir, next_path); - } - if (res != FR_OK) { - // TODO: log. - continue; - } - - for (;;) { - FILINFO info; - { - auto lock = drivers::acquire_spi(); - res = f_readdir(&dir, &info); - } - if (res != FR_OK || info.fname[0] == 0) { - // No more files in the directory. - break; - } else if (info.fattrib & (AM_HID | AM_SYS) || info.fname[0] == '.') { - // System or hidden file. Ignore it and move on. - continue; - } else { - std::pmr::string full_path{&memory::kSpiRamResource}; - full_path += next_path_str; - full_path += "/"; - full_path += info.fname; - - if (info.fattrib & AM_DIR) { - // This is a directory. Add it to the explore queue. - to_explore.push_back(full_path); - } else { - // This is a file! Let the callback know about it. - // std::invoke(cb, full_path.str(), info); - std::invoke(cb, full_path, info); - } - } - } - - auto lock = drivers::acquire_spi(); - f_closedir(&dir); - } -} - -} // namespace database -- cgit v1.2.3