mirror of
https://github.com/DaedalusX64/daedalus.git
synced 2025-04-02 10:21:48 -04:00
43 lines
658 B
C++
43 lines
658 B
C++
#include "BuildOptions.h"
|
|
#include "Base/Types.h"
|
|
|
|
#include "Base/Assert.h"
|
|
#include "System/DataSink.h"
|
|
|
|
DataSink::~DataSink()
|
|
{
|
|
}
|
|
|
|
FileSink::FileSink()
|
|
: Handle(NULL)
|
|
{
|
|
}
|
|
|
|
FileSink::~FileSink()
|
|
{
|
|
if (Handle)
|
|
fclose(Handle);
|
|
}
|
|
|
|
bool FileSink::Open(const std::filesystem::path &filename, const char * mode)
|
|
{
|
|
#ifdef DAEDALUS_ENABLE_ASSERTS
|
|
DAEDALUS_ASSERT(Handle == NULL, "Already have an open file");
|
|
#endif
|
|
Handle = fopen(filename.c_str(), mode);
|
|
return Handle != NULL;
|
|
}
|
|
|
|
size_t FileSink::Write(const void * p, size_t len)
|
|
{
|
|
if (Handle)
|
|
return fwrite(p, 1, len, Handle);
|
|
|
|
return 0;
|
|
}
|
|
|
|
void FileSink::Flush()
|
|
{
|
|
if (Handle)
|
|
fflush(Handle);
|
|
}
|