Files
FS/include/fs/FolderPack.h
T
jeanlemotan b344afa9fe First
2024-07-02 18:12:23 +02:00

41 lines
1.4 KiB
C++

#pragma once
#include "fs/IPack.h"
#include "fs/Api.h"
namespace fs
{
//////////////////////////////////////////////////////////////////////////
class FS_API FolderPack : virtual public IPack
{
public:
explicit FolderPack(AbsPath location);
FolderPack(tl::lent_ref<IFilesystem> filesystem, AbsPath location);
~FolderPack() override = default;
OpenSourceResult openSource(const AbsPath& path, SourceFlags flags = SourceFlags()) const override;
OpenStreamSourceResult openStreamSource(const AbsPath& path, SourceFlags flags = SourceFlags()) const override;
OpenMapSourceResult openMapSource(const AbsPath& path, MapView mapView = MapView(), SourceFlags flags = SourceFlags()) const override;
IsFileResult isFile(const AbsPath& path) const override;
IsFolderResult isFolder(const AbsPath& path) const override;
ExistsResult exists(const AbsPath& path) const override;
GetStatResult getStat(const AbsPath& path) const override;
cppcoro::generator<EnumerateEntry> enumerate(const AbsPath& path) const override;
cppcoro::generator<EnumerateEntry> enumerateRecursively(const AbsPath& path) const override;
ConvertToNativePathResult convertToNativePath(const AbsPath& path) const override;
protected:
AbsPath convertToUnderlyingPath(const AbsPath& path) const;
tl::lent_ref<IFilesystem> m_filesystem;
AbsPath m_location;
};
//////////////////////////////////////////////////////////////////////////
}