46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
#pragma once
|
|
|
|
//#pragma warning( disable : 4250)
|
|
|
|
#include "fs/IFilesystem.h"
|
|
#include "fs/AbsPath.h"
|
|
#include "fs/Error.h"
|
|
#include "fs/Mode.h"
|
|
|
|
#include "fs/Api.h"
|
|
|
|
namespace fs
|
|
{
|
|
class ISource;
|
|
class IMapSource;
|
|
|
|
class FS_API IPack
|
|
{
|
|
public:
|
|
virtual ~IPack() = default;
|
|
|
|
using SourceFlag = IFilesystem::SourceFlag;
|
|
using SourceFlags = IFilesystem::SourceFlags;
|
|
using MapView = IFilesystem::MapView;
|
|
|
|
virtual OpenSourceResult openSource(const AbsPath& i_path, SourceFlags i_flags = SourceFlags()) const = 0;
|
|
virtual OpenStreamSourceResult openStreamSource(const AbsPath& i_path, SourceFlags i_flags = SourceFlags()) const = 0;
|
|
virtual OpenMapSourceResult openMapSource(const AbsPath& i_path, MapView i_mapView = MapView(), SourceFlags i_flags = SourceFlags()) const = 0;
|
|
|
|
virtual IsFileResult isFile(const AbsPath& i_path) const = 0;
|
|
virtual IsFolderResult isFolder(const AbsPath& i_path) const = 0;
|
|
virtual ExistsResult exists(const AbsPath& i_path) const = 0;
|
|
|
|
virtual GetStatResult getStat(const AbsPath& i_path) const = 0;
|
|
|
|
virtual cppcoro::generator<EnumerateEntry> enumerate(const AbsPath& i_path) const = 0;
|
|
virtual cppcoro::generator<EnumerateEntry> enumerateRecursively(const AbsPath& i_path) const = 0;
|
|
|
|
virtual ConvertToNativePathResult convertToNativePath(const AbsPath& i_path) const = 0;
|
|
|
|
protected:
|
|
IPack() = default;
|
|
};
|
|
|
|
}
|