Filesystem¶
Namespace: dftracer::utils::utilities::filesystem
-
class DirectoryScannerUtility : public dftracer::utils::utilities::Utility<DirectoryScannerUtilityInput, std::vector<FileEntry>, utilities::tags::Parallelizable, utilities::tags::NeedsContext>¶
Utility that scans a directory and returns a list of file entries.
This utility scans a directory (optionally recursively) and returns metadata about each file/subdirectory found.
Features:
Non-recursive scanning (default)
Recursive scanning when Directory.recursive = true
Returns file metadata (path, size, type)
Can be composed with other utilities in a pipeline
Usage:
auto scanner = std::make_shared<DirectoryScanner>(); auto result = scanner->process(Directory{"/path/to/dir"}); for (const auto& entry : result) { std::cout << entry.path << " - " << entry.size << " bytes\n"; }
Public Functions
-
DirectoryScannerUtility() = default¶
-
~DirectoryScannerUtility() = default¶
-
inline coro::CoroTask<std::vector<FileEntry>> process(const DirectoryScannerUtilityInput &input) override¶
Scan directory and return list of file entries.
- Parameters:
input – Directory to scan (with optional recursive flag)
- Throws:
fs::filesystem_error – if directory doesn’t exist or is inaccessible
- Returns:
Vector of FileEntry objects
-
struct DirectoryScannerUtilityInput¶
Input structure representing a directory to scan.
Public Functions
-
inline explicit DirectoryScannerUtilityInput(fs::path p, bool rec = false, bool with_size = true)¶
-
inline bool operator==(const DirectoryScannerUtilityInput &other) const¶
-
inline bool operator!=(const DirectoryScannerUtilityInput &other) const¶
-
inline explicit DirectoryScannerUtilityInput(fs::path p, bool rec = false, bool with_size = true)¶
-
struct FileEntry¶
Output structure representing a file entry.
-
class PatternDirectoryScannerUtility : public dftracer::utils::utilities::Utility<PatternDirectoryScannerUtilityInput, std::vector<FileEntry>, utilities::tags::Parallelizable, utilities::tags::NeedsContext>¶
Directory scanner that filters files by patterns/extensions.
This component extends DirectoryScanner by adding pattern matching for file extensions or patterns. Supports:
Extension matching: “.pfw”, “.gz”
Suffix matching: “.pfw.gz”
Simple glob patterns: “*.txt” (future enhancement)
Usage:
PatternDirectoryScanner scanner; auto files = scanner.process( PatternDirectory{"/path/to/dir", {".pfw", ".pfw.gz"}} );
Public Functions
-
PatternDirectoryScannerUtility() = default¶
-
inline coro::CoroTask<std::vector<FileEntry>> process(const PatternDirectoryScannerUtilityInput &input) override¶
Scan directory and filter by patterns.
- Parameters:
input – Directory path, patterns, and recursive flag
- Returns:
Vector of file entries matching patterns
-
struct PatternDirectoryScannerUtilityInput¶
Input for pattern-based directory scanning.
Public Functions
-
PatternDirectoryScannerUtilityInput() = default¶
-
inline PatternDirectoryScannerUtilityInput(std::string p, std::vector<std::string> pats, bool rec = false, bool with_size = true)¶
-
inline PatternDirectoryScannerUtilityInput &with_patterns(std::vector<std::string> pats)¶
-
inline PatternDirectoryScannerUtilityInput &with_recursive(bool rec)¶
-
inline PatternDirectoryScannerUtilityInput &with_populate_size(bool with_size)¶
Public Members
-
std::string path¶
-
bool recursive = false¶
-
bool populate_size = true¶
-
std::vector<std::string> patterns¶
Public Static Functions
-
static inline PatternDirectoryScannerUtilityInput from_path(std::string p)¶
-
PatternDirectoryScannerUtilityInput() = default¶