00001
00002 #ifndef __AIUnicodeString__
00003 #define __AIUnicodeString__
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include "IAIUnicodeString.h"
00028 #include "AICharacterEncoding.h"
00029 #include "AITypes.h"
00030
00031 #include "AIHeaderBegin.h"
00032
00035
00036
00037
00038
00039
00040
00041 #define kAIUnicodeStringSuite "AI Unicode String Suite"
00042 #define kAIUnicodeStringSuiteVersion AIAPI_VERSION(9)
00043 #define kAIUnicodeStringVersion kAIUnicodeStringSuiteVersion
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00066 struct AIUnicodeStringSuite
00067 {
00068
00075 AIAPI AIErr (*Initialize) (ai::UnicodeString& str, const char* string,
00076 ai::UnicodeString::offset_type srcByteLen, AICharacterEncoding encoding);
00077
00084 AIAPI AIErr (*InitializeUTF16) (ai::UnicodeString& str, const ASUnicode* utfs, ai::UnicodeString::offset_type srcUTF16Count);
00085
00092 AIAPI AIErr (*InitializeUTF32Char) (ai::UnicodeString& str, ai::UnicodeString::offset_type count,
00093 ai::UnicodeString::UTF32TextChar ch);
00094
00099 AIAPI AIErr (*Destroy) (ai::UnicodeString& str);
00100
00101
00102
00107 AIAPI AIErr (*Append) (ai::UnicodeString& str, const ai::UnicodeString& str2);
00108
00115 AIAPI AIErr (*AppendSubString) (ai::UnicodeString& str,
00116 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00117 ai::UnicodeString::size_type count);
00118
00123 AIAPI AIErr (*Assign) (ai::UnicodeString& str,
00124 const ai::UnicodeString& str2);
00125
00131 AIAPI AIErr (*Copy) (ai::UnicodeString& str, const ai::UnicodeString& str2);
00132
00140 AIAPI AIErr (*GetChar) (const ai::UnicodeString& str,
00141 ai::UnicodeString::size_type position,
00142 ai::UnicodeString::UTF32TextChar& ch);
00143
00148 AIAPI void (*Clear) (ai::UnicodeString& str);
00149
00164 AIAPI ai::int32 (*Compare) (const ai::UnicodeString& str,
00165 ai::UnicodeString::size_type pos, ai::UnicodeString::size_type num,
00166 const ai::UnicodeString& str2,
00167 ai::UnicodeString::size_type startOffset, ai::UnicodeString::size_type count);
00168
00175 AIAPI AIErr (*toLower) (ai::UnicodeString& src);
00176
00183 AIAPI AIErr (*toUpper) (ai::UnicodeString& src);
00184
00200 AIAPI ai::int32 (*CaseCompare) (const ai::UnicodeString& str,
00201 ai::UnicodeString::size_type pos, ai::UnicodeString::size_type num,
00202 const ai::UnicodeString& str2,
00203 ai::UnicodeString::size_type startOffset, ai::UnicodeString::size_type count);
00204
00219 AIAPI AIErr (*CanonicalCompare) (const ai::UnicodeString& str, const ai::UnicodeString& str2, ai::int32& compareResult);
00220
00236 AIAPI AIErr (*CanonicalCaseCompare) (const ai::UnicodeString& str, const ai::UnicodeString& str2, ai::int32& compareResult);
00237
00243 AIAPI ai::UnicodeString::size_type (*Length) (const ai::UnicodeString& str);
00244
00250 AIAPI AIBool8 (*Empty) (const ai::UnicodeString& str);
00251
00258 AIAPI AIErr (*Erase) (ai::UnicodeString& str,
00259 ai::UnicodeString::size_type startOffset,
00260 ai::UnicodeString::size_type count);
00261
00270 AIAPI ai::UnicodeString::size_type (*FindChar) (const ai::UnicodeString& str,
00271 ai::UnicodeString::UTF32TextChar ch,
00272 ai::UnicodeString::size_type startOffset);
00273
00282 AIAPI ai::UnicodeString::size_type (*FindString) (const ai::UnicodeString& str,
00283 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset);
00284
00295 AIAPI ai::UnicodeString::size_type (*FindSubString) (const ai::UnicodeString& str,
00296 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00297 ai::UnicodeString::size_type count);
00298
00309 AIAPI ai::UnicodeString::size_type (*CaseFindSubString) (const ai::UnicodeString& str,
00310 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00311 ai::UnicodeString::size_type count);
00312
00321 AIAPI ai::UnicodeString::size_type (*RFindChar) (const ai::UnicodeString& str,
00322 ai::UnicodeString::UTF32TextChar ch,
00323 ai::UnicodeString::size_type startOffset);
00324
00333 AIAPI ai::UnicodeString::size_type (*RFindString) (const ai::UnicodeString& str,
00334 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset);
00335
00346 AIAPI ai::UnicodeString::size_type (*RFindSubString) (const ai::UnicodeString& str,
00347 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00348 ai::UnicodeString::size_type count);
00349
00360 AIAPI ai::UnicodeString::size_type (*FindFirstOf) (const ai::UnicodeString& str,
00361 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00362 ai::UnicodeString::size_type count);
00363
00374 AIAPI ai::UnicodeString::size_type (*FindFirstNotOf) (const ai::UnicodeString& str,
00375 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00376 ai::UnicodeString::size_type count);
00377
00388 AIAPI ai::UnicodeString::size_type (*FindLastOf) (const ai::UnicodeString& str,
00389 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00390 ai::UnicodeString::size_type count);
00391
00402 AIAPI ai::UnicodeString::size_type (*FindLastNotOf) (const ai::UnicodeString& str,
00403 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00404 ai::UnicodeString::size_type count);
00405
00412 AIAPI AIErr (*Resize) (ai::UnicodeString& str, ai::UnicodeString::size_type count, ai::UnicodeString::UTF32TextChar ch);
00413
00419 AIAPI ai::UnicodeString::size_type (*Capacity) (const ai::UnicodeString& str);
00420
00429 AIAPI void (*Reserve) (ai::UnicodeString& str, ai::UnicodeString::size_type count);
00430
00439 AIAPI AIErr (*SubStr) (ai::UnicodeString& subString,
00440 const ai::UnicodeString& str,
00441 ai::UnicodeString::size_type offset, ai::UnicodeString::size_type count);
00442
00447 AIAPI AIErr (*SwapStr) (ai::UnicodeString& str, ai::UnicodeString& str2);
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00463 AIAPI AIBool8 (*HasSurrogates) (const ai::UnicodeString& str);
00464
00473 AIAPI ai::UnicodeString::size_type (*UTF_16) (const ai::UnicodeString& str,
00474 const ai::UnicodeString::UTF16Char*& buffer);
00475
00485 AIAPI AIErr (*GetAs) (const ai::UnicodeString& str, AICharacterEncoding encoding,
00486 ai::AutoBuffer<char>& buffer, ai::UnicodeString::size_type& bufferByteCount);
00487
00493 AIAPI AIErr (*InitializeZString) (ai::UnicodeString& str, ZRef zStringKey);
00494
00499 AIAPI AIErr (*Normalize) (ai::UnicodeString& str, ai::UnicodeString::NormalizedForm form);
00500
00501
00502 };
00503
00504 #include "AIHeaderEnd.h"
00505
00506 #endif // __AIUnicodeString__