00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef TA_STRING_H
00013 #define TA_STRING_H
00014
00015 #ifndef TA_TYPES_H
00016 #include "Types.h"
00017 #endif // TA_TYPES_H
00018
00019 #ifndef TA_COMMON_H
00020 #include "Common.h"
00021 #endif // TA_COMMON_H
00022
00023 #ifndef TA_MATHS_H
00024 #include "Maths.h"
00025 #endif // TA_MATHS_H
00026
00027 namespace TA
00028 {
00029
00030 class Serialiser;
00031
00032 class TACOMMON_CLASS String
00033 {
00034 public:
00035 String();
00036 String(const Char* szString);
00037 String(const String& strString);
00038 String(const Char* szString, int nSize);
00039 String(int nValue);
00040 String(float fValue);
00041 ~String();
00042
00043 void Serialise(Serialiser& serialiser);
00044 void Serialise32BitAligned(Serialiser& serialiser);
00045
00046
00047
00048 bool operator == (const String& strString);
00049 bool operator == (const Char* szString);
00050 bool operator != (const String& strString);
00051 bool operator != (const Char* szString);
00052
00053
00054 String& operator = (const String& strString);
00055 String& operator = (const Char* szString);
00056
00057 String& operator += (const String& strString);
00058 String& operator += (const Char* szString);
00059 String& operator += (int nValue);
00060 String& operator += (float fValue);
00061
00062 String operator + (const String& strString) const;
00063 String operator + (String& strString) { return (const String&)*this + (const String&)strString; }
00064 String operator + (const Char* szString) const;
00065 String operator + (int nValue) const;
00066 String operator + (float fValue) const;
00067 friend String operator + (const Char* a, String& b);
00068
00069 static String FromChar(const Char c)
00070 {
00071 Char szChar[2];
00072 szChar[0] = c;
00073 szChar[1] = '\0';
00074 String str(szChar);
00075 return str;
00076 }
00077
00078 operator const Char* () const { return m_szString; }
00079 const Char* Get() const { return m_szString; }
00080
00081 int GetSize() const { return Abs(m_nSize); }
00082
00083 void Clear();
00084
00085 void ToLower();
00086 void ToUpper();
00087
00088
00089 private:
00090 int m_nSize;
00091 Char* m_szString;
00092
00093 friend String TAC_CALL operator + (const Char* a, const String& b);
00094 void Resize(int nSize);
00095 };
00096
00097 String TAC_CALL operator + (const Char* a, const String& b);
00098
00099 const String k_strEmptyString;
00100
00101 };
00102
00103
00104
00105 #endif // TA_STRING_H
© Copyright 2004-2006 TRUE AXIS PTY LTD Australia. All rights reserved.