39 lines
654 B
C++
39 lines
654 B
C++
#pragma once
|
|
#include "defines.h"
|
|
#include <string>
|
|
#include <fstream>
|
|
|
|
enum class FileMode
|
|
{
|
|
Read,
|
|
Write,
|
|
Append,
|
|
ReadWrite
|
|
};
|
|
class FileStream
|
|
{
|
|
public:
|
|
FileStream(const std::string& filename, FileMode mode = FileMode::ReadWrite);
|
|
~FileStream();
|
|
long long Read(void* buffer, size_t size);
|
|
template <class T>
|
|
bool Read(T* buffer)
|
|
{
|
|
return Read(&buffer, sizeof(T)) == sizeof(T);
|
|
}
|
|
bool Write(const void* buffer, size_t size);
|
|
template <class T>
|
|
bool Write(T value)
|
|
{
|
|
return Write(&value,sizeof(T));
|
|
}
|
|
size_t Position();
|
|
void Seek(size_t pos);
|
|
void SeekToEnd();
|
|
size_t Length();
|
|
void Close();
|
|
private:
|
|
std::fstream file_;
|
|
};
|
|
|