30 lines
964 B
C++
30 lines
964 B
C++
#pragma once
|
|
|
|
#include "IPack.h"
|
|
#include "Mode.h"
|
|
#include "fs/Api.h"
|
|
|
|
namespace fs
|
|
{
|
|
|
|
class FS_API IWritablePack : virtual public IPack
|
|
{
|
|
public:
|
|
using SinkFlag = IFilesystem::SinkFlag;
|
|
using SinkFlags = IFilesystem::SinkFlags;
|
|
|
|
virtual OpenSinkResult openSink(const AbsPath& i_path, Mode i_mode, SinkFlags i_flags = SinkFlags()) = 0;
|
|
virtual OpenStreamSinkResult openStreamSink(const AbsPath& i_path, Mode i_mode, SinkFlags i_flags = SinkFlags()) = 0;
|
|
virtual OpenMapSinkResult openMapSink(const AbsPath& i_path, Mode i_mode, size_t i_size, SinkFlags i_flags = SinkFlags()) = 0;
|
|
|
|
virtual RemoveResult remove(const AbsPath& i_path) = 0;
|
|
virtual RenameResult rename(const AbsPath& i_path, const AbsPath& i_newPath) = 0;
|
|
|
|
virtual MakeFolderResult makeFolder(const AbsPath& i_path) = 0;
|
|
virtual RemoveRecursivelyResult removeRecursively(const AbsPath& i_path) = 0;
|
|
|
|
virtual SetWriteTimeResult setWriteTime(const AbsPath& i_path, time_t i_time) = 0;
|
|
};
|
|
|
|
}
|