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"
48class SeekableReadStream;
50class SeekableWriteStream;
71 friend class ::AbstractFSNode;
88 kListDirectoriesOnly = 2,
346 bool _includeDirectories;
349 void setPrefix(
const Path &prefix);
355 mutable NodeCache _fileCache, _subDirCache;
357 mutable bool _cached;
363 void cacheDirectoryRecursive(
FSNode node,
int depth,
const Path& prefix)
const;
366 void ensureCached()
const;
375 bool ignoreClashes =
false,
bool includeDirectories =
false);
380 bool ignoreClashes =
false,
bool includeDirectories =
false);
387 bool flat =
false,
bool ignoreClashes =
false,
bool includeDirectories =
false);
392 bool flat =
false,
bool ignoreClashes =
false,
bool includeDirectories =
false);
406 bool ignoreClashes =
false);
413 bool flat =
false,
bool ignoreClashes =
false);
Definition: abstract-fs.h:41
Definition: archive.h:141
SeekableReadStream * createReadStreamForMemberAltStream(const Path &path, AltStreamType altStreamType) const override
const ArchiveMemberPtr getMember(const Path &path) const override
FSDirectory * getSubDirectory(const Path &name, int depth=1, bool flat=false, bool ignoreClashes=false)
bool isPathDirectory(const Path &path) const override
int listMatchingMembers(ArchiveMemberList &list, const Path &pattern, bool matchPathComponents=false) const override
FSDirectory(const Path &prefix, const Path &name, int depth=1, bool flat=false, bool ignoreClashes=false, bool includeDirectories=false)
FSDirectory(const FSNode &node, int depth=1, bool flat=false, bool ignoreClashes=false, bool includeDirectories=false)
int listMembers(ArchiveMemberList &list) const override
FSDirectory(const Path &prefix, const FSNode &node, int depth=1, bool flat=false, bool ignoreClashes=false, bool includeDirectories=false)
FSDirectory(const Path &name, int depth=1, bool flat=false, bool ignoreClashes=false, bool includeDirectories=false)
SeekableReadStream * createReadStreamForMember(const Path &path) const override
bool hasFile(const Path &path) const override
FSDirectory * getSubDirectory(const Path &prefix, const Path &name, int depth=1, bool flat=false, bool ignoreClashes=false)
ListMode
Definition: fs.h:86
bool isDirectory() const override
void listChildren(Common::ArchiveMemberList &childList, const char *pattern=nullptr) const override
U32String getDisplayName() const override
virtual String getRealName() const
SeekableReadStream * createReadStreamForAltStream(AltStreamType altStreamType) const override
SeekableWriteStream * createWriteStream(bool atomic=true) const
String getName() const override
bool getChildren(FSList &fslist, ListMode mode=kListDirectoriesOnly, bool hidden=true) const
SeekableReadStream * createReadStream() const override
FSNode getChild(const String &name) const
bool operator<(const FSNode &node) const
bool createDirectory() const
String getFileName() const override
Path getPathInArchive() const override
Definition: algorithm.h:29