Files
jeanlemotan b344afa9fe First
2024-07-02 18:12:23 +02:00

34 lines
679 B
C++

#pragma once
#include "fs/IStreamSink.h"
#include "tl/flag_set2.h"
#include "fs/Api.h"
namespace fs
{
class FS_API ISink : public IStreamSink
{
public:
enum class Flag
{
};
typedef tl::flag_set2<Flag> Flags;
ISink() = default;
~ISink() override = default;
ISink(ISink&&) = default;
ISink& operator=(ISink&&) = default;
//changes the sink cursor either to an absolute offset or relative one
//NOTE!!! if the cursor is moved beyond the sink size, the size is increased to fit it.
virtual void seekBeg(uint64_t offset) = 0;
virtual void seekRel(int64_t offset) = 0;
//returns the sink cursor. Always between 0 and size
virtual uint64_t tell() const = 0;
};
}