00001
00002
00003
00004
00005
00012 #ifndef _FU_STRING_H_
00013 #define _FU_STRING_H_
00014
00016 typedef vector<fstring> FStringList;
00017
00019 typedef vector<string> StringList;
00020
00025 inline bool IsEquivalent(const char* sz1, const char* sz2) { return strcmp(sz1, sz2) == 0; }
00026 inline bool IsEquivalent(const string& sz1, const char* sz2) { return strcmp(sz1.c_str(), sz2) == 0; }
00027 inline bool IsEquivalent(const char* sz1, const string& sz2) { return strcmp(sz1, sz2.c_str()) == 0; }
00028 inline bool IsEquivalent(const string& sz1, const string& sz2) { return strcmp(sz1.c_str(), sz2.c_str()) == 0; }
00034 inline bool operator==(const string& sz1, const char* sz2) { return strcmp(sz1.c_str(), sz2) == 0; }
00035
00041 FCOLLADA_EXPORT string operator+(const string& sz1, int32 i);
00042
00043 #ifdef UNICODE
00044
00048 inline bool IsEquivalent(const fchar* sz1, const fchar* sz2) { return fstrcmp(sz1, sz2) == 0; }
00049 inline bool IsEquivalent(const fstring& sz1, const fchar* sz2) { return fstrcmp(sz1.c_str(), sz2) == 0; }
00050 inline bool IsEquivalent(const fchar* sz1, const fstring& sz2) { return fstrcmp(sz1, sz2.c_str()) == 0; }
00051 inline bool IsEquivalent(const fstring& sz1, const fstring& sz2) { return fstrcmp(sz1.c_str(), sz2.c_str()) == 0; }
00057 inline bool operator==(const fstring& sz1, const fchar* sz2) { return fstrcmp(sz1.c_str(), sz2) == 0; }
00058
00064 FCOLLADA_EXPORT fstring operator+(const fstring& sz1, int32 i);
00065 #endif // UNICODE
00066
00067
00068 #include "FUtils/FUStringBuilder.h"
00069 #include "FUtils/FUStringConversion.h"
00070
00072 #define FS(a) fstring(FC(a))
00073
00074 #define TO_FSTRING(a) FUStringConversion::ToFString(a)
00075
00076 #define TO_STRING(a) FUStringConversion::ToString(a)
00077
00079 extern FCOLLADA_EXPORT const string emptyString;
00081 extern FCOLLADA_EXPORT const fstring emptyFString;
00082
00087 inline bool IsEquivalent(FUSStringBuilder& builder, const char* sz) { return IsEquivalent(builder.ToCharPtr(), sz); }
00088 inline bool IsEquivalent(FUSStringBuilder& builder, const string& sz) { return IsEquivalent(builder.ToCharPtr(), sz.c_str()); }
00089 inline bool IsEquivalent(FUStringBuilder& builder, const fchar* sz) { return IsEquivalent(builder.ToCharPtr(), sz); }
00090 inline bool IsEquivalent(FUStringBuilder& builder, const fstring& sz) { return IsEquivalent(builder.ToCharPtr(), sz.c_str()); }
00092 #endif // _FU_STRING_H_