mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 03:28:20 +02:00
Initial checkin
This commit is contained in:
parent
c74712dad9
commit
078564ac9e
3242 changed files with 1616395 additions and 0 deletions
75
BeefySysLib/DataStream.h
Normal file
75
BeefySysLib/DataStream.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
#pragma once
|
||||
|
||||
#include "Common.h"
|
||||
|
||||
NS_BF_BEGIN;
|
||||
|
||||
class DataStream
|
||||
{
|
||||
public:
|
||||
bool mBigEndian;
|
||||
int mBitPos;
|
||||
uint32 mCurBitInt;
|
||||
int mReadBitIntPos; // in bits
|
||||
|
||||
protected:
|
||||
uint32 GetBitInt(int bitPos);
|
||||
|
||||
public:
|
||||
DataStream();
|
||||
virtual ~DataStream() {}
|
||||
|
||||
virtual bool Eof() = 0;
|
||||
virtual int GetSize() = 0;
|
||||
virtual void Read(void* ptr, int size) = 0;
|
||||
virtual void Write(void* ptr, int size) = 0;
|
||||
virtual void WriteZeros(int size);
|
||||
virtual void Align(int size);
|
||||
|
||||
virtual int GetPos() = 0;
|
||||
virtual void Seek(int size) = 0;
|
||||
virtual void SetPos(int pos) = 0;
|
||||
|
||||
virtual int8 ReadInt8();
|
||||
virtual uint8 ReadUInt8();
|
||||
virtual int16 ReadInt16();
|
||||
virtual uint16 ReadUInt16();
|
||||
virtual int32 ReadInt32();
|
||||
virtual int64 ReadInt64();
|
||||
virtual float ReadFloat();
|
||||
virtual double ReadDouble();
|
||||
virtual String ReadAscii8SizedString();
|
||||
virtual String ReadAscii32SizedString();
|
||||
virtual String ReadUnicode32SizedString();
|
||||
virtual String ReadSZ();
|
||||
|
||||
template <typename T>
|
||||
void ReadT(const T& val)
|
||||
{
|
||||
Read((void*) &val, sizeof(T));
|
||||
}
|
||||
|
||||
virtual void Write(float val);
|
||||
virtual void Write(uint8 val);
|
||||
virtual void Write(int8 val);
|
||||
virtual void Write(int16 val);
|
||||
virtual void Write(int32 val);
|
||||
virtual void Write(int64 val);
|
||||
virtual void Write(const StringImpl& val);
|
||||
virtual void Write(DataStream& refStream);
|
||||
virtual void WriteSNZ(const StringImpl& val);
|
||||
virtual void WriteSZ(const StringImpl& val);
|
||||
|
||||
template <typename T>
|
||||
void WriteT(const T& val)
|
||||
{
|
||||
Write((void*)&val, sizeof(T));
|
||||
}
|
||||
|
||||
virtual void SyncBitPos();
|
||||
virtual void SyncBytePos();
|
||||
virtual int ReadUBits(int bits);
|
||||
virtual void SeekBits(int bits);
|
||||
};
|
||||
|
||||
NS_BF_END;
|
Loading…
Add table
Add a link
Reference in a new issue