Source code

Revision control

Copy as Markdown

Other Tools

// Common/MyBuffer2.h↩
#ifndef __COMMON_MY_BUFFER2_H↩
#define __COMMON_MY_BUFFER2_H↩
#include "../../C/Alloc.h"
#include "Defs.h"
class CMidBuffer↩
{↩
Byte *_data;↩
size_t _size;↩
CLASS_NO_COPY(CMidBuffer)↩
public:↩
CMidBuffer(): _data(NULL), _size(0) {};↩
~CMidBuffer() { ::MidFree(_data); }↩
void Free() { ::MidFree(_data); _data = NULL; _size = 0; }↩
bool IsAllocated() const { return _data != NULL; }↩
operator Byte *() { return _data; }↩
operator const Byte *() const { return _data; }↩
size_t Size() const { return _size; }↩
void AllocAtLeast(size_t size)↩
{↩
if (!_data || size > _size)↩
{↩
const size_t kMinSize = (size_t)1 << 16;↩
if (size < kMinSize)↩
size = kMinSize;↩
::MidFree(_data);↩
_size = 0;↩
_data = 0;↩
_data = (Byte *)::MidAlloc(size);↩
if (_data)↩
_size = size;↩
}↩
}↩
};↩
#endif