34 lines
679 B
C++
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;
|
|
};
|
|
|
|
}
|