00001 /* 00002 Copyright 1996-2001 00003 Simon Whiteside 00004 00005 * $Id: skStringBuffer.h,v 1.2 2001/11/16 23:03:24 sdw Exp $ 00006 */ 00007 00008 00009 #ifndef skSTRINGBUFFER_H 00010 #define skSTRINGBUFFER_H 00011 00012 #include "skString.h" 00013 00017 class skStringBuffer 00018 { 00019 public: 00024 skStringBuffer(USize capacity,USize growth_increment=16); 00029 skStringBuffer(const skString& s,USize growth_increment=16); 00033 skStringBuffer(const skStringBuffer& s); 00037 ~skStringBuffer(); 00041 skStringBuffer& operator=(const skStringBuffer& s); 00046 void append(Char ch); 00051 void append(const skString& s); 00056 void append(const Char * s); 00061 skString toString() ; 00066 skString toStringCopy() const; 00071 operator const Char * () const; 00076 USize length() const; 00081 USize capacity() const; 00082 private: 00087 void ensureCapacity(USize capacity); 00089 Char * m_Buffer; 00091 USize m_Length; 00093 USize m_Capacity; 00095 USize m_GrowthIncrement; 00096 }; 00097 00098 #endif