True Axis Physics SDK 1.2.0.1 Beta Documentation
www.trueaxis.com

String.h

00001 //---------------------------------------------------------------------------------
00002 // File Name: String.h
00003 // Description:
00004 //
00005 // Copyright (C) 2004 - 2006 True Axis Pty Ltd, Australia. 
00006 // All Rights Reserved.
00007 //
00008 // History:
00009 //      Created File.
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     // No need for Initialise and Finalise
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     // assignment operators
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.