34 : m_size(size), m_writeOffset(0), m_spareRoom(10240), m_buf(0)
36 m_buf = (
char *)calloc(size,1);
45 m_buf[m_writeOffset++]=c;
47 void addArray(
const char *a,
int len)
50 memcpy(m_buf+m_writeOffset,a,len);
58 void shrink( uint newlen )
63 void resize( uint newlen )
65 uint oldsize = m_size;
67 if (m_writeOffset>=m_size)
69 m_size=m_writeOffset+m_spareRoom;
71 m_buf = (
char *)realloc(m_buf,m_size);
74 memset(m_buf+oldsize,0,m_size-oldsize);
85 char &at(uint i)
const 91 return m_writeOffset==0;
93 operator const char *()
const 101 void dropFromStart(uint bytes)
103 if (bytes>m_size) bytes=m_size;
104 if (bytes>0) qmemmove(m_buf,m_buf+bytes,m_size-bytes);
106 m_writeOffset-=bytes;
109 void makeRoomFor(uint size)
111 if (m_writeOffset+size>=m_size)
113 resize(m_size+size+m_spareRoom);
118 const int m_spareRoom;
Buffer used to store strings.
Definition: bufstr.h:30