| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | #include "StdInc.h"#include "CMemoryStream.h"CMemoryStream::CMemoryStream() : data(nullptr), size(0), position(0), freeData(false){}CMemoryStream::CMemoryStream(const ui8 * data, si64 size, bool freeData /*= false*/) : data(data), size(size), position(0), freeData(freeData){}CMemoryStream::~CMemoryStream(){	close();}void CMemoryStream::open(const ui8 * data, si64 size, bool freeData /*= false*/){	close();	this->size = size;	this->data = data;	this->freeData = freeData;	this->position = 0;}si64 CMemoryStream::read(ui8 * data, si64 size){	std::copy(this->data + position, this->data + position + size, data);	position += size;	return size;}si64 CMemoryStream::seek(si64 position){	si64 diff = this->position;	this->position = position;	return position - diff;}si64 CMemoryStream::tell(){	return this->position;}si64 CMemoryStream::skip(si64 delta){	this->position += delta;	return delta;}si64 CMemoryStream::getSize(){	return size;}void CMemoryStream::close(){	if(freeData)	{		delete[] data;	}}
 |