25 #include "common/array.h" 26 #include "common/archive.h" 27 #include "common/hash-str.h" 28 #include "common/hashmap.h" 29 #include "common/ptr.h" 30 #include "common/str.h" 31 #include "common/ustr.h" 48 class SeekableReadStream;
50 class SeekableWriteStream;
71 friend class ::AbstractFSNode;
88 kListDirectoriesOnly = 2,
115 bool operator<(
const FSNode& node)
const;
149 bool getChildren(
FSList &fslist,
ListMode mode = kListDirectoriesOnly,
bool hidden =
true)
const;
158 U32String getDisplayName()
const override;
168 String getName()
const override;
175 String getFileName()
const override;
184 Path getPathInArchive()
const override;
194 virtual String getRealName()
const;
204 Path getPath()
const;
221 bool isDirectory()
const override;
240 bool isReadable()
const;
253 bool isWritable()
const;
272 SeekableReadStream *createReadStreamForAltStream(AltStreamType altStreamType)
const override;
295 bool createDirectory()
const;
346 bool _includeDirectories;
349 void setPrefix(
const Path &prefix);
354 mutable NodeCache _fileCache, _subDirCache;
355 mutable bool _cached;
358 FSNode *lookupCache(NodeCache &cache,
const Path &name)
const;
361 void cacheDirectoryRecursive(
FSNode node,
int depth,
const Path& prefix)
const;
364 void ensureCached()
const;
373 bool ignoreClashes =
false,
bool includeDirectories =
false);
378 bool ignoreClashes =
false,
bool includeDirectories =
false);
385 bool flat =
false,
bool ignoreClashes =
false,
bool includeDirectories =
false);
390 bool flat =
false,
bool ignoreClashes =
false,
bool includeDirectories =
false);
403 FSDirectory *getSubDirectory(
const Path &name,
int depth = 1,
bool flat =
false,
404 bool ignoreClashes =
false);
411 bool flat =
false,
bool ignoreClashes =
false);
417 bool hasFile(
const Path &path)
const override;
422 bool isPathDirectory(
const Path &path)
const override;
427 int listMatchingMembers(
ArchiveMemberList &list,
const Path &pattern,
bool matchPathComponents =
false)
const override;
450 SeekableReadStream *createReadStreamForMemberAltStream(
const Path &path, AltStreamType altStreamType)
const override;
Definition: archive.h:141
ListMode
Definition: fs.h:86
Definition: algorithm.h:29
Definition: abstract-fs.h:41