CString.hpp

Go to the documentation of this file.
00001 #ifndef __CString__
00002 #define __CString__
00003 
00004 //  ===========================================================================
00005 
00006 #ifdef WIN32
00007     #pragma warning (disable : 4522)
00008 #endif
00009 
00010 //  ===========================================================================
00011 
00012 #include "CCountedObject.hpp"
00013 #include "CPascalString.hpp"
00014 
00015 //  ===========================================================================
00016 
00017 using Exponent::Basics::CCountedObject;
00018 using Exponent::Basics::CPascalString;
00019 
00020 //  ===========================================================================
00021 
00022 namespace Exponent
00023 {
00024     namespace Basics
00025     {
00052         class CString : public CCountedObject
00053         {
00055             EXPONENT_CLASS_DECLARATION;
00058 //  ===========================================================================
00059 
00060         public:
00061 
00062 //  ===========================================================================
00063 
00064             const static long CSTRING_SHORT_TEXT_LENGTH  = 8;       
00065             const static long CSTRING_MIDDLE_TEXT_LENGTH = 256;     
00066             const static long CSTRING_LONG_TEXT_LENGTH   = 1024;    
00067             const static char CSTRING_EMPTY_STRING[3];              
00068             const static char CSTRING_NULL_STRING[];                
00070 //  ===========================================================================
00071 
00076             CString(const char *string = " ");
00077 
00082             CString(const CString &string);
00083 
00087             virtual ~CString();
00088 
00089 //  ===========================================================================
00090 
00096             virtual CString &operator = (const CString &string);
00097 
00103             virtual CString &operator = (CString &string);
00104 
00110             virtual CString &operator = (const char *string);
00111 
00117             virtual CString &operator = (const float value);
00118 
00124             virtual CString &operator = (const long value);
00125 
00131             virtual CString &operator = (const int value);
00132 
00138             virtual CString &operator = (const bool value);
00139 
00145             virtual CString &operator += (const CString &string);
00146 
00152             virtual CString &operator += (const char *string);
00153 
00159             virtual bool operator == (const char *equals) const;
00160 
00166             virtual bool operator == (const CString &string) const;
00167 
00173             virtual bool operator != (const char *string) const;
00174 
00180             virtual bool operator != (const CString &string) const;
00181 
00186             virtual bool operator ! () const;
00187 
00193             virtual char operator [] (const long index) const;
00194 
00195 //  ===========================================================================
00196 
00202             virtual CPascalString getStringAsPascalString();
00203 
00204 //  ===========================================================================
00205 
00211             static double toDouble(const char *text);
00212 
00218             static float toFloat(const char *text);
00219 
00225             static long toLong(const char *text);
00226 
00232             static int toInt(const char *text);
00233 
00239             static char *toString(const float value);
00240 
00246             static char *toString(const int value);
00247 
00253             static char *toString(const long value);
00254 
00259             static CString *newEmptyString() { return new CString(CString::CSTRING_NULL_STRING); }
00260 
00265             static CString emptyString() { return CString(CString::CSTRING_NULL_STRING); }
00266 
00267 //  ===========================================================================
00268 
00273             virtual void setString(const char *string);
00274 
00279             virtual void setString(const CString &string);
00280 
00286             virtual void setStringWithFormat(const char *text, ...);
00287 
00288 //  ===========================================================================
00289 
00294             virtual void appendString(const char character);
00295 
00300             virtual void appendString(const char *string);
00301 
00306             virtual void appendString(const CString &string);
00307 
00308 //  ===========================================================================
00309 
00315             virtual void getString(char *buffer, const long size) const;
00316 
00321             virtual void getString(char *buffer) const;
00322 
00329             virtual CString getSubString(const long start, const long end) const;
00330 
00335             virtual const char *getString() const;
00336 
00337 //  ===========================================================================
00338 
00343             virtual long getNumberOfCharacters() const;
00344 
00350             virtual char characterAt(const int index) const;
00351 
00352 //  ===========================================================================
00353 
00357             virtual void toUpperCase();
00358 
00362             virtual void toLowerCase();
00363 
00364 //  ===========================================================================
00365 
00369             virtual void removeTrailingAndLeadingWhiteSpace();
00370 
00374             virtual void removeLeadingWhiteSpace();
00375 
00379             virtual void removeTrailingWhiteSpace();
00380 
00384             virtual void removeLastCharacter();
00385 
00391             virtual void replaceCharWithChar(const char characterToReplace, const char characterToReplaceWith);
00392 
00398             virtual void replaceCharWithString(const char characterToReplace, const CString &stringToReplaceWith);
00399 
00405             virtual void replaceStringWithChar(const char characterToReplaceWith, const CString &stringToReplace);
00406 
00407 //  ===========================================================================
00408 
00414             static char toUpperCase(const char letter);
00415 
00421             static char toLowerCase(const char letter);
00422 
00428             static bool isWhiteSpace(const char letter);
00429 
00430 //  ===========================================================================
00431 
00437             virtual bool equals(const char *other) const;
00438 
00444             virtual bool equals(const CString &string) const;
00445 
00451             virtual bool equalsIgnoringCase(const char *other) const;
00452 
00458             virtual bool equalsIgnoringCase(const CString &string) const;
00459 
00460 //  ===========================================================================
00461 
00467             virtual long findForward(const char character);
00468 
00474             virtual long findBackwards(const char character);
00475 
00481             long findSubString(const CString &string);
00482 
00483 //  ===========================================================================
00484 
00485 #ifndef WIN32
00486 
00491             CFStringRef getStringAsCFStringRef() const;
00492 
00497             virtual void setStringFromCFStringRef(const CFStringRef &string);
00498 #endif
00499 
00500 //  ===========================================================================
00501 
00507             virtual void getObjectDescription(char *string, const long size) const;
00508 
00509 //  ===========================================================================
00510 
00511         protected:
00512 
00513 //  ===========================================================================
00514 
00515             char *m_string;                 
00516             long m_numberOfCharacters;      
00517         };
00518     }
00519 }
00520 #endif  // End of CString.hpp

Infinity API - CString.hpp Source File generated on 7 Mar 2007