72 constexpr bool IsDirType(
Types type)
const noexcept {
return int(type) < 2; }
86 uint32_t
Count() const noexcept {
98 "FILETREE",
"Cant get count for file type \"{}\"", type )
178 #if ALIB_DEBUG && !ALIB_DEBUG_ASSERTION_PRINTABLES
180 "Requesting sums for FTValue that is not a directory.")
182 "Requesting sums for FTValue that has no sums set. ScanState: ",
ScanState() )
198 "Given node is not a directory or symbolic link pointing to a directory.")
217 "FILETREE",
"Given node is not a symbolic link." )
229 "FILETREE",
"Given node is not a symbolic link." )
246 #if !defined( _WIN32)
257 #if DOXYGEN || !defined( _WIN32)
262 : ownerCache(poolAllocator, 6,6)
263 , groupCache(poolAllocator, 6,6) {}
283 #elif !defined( _WIN32)
285 { ownerCache.
Reserve( numberOfLists, entriesPerList ); }
287 { groupCache.
Reserve( numberOfLists, entriesPerList); }
#define ALIB_ASSERT_ERROR(cond, domain,...)
void Reserve(integer newQtyLists, integer newQtyEntriesPerList)
CPathString & GetRealLinkTarget() const noexcept
const std::type_info * dbgCustomType
The custom type attached. Used for asserting misuse in debug-compilations.
ExtendedEntryInfo * extendedInfo
Extended information, depending on the entry type.
CPathString & GetLinkTarget() const noexcept
constexpr ExtendedEntryInfo * GetExtendedInfo() const
void * custom
Pool-allocated custom data.
constexpr void SetExtendedInfo(ExtendedEntryInfo *extInfo)
constexpr void SetSums(const DirectorySums &sums) const
void SetLinkTarget(FTree &tree, const PathString &target, const PathString &realTarget)
constexpr DirectorySums & Sums() const
OwnerAndGroupResolver(PoolAllocator &poolAllocator)
void SetOwnerCacheCapacity(integer numberOfLists, integer entriesPerList)
const NString GetGroupName(const FileStatus &descriptor) const
void SetGroupCacheCapacity(integer numberOfLists, integer entriesPerList)
const NString GetOwnerName(const FileStatus &descriptor) const
@ MARKER_TYPES_END
A marker for the last countable type. The rest are unused/errors.
@ DIRECTORY
Directory/folder.
constexpr Types Type() const noexcept
constexpr bool IsDirectory() const noexcept
constexpr ScanStates ScanState() const noexcept
filetree::FTValue FTValue
Type alias in namespace #"%alib".
strings::TString< nchar > NString
Type alias in namespace #"%alib".
lang::integer integer
Type alias in namespace #"%alib".
monomem::TPoolAllocator< MonoAllocator > PoolAllocator
strings::TCString< PathCharType > CPathString
The string-type used with this ALib Module.
strings::TString< PathCharType > PathString
The string-type used with this ALib Module.
containers::LRUCacheTable< TAllocator, containers::TPairDescriptor< TKey, TMapped > > LRUCacheMap
Type alias in namespace #"%alib".
system::FileStatus FileStatus
Type alias in namespace #"%alib".
lang::uinteger uinteger
Type alias in namespace #"%alib".
filetree::OwnerAndGroupResolver OwnerAndGroupResolver
Type alias in namespace #"%alib".
Recursively accumulated values for directories.
uint32_t QtyErrsBrokenLink
Number of broken symbolic links in the directory and its subfolders.
uint32_t QtyStopsOnCircularLinks
Number of recursion aborts due to detected circular links reach of maximum recursion depth.
uint32_t CountNonDirectories() const noexcept
uint32_t Count(Types type) const noexcept
uint32_t QtyStopsOnMaxDepth
Number of recursion aborts due to reach of maximum recursion depth.
std::array< uint32_t, size_t(Types::MARKER_TYPES_END)> TypeCounters
Per-type counters.
constexpr DirectorySums() noexcept=default
Defaulted default constructor.
uinteger Size
The cumulated sizes of all files and directories.
uint32_t CountDirectories() const noexcept
uint32_t Count() const noexcept
constexpr bool IsDirType(Types type) const noexcept
DirectorySums & operator-=(const DirectorySums &rhs)
uint32_t QtyErrsAccess
Number of access errors in the folder and subfolders.
constexpr DirectorySums & Add(const FTValue &finfo) noexcept
DirectorySums Sums
The recursive sums evaluated during scan.
DirectorySums Sums
The recursive sums evaluated during scan.
CPathString RealTarget
The resolved real target path.
CPathString Target
The target path. This is a zero-terminated #"%CString".
Base type to create pointers to different extended entry information structs.