bool StringBuffer::EnsureBuffer(int size) { bool b = true; if(m_bufferSize < size) { //place some extra padding int newSize = ((size / 16) + 1) * 16; b = expandBuffer(newSize); } return b; }
void StringBuffer::append(const TCHAR *pStr, int len) { if(!pStr || !len)return; int rem = remaining(); while(len >= rem) { expandBuffer(len + 16 - rem); rem = remaining(); } TCHAR *pTail = m_pStr + m_strLen; CopyMemory(pTail, pStr, len * sizeof(TCHAR)); m_strLen += len; }
void ClientThread::readLine(void) { unsigned int i = 0; int c; while((c = getchar()) && c != '\n' && c != -1) { _buffer[i++] = (char) c; if(i >= _length) { expandBuffer(); } } _buffer[i] = '\0'; if(c == -1) { Aversive::stop(); quit(); } }