#ifndef SCANNER_H #define SCANNER_H #include "chunk.h" #include "queue.h" #include #include typedef struct { Queue *directories; DIR *current_dir; char *current_path; bool use_metadata; unsigned long long chunk_size; char **exclude_patterns; int exclude_count; char **include_patterns; int include_count; unsigned long long max_size; unsigned long long min_size; } DirectoryScanner; DirectoryScanner *directory_scanner_create(char *root_directory, bool use_metadata, unsigned long long chunk_size, char **exclude_patterns, int exclude_count, char **include_patterns, int include_count, unsigned long long max_size, unsigned long long min_size); Chunk *directory_scanner_next(DirectoryScanner *scanner); void directory_scanner_destroy(DirectoryScanner *scanner); #endif