8#if !defined(ALIB_C20_MODULES) || ((ALIB_C20_MODULES != 0) && (ALIB_C20_MODULES != 1))
9# error "Symbol ALIB_C20_MODULES has to be given to the compiler as either 0 or 1"
45 auto& pool= tree.
Pool;
57 if( realTarget.
Equals(target) )
66#if defined ( _WIN32) && !DOXYGEN
67 namespace {
NString unknown(
"<Unknown>"); }
72 #if !defined ( _WIN32)
73 auto key= fInfo.
Owner();
74 auto resultPair= ownerCache.Try( key );
75 if( !resultPair.first )
77 auto* result= getpwuid(key);
78 resultPair.second.Construct( key,
NString(result ? result->pw_name :
"?"));
80 return resultPair.second.Mapped();
89 #if !defined ( _WIN32)
90 auto key= fInfo.
Group();
91 auto resultPair= groupCache.Try( key );
92 if( !resultPair.first )
94 auto* result= getgrgid(key);
95 resultPair.second.Construct( key,
NString(result ? result->gr_name :
"?"));
97 return resultPair.second.Mapped();
The entry type which is embedded in each tree node.
constexpr uint32_t Group() const noexcept
void SetLinkTarget(FTree &tree, const system::PathString &target, const system::PathString &realTarget)
constexpr uint32_t Owner() const noexcept
friend class FTree
Allow access from within class File.
Qualities
Per-entry information about how a node was scanned.
Permissions
Permission flags. Compatible with posix* definition.
ExtendedEntryInfo * extendedInfo
Extended information, depending on the entry type.
ALIB_DLL const NString & GetOwnerName(const FInfo &fInfo)
ALIB_DLL const NString & GetGroupName(const FInfo &fInfo)
void Free(TAllocator &allocator) const
void Allocate(TAllocator &allocator, const TString< TChar > ©)
constexpr const TChar * Buffer() const
bool Equals(const TString< TChar > &rhs) const
#define ALIB_BOXING_VTABLE_DEFINE(TMapped, Identifier)
strings::TString< PathCharType > PathString
The string-type used with this ALib Module.
strings::TString< nchar > NString
Type alias in namespace alib.
system::CPathString RealTarget
The resolved real target path.
system::CPathString Target
This is a zero-terminated CString.