00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CS_SCFSTR_H__
00021 #define __CS_SCFSTR_H__
00022
00023 #include "iutil/string.h"
00024 #include "csutil/csstring.h"
00025
00027 class scfString : public iString
00028 {
00029 csString s;
00030
00031 public:
00032 SCF_DECLARE_IBASE;
00033
00035 scfString ()
00036 { SCF_CONSTRUCT_IBASE (0); }
00037
00039 scfString (size_t iLength) : s(iLength)
00040 { SCF_CONSTRUCT_IBASE (0); }
00041
00043 scfString (const iString ©) : s(copy.GetData())
00044 { SCF_CONSTRUCT_IBASE (0); }
00045
00047 scfString (const char *copy) : s(copy)
00048 { SCF_CONSTRUCT_IBASE (0); }
00049
00051 virtual ~scfString () {}
00052
00054 const csString& GetCsString () const { return s; }
00055
00057 csString& GetCsString () { return s; }
00058
00060 virtual void SetCapacity (size_t NewSize);
00062 virtual size_t GetCapacity() const;
00064 virtual void SetGrowsBy(size_t);
00066 virtual size_t GetGrowsBy() const;
00068 virtual void SetGrowsExponentially(bool);
00070 virtual bool GetGrowsExponentially() const;
00071
00073 virtual void Truncate (size_t iPos);
00074
00076 virtual void Reclaim ();
00077
00079 virtual iString *Clone () const;
00080
00082 virtual char *GetData () const;
00083
00085 virtual size_t Length () const;
00086
00088 virtual char& operator [] (size_t iPos);
00089
00091 virtual void SetAt (size_t iPos, char iChar);
00092
00094 virtual char GetAt (size_t iPos) const;
00095
00097 virtual void Insert (size_t iPos, iString *iStr);
00098
00100 virtual void Overwrite (size_t iPos, iString *iStr);
00101
00103 virtual iString &Append (const char *iStr, size_t iCount = (size_t)-1);
00104
00106 virtual iString &Append (const iString *iStr, size_t iCount = (size_t)-1);
00107
00112 virtual void SubString (iString * sub, size_t start, size_t len);
00113
00118 virtual size_t FindFirst (const char c, size_t p = (size_t)-1);
00124 virtual size_t FindLast (const char c, size_t p = (size_t)-1);
00125
00127 virtual void Format (const char *format, ...) CS_GNUC_PRINTF (2, 3);
00129 virtual void FormatV (const char *format, va_list args);
00130
00132 virtual void Replace (const iString *iStr, size_t iCount = (size_t)-1);
00133
00135 virtual bool Compare (const iString *iStr) const;
00136
00138 virtual bool CompareNoCase (const iString *iStr) const;
00139 };
00140
00141 #endif // __CS_SCFSTR_H__