| OLD | NEW |
| 1 /* | 1 /* |
| 2 ********************************************************************** | 2 ********************************************************************** |
| 3 * Copyright (c) 2002-2005, International Business Machines | 3 * Copyright (c) 2002-2014, International Business Machines |
| 4 * Corporation and others. All Rights Reserved. | 4 * Corporation and others. All Rights Reserved. |
| 5 ********************************************************************** | 5 ********************************************************************** |
| 6 ********************************************************************** | 6 ********************************************************************** |
| 7 */ | 7 */ |
| 8 #ifndef _CONVPERF_H | 8 #ifndef _CONVPERF_H |
| 9 #define _CONVPERF_H | 9 #define _CONVPERF_H |
| 10 | 10 |
| 11 #include <mlang.h> | 11 #include <mlang.h> |
| 12 #include <objbase.h> | 12 #include <objbase.h> |
| 13 #include <stdlib.h> | 13 #include <stdlib.h> |
| 14 #include "unicode/ucnv.h" | 14 #include "unicode/ucnv.h" |
| 15 #include "unicode/uclean.h" | 15 #include "unicode/uclean.h" |
| 16 #include "unicode/ustring.h" | 16 #include "unicode/ustring.h" |
| 17 #include "cmemory.h" // for UPRV_LENGTHOF |
| 17 | 18 |
| 18 #include "unicode/uperf.h" | 19 #include "unicode/uperf.h" |
| 19 | 20 |
| 20 #define CONVERSION_FLAGS (0) /*WC_DEFAULTCHAR WC_COMPOSITECHECK & WC_SEPCHARS*/ | 21 #define CONVERSION_FLAGS (0) /*WC_DEFAULTCHAR WC_COMPOSITECHECK & WC_SEPCHARS*/ |
| 21 #define MAX_BUF_SIZE 3048 | 22 #define MAX_BUF_SIZE 3048 |
| 22 #define LENGTHOF(array) (sizeof(array)/sizeof((array)[0])) | |
| 23 | 23 |
| 24 class ICUToUnicodePerfFunction : public UPerfFunction{ | 24 class ICUToUnicodePerfFunction : public UPerfFunction{ |
| 25 private: | 25 private: |
| 26 UConverter* conv; | 26 UConverter* conv; |
| 27 const char* src; | 27 const char* src; |
| 28 int32_t srcLen; | 28 int32_t srcLen; |
| 29 UChar* target; | 29 UChar* target; |
| 30 UChar* targetLimit; | 30 UChar* targetLimit; |
| 31 | 31 |
| 32 public: | 32 public: |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 char* src; | 152 char* src; |
| 153 UINT srcLen; | 153 UINT srcLen; |
| 154 WCHAR dest[MAX_BUF_SIZE]; | 154 WCHAR dest[MAX_BUF_SIZE]; |
| 155 UINT dstLen; | 155 UINT dstLen; |
| 156 const char* name; | 156 const char* name; |
| 157 public: | 157 public: |
| 158 WinANSIToUnicodePerfFunction(const char* cpName, char* pszIn,UINT szLen, UEr
rorCode& status){ | 158 WinANSIToUnicodePerfFunction(const char* cpName, char* pszIn,UINT szLen, UEr
rorCode& status){ |
| 159 name = cpName; | 159 name = cpName; |
| 160 src = pszIn; | 160 src = pszIn; |
| 161 srcLen = szLen; | 161 srcLen = szLen; |
| 162 dstLen = LENGTHOF(dest); | 162 dstLen = UPRV_LENGTHOF(dest); |
| 163 unsigned short bEnc[30]={'\0'}; | 163 unsigned short bEnc[30]={'\0'}; |
| 164 const char* tenc=name; | 164 const char* tenc=name; |
| 165 for(int i=0;*tenc!='\0';i++){ | 165 for(int i=0;*tenc!='\0';i++){ |
| 166 bEnc[i]=*tenc; | 166 bEnc[i]=*tenc; |
| 167 tenc++; | 167 tenc++; |
| 168 } | 168 } |
| 169 LPMULTILANGUAGE2 pMulti; | 169 LPMULTILANGUAGE2 pMulti; |
| 170 | 170 |
| 171 CoInitialize(NULL); | 171 CoInitialize(NULL); |
| 172 | 172 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 char dest[MAX_BUF_SIZE]; | 206 char dest[MAX_BUF_SIZE]; |
| 207 UINT dstLen; | 207 UINT dstLen; |
| 208 const char* name; | 208 const char* name; |
| 209 BOOL lpUsedDefaultChar; | 209 BOOL lpUsedDefaultChar; |
| 210 | 210 |
| 211 public: | 211 public: |
| 212 WinANSIFromUnicodePerfFunction(const char* cpName, WCHAR* pszIn,UINT szLen,
UErrorCode& status){ | 212 WinANSIFromUnicodePerfFunction(const char* cpName, WCHAR* pszIn,UINT szLen,
UErrorCode& status){ |
| 213 name = cpName; | 213 name = cpName; |
| 214 src = pszIn; | 214 src = pszIn; |
| 215 srcLen = szLen; | 215 srcLen = szLen; |
| 216 dstLen = LENGTHOF(dest); | 216 dstLen = UPRV_LENGTHOF(dest); |
| 217 lpUsedDefaultChar=FALSE; | 217 lpUsedDefaultChar=FALSE; |
| 218 unsigned short bEnc[30]={'\0'}; | 218 unsigned short bEnc[30]={'\0'}; |
| 219 const char* tenc=name; | 219 const char* tenc=name; |
| 220 for(int i=0;*tenc!='\0';i++){ | 220 for(int i=0;*tenc!='\0';i++){ |
| 221 bEnc[i]=*tenc; | 221 bEnc[i]=*tenc; |
| 222 tenc++; | 222 tenc++; |
| 223 } | 223 } |
| 224 LPMULTILANGUAGE2 pMulti; | 224 LPMULTILANGUAGE2 pMulti; |
| 225 | 225 |
| 226 CoInitialize(NULL); | 226 CoInitialize(NULL); |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 for(int i=0;*tenc!='\0';i++){ | 301 for(int i=0;*tenc!='\0';i++){ |
| 302 bEnc[i]=*tenc; | 302 bEnc[i]=*tenc; |
| 303 tenc++; | 303 tenc++; |
| 304 } | 304 } |
| 305 /* get the charset info */ | 305 /* get the charset info */ |
| 306 pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo); | 306 pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo); |
| 307 pMulti->CreateConvertCharset(mimeInfo.uiCodePage, 1200 /*unicode*/, (DWO
RD)0,&pConvToUni); | 307 pMulti->CreateConvertCharset(mimeInfo.uiCodePage, 1200 /*unicode*/, (DWO
RD)0,&pConvToUni); |
| 308 getErr(err,status); | 308 getErr(err,status); |
| 309 src = source; | 309 src = source; |
| 310 srcLen = sourceLen; | 310 srcLen = sourceLen; |
| 311 dstLen = LENGTHOF(dst); | 311 dstLen = UPRV_LENGTHOF(dst); |
| 312 cpName = name; | 312 cpName = name; |
| 313 } | 313 } |
| 314 | 314 |
| 315 virtual void call(UErrorCode* status){ | 315 virtual void call(UErrorCode* status){ |
| 316 HRESULT err= pConvToUni->DoConversionToUnicode(src,&srcLen,dst, &dstLen)
; | 316 HRESULT err= pConvToUni->DoConversionToUnicode(src,&srcLen,dst, &dstLen)
; |
| 317 getErr(err,*status); | 317 getErr(err,*status); |
| 318 } | 318 } |
| 319 virtual long getOperationsPerIteration(void){ | 319 virtual long getOperationsPerIteration(void){ |
| 320 return srcLen; | 320 return srcLen; |
| 321 } | 321 } |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 357 for(int i=0;*tenc!='\0';i++){ | 357 for(int i=0;*tenc!='\0';i++){ |
| 358 bEnc[i]=*tenc; | 358 bEnc[i]=*tenc; |
| 359 tenc++; | 359 tenc++; |
| 360 } | 360 } |
| 361 /* get the charset info */ | 361 /* get the charset info */ |
| 362 pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo); | 362 pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo); |
| 363 pMulti->CreateConvertCharset(1200 /*unicode*/, mimeInfo.uiCodePage, (DWO
RD)0,&pConvFromUni); | 363 pMulti->CreateConvertCharset(1200 /*unicode*/, mimeInfo.uiCodePage, (DWO
RD)0,&pConvFromUni); |
| 364 getErr(err,status); | 364 getErr(err,status); |
| 365 src = source; | 365 src = source; |
| 366 srcLen = sourceLen; | 366 srcLen = sourceLen; |
| 367 dstLen = LENGTHOF(dst); | 367 dstLen = UPRV_LENGTHOF(dst); |
| 368 cpName = name; | 368 cpName = name; |
| 369 | 369 |
| 370 } | 370 } |
| 371 | 371 |
| 372 virtual void call(UErrorCode* status){ | 372 virtual void call(UErrorCode* status){ |
| 373 HRESULT err= pConvFromUni->DoConversionFromUnicode(src,&srcLen,dst, &dst
Len); | 373 HRESULT err= pConvFromUni->DoConversionFromUnicode(src,&srcLen,dst, &dst
Len); |
| 374 getErr(err,*status); | 374 getErr(err,*status); |
| 375 } | 375 } |
| 376 virtual long getOperationsPerIteration(void){ | 376 virtual long getOperationsPerIteration(void){ |
| 377 return srcLen; | 377 return srcLen; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 397 CoCreateInstance( | 397 CoCreateInstance( |
| 398 __uuidof(CMultiLanguage), | 398 __uuidof(CMultiLanguage), |
| 399 NULL, | 399 NULL, |
| 400 CLSCTX_SERVER, | 400 CLSCTX_SERVER, |
| 401 __uuidof(IMultiLanguage2), | 401 __uuidof(IMultiLanguage2), |
| 402 (void**)&pMulti | 402 (void**)&pMulti |
| 403 ); | 403 ); |
| 404 | 404 |
| 405 src = source; | 405 src = source; |
| 406 srcLen = sourceLen; | 406 srcLen = sourceLen; |
| 407 dstLen = LENGTHOF(dst); | 407 dstLen = UPRV_LENGTHOF(dst); |
| 408 cpName = name; | 408 cpName = name; |
| 409 unsigned short bEnc[30]={'\0'}; | 409 unsigned short bEnc[30]={'\0'}; |
| 410 const char* tenc=name; | 410 const char* tenc=name; |
| 411 for(int i=0;*tenc!='\0';i++){ | 411 for(int i=0;*tenc!='\0';i++){ |
| 412 bEnc[i]=*tenc; | 412 bEnc[i]=*tenc; |
| 413 tenc++; | 413 tenc++; |
| 414 } | 414 } |
| 415 /* get the charset info */ | 415 /* get the charset info */ |
| 416 MIMECSETINFO mimeInfo; | 416 MIMECSETINFO mimeInfo; |
| 417 mimeInfo.uiCodePage = 0; | 417 mimeInfo.uiCodePage = 0; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 | 458 |
| 459 | 459 |
| 460 unsigned short bEnc[30]={'\0'}; | 460 unsigned short bEnc[30]={'\0'}; |
| 461 const char* tenc=name; | 461 const char* tenc=name; |
| 462 for(int i=0;*tenc!='\0';i++){ | 462 for(int i=0;*tenc!='\0';i++){ |
| 463 bEnc[i]=*tenc; | 463 bEnc[i]=*tenc; |
| 464 tenc++; | 464 tenc++; |
| 465 } | 465 } |
| 466 src = source; | 466 src = source; |
| 467 srcLen = sourceLen; | 467 srcLen = sourceLen; |
| 468 dstLen = LENGTHOF(dst); | 468 dstLen = UPRV_LENGTHOF(dst); |
| 469 cpName = name; | 469 cpName = name; |
| 470 /* get the charset info */ | 470 /* get the charset info */ |
| 471 MIMECSETINFO mimeInfo; | 471 MIMECSETINFO mimeInfo; |
| 472 mimeInfo.uiCodePage = 0; | 472 mimeInfo.uiCodePage = 0; |
| 473 mimeInfo.uiInternetEncoding =0; | 473 mimeInfo.uiInternetEncoding =0; |
| 474 | 474 |
| 475 pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo); | 475 pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo); |
| 476 dwEnc = (mimeInfo.uiInternetEncoding==0)?mimeInfo.uiCodePage:mimeInfo.ui
InternetEncoding; | 476 dwEnc = (mimeInfo.uiInternetEncoding==0)?mimeInfo.uiCodePage:mimeInfo.ui
InternetEncoding; |
| 477 } | 477 } |
| 478 | 478 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 559 UPerfFunction* TestICU_ISO2022JP_FromUnicode(); | 559 UPerfFunction* TestICU_ISO2022JP_FromUnicode(); |
| 560 UPerfFunction* TestWinANSI_ISO2022JP_ToUnicode(); | 560 UPerfFunction* TestWinANSI_ISO2022JP_ToUnicode(); |
| 561 UPerfFunction* TestWinANSI_ISO2022JP_FromUnicode(); | 561 UPerfFunction* TestWinANSI_ISO2022JP_FromUnicode(); |
| 562 UPerfFunction* TestWinIML2_ISO2022JP_ToUnicode(); | 562 UPerfFunction* TestWinIML2_ISO2022JP_ToUnicode(); |
| 563 UPerfFunction* TestWinIML2_ISO2022JP_FromUnicode(); | 563 UPerfFunction* TestWinIML2_ISO2022JP_FromUnicode(); |
| 564 | 564 |
| 565 }; | 565 }; |
| 566 | 566 |
| 567 #endif | 567 #endif |
| 568 | 568 |
| OLD | NEW |