41 lines
1.4 KiB
C++
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;
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
}
|