1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

Initial checkin

This commit is contained in:
Brian Fiete 2019-08-23 11:56:54 -07:00
parent c74712dad9
commit 078564ac9e
3242 changed files with 1616395 additions and 0 deletions

72
BeefySysLib/MemStream.h Normal file
View file

@ -0,0 +1,72 @@
#pragma once
#include "Common.h"
#include "DataStream.h"
NS_BF_BEGIN;
class MemStream : public DataStream
{
public:
uint8* mData;
int mSize;
int mPos;
bool mFreeMemory;
public:
MemStream(void* data, int size, bool freeMemory);
~MemStream();
static MemStream* CreateWithDuplicate(void* data, int size);
static MemStream* CreateWithOwnershipTaken(void* data, int size);
static MemStream* CreateWithNoCopy(void* data, int size);
bool Eof() override;
int GetSize() override;
using DataStream::Read;
void Read(void* ptr, int size) override;
using DataStream::Write;
void Write(void* ptr, int size) override;
int GetPos() override;
void Seek(int size) override;
void SetPos(int pos) override;
};
class SafeMemStream : public MemStream
{
public:
bool mFailed;
SafeMemStream(void* data, int size, bool freeMemory);
using DataStream::Read;
void Read(void* ptr, int size) override;
};
class DynMemStream : public DataStream
{
public:
Array<uint8> mData;
int mPos;
public:
DynMemStream();
bool Eof() override;
int GetSize() override;
using DataStream::Read;
void Read(void* ptr, int size) override;
using DataStream::Write;
void Write(void* ptr, int size) override;
void Write(uint8 val) override;
int GetPos() override;
void Seek(int size) override;
void SetPos(int pos) override;
void Clear();
void* GetPtr();
};
NS_BF_END;