PrimeWorldEditor/src/Common/FileIO/IOutputStream.h

47 lines
1.4 KiB
C++

#ifndef IOUTPUTSTREAM_H
#define IOUTPUTSTREAM_H
#include "IOUtil.h"
#include "Common/TString.h"
class IOutputStream
{
protected:
IOUtil::EEndianness mDataEndianness;
TString mDataDest;
public:
void WriteBool(bool Val);
void WriteByte(char Val);
void WriteShort(short Val);
void WriteLong(long Val);
void WriteLongLong(long long Val);
void WriteFloat(float Val);
void WriteDouble(double Val);
void WriteFourCC(long Val);
void WriteString(const TString& rkVal, int Count = -1, bool Terminate = true);
void WriteSizedString(const TString& rkVal);
void WriteWString(const TWideString& rkVal, int Count = -1, bool Terminate = true);
void WriteSizedWString(const TWideString& rkVal);
bool GoTo(u32 Address);
bool Skip(s32 SkipAmount);
void WriteToBoundary(u32 Boundary, u8 Fill);
void SetEndianness(IOUtil::EEndianness Endianness);
void SetDestString(const TString& rkDest);
IOUtil::EEndianness GetEndianness() const;
TString GetDestString() const;
virtual ~IOutputStream();
virtual void WriteBytes(const void *pkSrc, u32 Count) = 0;
virtual bool Seek(s32 Offset, u32 Origin) = 0;
virtual bool Seek64(s64 Offset, u32 Origin);
virtual u32 Tell() const = 0;
virtual u64 Tell64() const;
virtual bool EoF() const = 0;
virtual bool IsValid() const = 0;
virtual u32 Size() const = 0;
};
#endif // COUTPUTSTREAM_H