19#include "CharBuffer.h"
21CharBuffer::CharBuffer()
24 myBuffer = (
char *) malloc(DEFAULT_BUFFER_SIZE);
25 myBufferAllocatedLen = DEFAULT_BUFFER_SIZE;
30CharBuffer::CharBuffer(int32_t initialSize)
33 myBuffer = (
char *) malloc(initialSize);
34 myBufferAllocatedLen = DEFAULT_BUFFER_SIZE;
40CharBuffer::~CharBuffer()
52CharBuffer::CharBuffer(
const CharBuffer& buffer)
56 (
char *) malloc(DEFAULT_BUFFER_SIZE);
57 myBufferAllocatedLen = DEFAULT_BUFFER_SIZE;
74CharBuffer& CharBuffer::operator = (
const std::string& stringBuffer)
77 if(prepareNewLength(stringBuffer.length()))
79 memcpy(myBuffer, stringBuffer.c_str(), stringBuffer.length());
97 prepareNewLength(buffer.myBufferLen);
99 memcpy(myBuffer, buffer.myBuffer, buffer.myBufferLen);
100 myBufferLen = buffer.myBufferLen;
107void CharBuffer::reset()
119int CharBuffer::readFromFile(
IFILE filePtr, int32_t length)
126 if(prepareNewLength(length))
128 return(
ifread(filePtr, myBuffer, length));
136bool CharBuffer::prepareNewLength(int32_t newLen)
146 if(myBufferAllocatedLen <= newLen)
149 char* tmpBufferPtr = (
char *)realloc(myBuffer, newLen);
150 if(tmpBufferPtr == NULL)
153 fprintf(stderr,
"FAILED TO ALLOCATE MEMORY!!!");
158 myBuffer = tmpBufferPtr;
159 myBufferAllocatedLen = newLen;
161 myBufferLen = newLen;
162 myBuffer[newLen] = 0;