11#include <util/ifile.h>
28using DirectoryList = std::map<std::string, std::unique_ptr<IDirectory>>;
35using FileList = std::map<std::string, std::unique_ptr<IFile>>;
78 [[nodiscard]] std::string
Name()
const;
92 [[nodiscard]]
const std::string&
Directory()
const {
return directory_; }
100 void Modified(uint64_t ns1970) { modified_ = ns1970; }
108 [[nodiscard]] uint64_t
Modified()
const {
return modified_; }
116 void Level(
size_t level) { level_ = level; }
123 [[nodiscard]]
size_t Level()
const {
return level_; }
218 [[nodiscard]]
const std::string&
LastError()
const {
return last_error_; }
239 std::string directory_;
244 uint64_t modified_ = 0;
245 std::string last_error_;
The class is simple wrapper around a directory/file tree structure. It is typically used in applicati...
Definition idirectory.h:59
void Level(size_t level)
Set the directory level.
Definition idirectory.h:116
virtual ~IDirectory()=default
Destructor.
IDirectory(const IDirectory &source)
Copy constructor.
const DirectoryList & Directories() const
Returns the sub-directory list.
Definition idirectory.h:131
const std::string & LastError() const
Returns last error text.
Definition idirectory.h:218
std::string ExcludeListToString() const
Converts a list into a text string.
void StringToExcludeList(const std::string &text)
Convert a string into a exclude list.ยง
FilterList & IncludeList()
Returns a list of name filters.
Definition idirectory.h:187
FilterList & ExcludeList()
Returns a list of name filters.
Definition idirectory.h:155
bool ExcludeFile(const std::string &name) const
Checks if the name is matching anything in the exclude list.
IDirectory()=default
Default constructor.
const FileList & Files() const
Returns a list files in the directory.
Definition idirectory.h:138
void Directory(const std::string &dir)
Sets the directory.
IDirectory(const std::string &dir_path)
Constructor by supplying a full path to a directory.
size_t Level() const
Returns the relative directory depth level.
Definition idirectory.h:123
void Modified(uint64_t ns1970)
Sets the last modified time.
Definition idirectory.h:100
const std::string & Directory() const
Returns the directory.
Definition idirectory.h:92
bool IncludeFile(const std::string &name) const
Checks if the name is matching anything in the include list.
virtual bool ScanDirectory()
Scan the directory amd updated file and sub-directory lists.
std::string Name() const
Returns the name of the directory without path.
const FilterList & ExcludeList() const
Returns a list of name filters.
Definition idirectory.h:146
uint64_t Modified() const
Return last change time for the directory.
Definition idirectory.h:108
void StringToIncludeList(const std::string &text)
Convert a string into a include list.
const FilterList & IncludeList() const
Returns a list of name filters.
Definition idirectory.h:178
std::string IncludeListToString() const
Converts a list into a text string.
The log namespace is used for log related classes and functions.
Definition idirectory.h:18
std::map< std::string, std::unique_ptr< IFile > > FileList
Sorted list of files in the directory.
Definition idirectory.h:35
std::vector< std::string > FilterList
List of name filters.
Definition idirectory.h:43
std::map< std::string, std::unique_ptr< IDirectory > > DirectoryList
Sorted list of directories.
Definition idirectory.h:28