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
00028
00029
00030
00031 #include "IAIUnicodeString.h"
00032 #include "AICharacterEncoding.h"
00033 #include "AITypes.h"
00034
00035 #include "AIHeaderBegin.h"
00036
00039
00040
00041
00042
00043
00044
00045 #define kAIUnicodeStringSuite "AI Unicode String Suite"
00046 #define kAIUnicodeStringSuiteVersion AIAPI_VERSION(8)
00047 #define kAIUnicodeStringVersion kAIUnicodeStringSuiteVersion
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00070 typedef struct {
00071
00078 AIAPI AIErr (*Initialize) (ai::UnicodeString& str, const char* string,
00079 ai::UnicodeString::offset_type srcByteLen, AICharacterEncoding encoding);
00080
00087 AIAPI AIErr (*InitializeUTF16) (ai::UnicodeString& str, const ASUnicode* utfs, ai::UnicodeString::offset_type srcUTF16Count);
00088
00095 AIAPI AIErr (*InitializeUTF32Char) (ai::UnicodeString& str, ai::UnicodeString::offset_type count,
00096 ai::UnicodeString::UTF32TextChar ch);
00097
00102 AIAPI AIErr (*Destroy) (ai::UnicodeString& str);
00103
00104
00105
00110 AIAPI AIErr (*Append) (ai::UnicodeString& str, const ai::UnicodeString& str2);
00111
00118 AIAPI AIErr (*AppendSubString) (ai::UnicodeString& str,
00119 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00120 ai::UnicodeString::size_type count);
00121
00126 AIAPI AIErr (*Assign) (ai::UnicodeString& str,
00127 const ai::UnicodeString& str2);
00128
00134 AIAPI AIErr (*Copy) (ai::UnicodeString& str, const ai::UnicodeString& str2);
00135
00143 AIAPI AIErr (*GetChar) (const ai::UnicodeString& str,
00144 ai::UnicodeString::size_type position,
00145 ai::UnicodeString::UTF32TextChar& ch);
00146
00151 AIAPI void (*Clear) (ai::UnicodeString& str);
00152
00167 AIAPI ai::int32 (*Compare) (const ai::UnicodeString& str,
00168 ai::UnicodeString::size_type pos, ai::UnicodeString::size_type num,
00169 const ai::UnicodeString& str2,
00170 ai::UnicodeString::size_type startOffset, ai::UnicodeString::size_type count);
00171
00178 AIAPI AIErr (*toLower) (ai::UnicodeString& src);
00179
00186 AIAPI AIErr (*toUpper) (ai::UnicodeString& src);
00187
00203 AIAPI ai::int32 (*CaseCompare) (const ai::UnicodeString& str,
00204 ai::UnicodeString::size_type pos, ai::UnicodeString::size_type num,
00205 const ai::UnicodeString& str2,
00206 ai::UnicodeString::size_type startOffset, ai::UnicodeString::size_type count);
00207
00222 AIAPI AIErr (*CanonicalCompare) (const ai::UnicodeString& str, const ai::UnicodeString& str2, ai::int32& compareResult);
00223
00239 AIAPI AIErr (*CanonicalCaseCompare) (const ai::UnicodeString& str, const ai::UnicodeString& str2, ai::int32& compareResult);
00240
00246 AIAPI ai::UnicodeString::size_type (*Length) (const ai::UnicodeString& str);
00247
00253 AIAPI AIBool8 (*Empty) (const ai::UnicodeString& str);
00254
00261 AIAPI AIErr (*Erase) (ai::UnicodeString& str,
00262 ai::UnicodeString::size_type startOffset,
00263 ai::UnicodeString::size_type count);
00264
00273 AIAPI ai::UnicodeString::size_type (*FindChar) (const ai::UnicodeString& str,
00274 ai::UnicodeString::UTF32TextChar ch,
00275 ai::UnicodeString::size_type startOffset);
00276
00285 AIAPI ai::UnicodeString::size_type (*FindString) (const ai::UnicodeString& str,
00286 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset);
00287
00298 AIAPI ai::UnicodeString::size_type (*FindSubString) (const ai::UnicodeString& str,
00299 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00300 ai::UnicodeString::size_type count);
00301
00312 AIAPI ai::UnicodeString::size_type (*CaseFindSubString) (const ai::UnicodeString& str,
00313 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00314 ai::UnicodeString::size_type count);
00315
00324 AIAPI ai::UnicodeString::size_type (*RFindChar) (const ai::UnicodeString& str,
00325 ai::UnicodeString::UTF32TextChar ch,
00326 ai::UnicodeString::size_type startOffset);
00327
00336 AIAPI ai::UnicodeString::size_type (*RFindString) (const ai::UnicodeString& str,
00337 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset);
00338
00349 AIAPI ai::UnicodeString::size_type (*RFindSubString) (const ai::UnicodeString& str,
00350 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00351 ai::UnicodeString::size_type count);
00352
00363 AIAPI ai::UnicodeString::size_type (*FindFirstOf) (const ai::UnicodeString& str,
00364 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00365 ai::UnicodeString::size_type count);
00366
00377 AIAPI ai::UnicodeString::size_type (*FindFirstNotOf) (const ai::UnicodeString& str,
00378 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00379 ai::UnicodeString::size_type count);
00380
00391 AIAPI ai::UnicodeString::size_type (*FindLastOf) (const ai::UnicodeString& str,
00392 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00393 ai::UnicodeString::size_type count);
00394
00405 AIAPI ai::UnicodeString::size_type (*FindLastNotOf) (const ai::UnicodeString& str,
00406 const ai::UnicodeString& str2, ai::UnicodeString::size_type startOffset,
00407 ai::UnicodeString::size_type count);
00408
00415 AIAPI AIErr (*Resize) (ai::UnicodeString& str, ai::UnicodeString::size_type count, ai::UnicodeString::UTF32TextChar ch);
00416
00425 AIAPI AIErr (*SubStr) (ai::UnicodeString& subString,
00426 const ai::UnicodeString& str,
00427 ai::UnicodeString::size_type offset, ai::UnicodeString::size_type count);
00428
00433 AIAPI AIErr (*SwapStr) (ai::UnicodeString& str, ai::UnicodeString& str2);
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00449 AIAPI AIBool8 (*HasSurrogates) (const ai::UnicodeString& str);
00450
00459 AIAPI ai::UnicodeString::size_type (*UTF_16) (const ai::UnicodeString& str,
00460 const ai::UnicodeString::UTF16Char*& buffer);
00461
00471 AIAPI AIErr (*GetAs) (const ai::UnicodeString& str, AICharacterEncoding encoding,
00472 ai::AutoBuffer<char>& buffer, ai::UnicodeString::size_type& bufferByteCount);
00473
00479 AIAPI AIErr (*InitializeZString) (ai::UnicodeString& str, ZRef zStringKey);
00480
00481
00482
00487 AIAPI AIErr (*Normalize) (ai::UnicodeString& str, ai::UnicodeString::NormalizedForm form);
00488
00489
00490 } AIUnicodeStringSuite;
00491
00492
00493 #include "AIHeaderEnd.h"
00494
00495
00496
00497 #endif // __AIUnicodeString__