daedalus/Source/System/DataSink.h
2023-04-29 12:21:30 +10:00

29 lines
510 B
C++

#ifndef UTILITY_DATASINK_H_
#define UTILITY_DATASINK_H_
#include <stdio.h>
#include "System/IO.h"
class DataSink
{
public:
virtual ~DataSink();
virtual size_t Write(const void * p, size_t len) = 0;
virtual void Flush() = 0;
};
class FileSink : public DataSink
{
public:
FileSink();
~FileSink();
bool Open(const std::filesystem::path &filename, const char * mode);
virtual size_t Write(const void * p, size_t len);
virtual void Flush();
private:
FILE * Handle;
};
#endif // UTILITY_DATASINK_H_