36 lines
866 B
C++
36 lines
866 B
C++
|
|
#pragma once
|
|
|
|
class JoltStateRecorderFile final : public JPH::StateRecorder
|
|
{
|
|
public:
|
|
JoltStateRecorderFile( const char* pszPath, bool input )
|
|
: m_Stream( pszPath, std::ios::binary | ( input ? std::ios::in : std::ios::out ) )
|
|
{
|
|
}
|
|
|
|
JoltStateRecorderFile( JoltStateRecorderFile &&other )
|
|
: StateRecorder( other )
|
|
, m_Stream( std::move( other.m_Stream ) )
|
|
{
|
|
}
|
|
|
|
void WriteBytes( const void* inData, size_t inNumBytes ) override
|
|
{
|
|
m_Stream.write( reinterpret_cast< const char * >( inData ), inNumBytes );
|
|
}
|
|
|
|
void ReadBytes( void* outData, size_t inNumBytes ) override
|
|
{
|
|
m_Stream.read( reinterpret_cast< char * >( outData ), inNumBytes );
|
|
}
|
|
|
|
bool IsEOF() const override { return m_Stream.eof(); }
|
|
bool IsFailed() const override { return m_Stream.fail(); }
|
|
|
|
bool IsValid() const { return !m_Stream.bad(); }
|
|
|
|
private:
|
|
std::fstream m_Stream;
|
|
};
|