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
72
BeefySysLib/MemStream.h
Normal file
72
BeefySysLib/MemStream.h
Normal 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;
|
Loading…
Add table
Add a link
Reference in a new issue