## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# csutil/scfstringarray.h

Go to the documentation of this file.

    00001 /*
    00002     Crystal Space String Array SCF interface
    00003     Copyright (C) 2003 by Jorrit Tyberghein
    00004
    00005     This library is free software; you can redistribute it and/or
    00006     modify it under the terms of the GNU Library General Public
    00007     License as published by the Free Software Foundation; either
    00008     version 2 of the License, or (at your option) any later version.
    00009
    00010     This library is distributed in the hope that it will be useful,
    00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013     Library General Public License for more details.
    00014
    00015     You should have received a copy of the GNU Library General Public
    00016     License along with this library; if not, write to the Free
    00017     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    00018 */
    00019
    00020 #ifndef __CS_SCFSTRINGARRAY_H__
    00021 #define __CS_SCFSTRINGARRAY_H__
    00022
    00027 #include "csextern.h"
    00028 #include "csutil/scf_implementation.h"
    00029 #include "csutil/stringarray.h"
    00030 #include "iutil/stringarray.h"
    00031
    00033 class scfStringArray : public scfImplementation1<scfStringArray,
    00034                                                    iStringArray>
    00035 {
    00036   csStringArray v;
    00037
    00038 public:
    00039
    00041   scfStringArray (int limit = 16, int delta = 16)
    00042     : scfImplementationType (this), v (limit, delta)
    00043   { }
    00044
    00046   virtual ~scfStringArray ()
    00047   { }
    00048
    00050   virtual size_t GetSize () const
    00051   {
    00052     return v.Length ();
    00053   }
    00054
    00059   virtual size_t Length () const
    00060   {
    00061     return GetSize ();
    00062   }
    00063
    00065   virtual void Push (char const *value)
    00066   {
    00067     v.Push ((char*)value);
    00068   }
    00069
    00075   virtual char *Pop ()
    00076   {
    00077     return v.Pop ();
    00078   }
    00079
    00081   virtual char const *Get (size_t n) const
    00082   {
    00083     return v.Get (n);
    00084   }
    00085
    00092   virtual size_t Find (const char *value) const
    00093   {
    00094     return v.Find (value);
    00095   }
    00096
    00103   virtual size_t FindCaseInsensitive (const char *value) const
    00104   {
    00105     return v.FindCaseInsensitive (value);
    00106   }
    00107
    00113   virtual size_t FindSortedKey (const char *value) const
    00114   {
    00115     return v.FindSortedKey ((char*)value);
    00116   }
    00117
    00129   virtual size_t Contains(const char* str, bool case_sensitive = true) const
    00130   {
    00131     return v.Contains (str, case_sensitive);
    00132   }
    00133
    00139   virtual void Sort (bool case_sensitive = true)
    00140   {
    00141     v.Sort (case_sensitive);
    00142   }
    00143
    00145   virtual bool DeleteIndex (size_t n)
    00146   {
    00147     return v.DeleteIndex (n);
    00148   }
    00149
    00151   virtual bool Insert (size_t n, char const *value)
    00152   {
    00153     return v.Insert (n, (char*)value);
    00154   }
    00155
    00157   virtual void Empty ()
    00158   {
    00159     v.Empty();
    00160   }
    00161
    00166   virtual void DeleteAll ()
    00167   {
    00168     Empty();
    00169   }
    00170
    00176   virtual bool IsEmpty() const
    00177   {
    00178     return v.IsEmpty();
    00179   }
    00180 };
    00181
    00182 #endif // __CS_SCFSTRINGARRAY_H__