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

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);
}