| Index: source/test/perf/convperf/convperf.h
|
| diff --git a/source/test/perf/convperf/convperf.h b/source/test/perf/convperf/convperf.h
|
| deleted file mode 100644
|
| index c8681c59091ab7a535ff3bcaa33c6d4359eca046..0000000000000000000000000000000000000000
|
| --- a/source/test/perf/convperf/convperf.h
|
| +++ /dev/null
|
| @@ -1,568 +0,0 @@
|
| -/*
|
| -**********************************************************************
|
| -* Copyright (c) 2002-2014, International Business Machines
|
| -* Corporation and others. All Rights Reserved.
|
| -**********************************************************************
|
| -**********************************************************************
|
| -*/
|
| -#ifndef _CONVPERF_H
|
| -#define _CONVPERF_H
|
| -
|
| -#include <mlang.h>
|
| -#include <objbase.h>
|
| -#include <stdlib.h>
|
| -#include "unicode/ucnv.h"
|
| -#include "unicode/uclean.h"
|
| -#include "unicode/ustring.h"
|
| -#include "cmemory.h" // for UPRV_LENGTHOF
|
| -
|
| -#include "unicode/uperf.h"
|
| -
|
| -#define CONVERSION_FLAGS (0) /*WC_DEFAULTCHAR WC_COMPOSITECHECK & WC_SEPCHARS*/
|
| -#define MAX_BUF_SIZE 3048
|
| -
|
| -class ICUToUnicodePerfFunction : public UPerfFunction{
|
| -private:
|
| - UConverter* conv;
|
| - const char* src;
|
| - int32_t srcLen;
|
| - UChar* target;
|
| - UChar* targetLimit;
|
| -
|
| -public:
|
| - ICUToUnicodePerfFunction(const char* name, const char* source, int32_t sourceLen, UErrorCode& status){
|
| - conv = ucnv_open(name,&status);
|
| - src = source;
|
| - srcLen = sourceLen;
|
| - if(U_FAILURE(status)){
|
| - conv = NULL;
|
| - return;
|
| - }
|
| - target = NULL;
|
| - targetLimit = NULL;
|
| - int32_t reqdLen = ucnv_toUChars(conv, target, 0,
|
| - source, srcLen, &status);
|
| - if(status==U_BUFFER_OVERFLOW_ERROR) {
|
| - status=U_ZERO_ERROR;
|
| - target=(UChar*)malloc((reqdLen) * U_SIZEOF_UCHAR*2);
|
| - targetLimit = target + reqdLen;
|
| - if(target == NULL){
|
| - status = U_MEMORY_ALLOCATION_ERROR;
|
| - return;
|
| - }
|
| - }
|
| - }
|
| - virtual void call(UErrorCode* status){
|
| - const char* mySrc = src;
|
| - const char* sourceLimit = src + srcLen;
|
| - UChar* myTarget = target;
|
| - ucnv_toUnicode(conv, &myTarget, targetLimit, &mySrc, sourceLimit, NULL, TRUE, status);
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return srcLen;
|
| - }
|
| - ~ICUToUnicodePerfFunction(){
|
| - free(target);
|
| - ucnv_close(conv);
|
| - }
|
| -};
|
| -class ICUFromUnicodePerfFunction : public UPerfFunction{
|
| -private:
|
| - UConverter* conv;
|
| - const UChar* src;
|
| - int32_t srcLen;
|
| - char* target;
|
| - char* targetLimit;
|
| - const char* name;
|
| -
|
| -public:
|
| - ICUFromUnicodePerfFunction(const char* name, const UChar* source, int32_t sourceLen, UErrorCode& status){
|
| - conv = ucnv_open(name,&status);
|
| - src = source;
|
| - srcLen = sourceLen;
|
| - if(U_FAILURE(status)){
|
| - conv = NULL;
|
| - return;
|
| - }
|
| - target = NULL;
|
| - targetLimit = NULL;
|
| - int32_t reqdLen = ucnv_fromUChars(conv, target, 0,
|
| - source, srcLen, &status);
|
| - if(status==U_BUFFER_OVERFLOW_ERROR) {
|
| - status=U_ZERO_ERROR;
|
| - target=(char*)malloc((reqdLen*2));
|
| - targetLimit = target + reqdLen;
|
| - if(target == NULL){
|
| - status = U_MEMORY_ALLOCATION_ERROR;
|
| - return;
|
| - }
|
| - }
|
| - }
|
| - virtual void call(UErrorCode* status){
|
| - const UChar* mySrc = src;
|
| - const UChar* sourceLimit = src + srcLen;
|
| - char* myTarget = target;
|
| - ucnv_fromUnicode(conv,&myTarget, targetLimit, &mySrc, sourceLimit, NULL, TRUE, status);
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return srcLen;
|
| - }
|
| - ~ICUFromUnicodePerfFunction(){
|
| - free(target);
|
| - ucnv_close(conv);
|
| - }
|
| -};
|
| -
|
| -class ICUOpenAllConvertersFunction : public UPerfFunction{
|
| -private:
|
| - UBool cleanup;
|
| - int32_t availableConverters;
|
| - const char **convNames;
|
| -public:
|
| - ICUOpenAllConvertersFunction(UBool callCleanup, UErrorCode& status){
|
| - int32_t idx;
|
| - cleanup = callCleanup;
|
| - availableConverters = ucnv_countAvailable();
|
| - convNames = new const char *[availableConverters];
|
| - for (idx = 0; idx < availableConverters; idx++) {
|
| - convNames[idx] = ucnv_getAvailableName(idx);
|
| - }
|
| - }
|
| - virtual void call(UErrorCode* status){
|
| - int32_t idx;
|
| - if (cleanup) {
|
| - u_cleanup();
|
| - }
|
| - for (idx = 0; idx < availableConverters; idx++) {
|
| - ucnv_close(ucnv_open(convNames[idx], status));
|
| - }
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return availableConverters;
|
| - }
|
| - ~ICUOpenAllConvertersFunction(){
|
| - delete []convNames;
|
| - }
|
| -};
|
| -
|
| -class WinANSIToUnicodePerfFunction : public UPerfFunction{
|
| -
|
| -private:
|
| - DWORD uiCodePage;
|
| - char* src;
|
| - UINT srcLen;
|
| - WCHAR dest[MAX_BUF_SIZE];
|
| - UINT dstLen;
|
| - const char* name;
|
| -public:
|
| - WinANSIToUnicodePerfFunction(const char* cpName, char* pszIn,UINT szLen, UErrorCode& status){
|
| - name = cpName;
|
| - src = pszIn;
|
| - srcLen = szLen;
|
| - dstLen = UPRV_LENGTHOF(dest);
|
| - unsigned short bEnc[30]={'\0'};
|
| - const char* tenc=name;
|
| - for(int i=0;*tenc!='\0';i++){
|
| - bEnc[i]=*tenc;
|
| - tenc++;
|
| - }
|
| - LPMULTILANGUAGE2 pMulti;
|
| -
|
| - CoInitialize(NULL);
|
| -
|
| - /* create instance of converter object*/
|
| - CoCreateInstance(
|
| - __uuidof(CMultiLanguage),
|
| - NULL,
|
| - CLSCTX_SERVER,
|
| - __uuidof(IMultiLanguage2),
|
| - (void**)&pMulti
|
| - );
|
| -
|
| -
|
| -
|
| - MIMECSETINFO mimeInfo;
|
| -
|
| - mimeInfo.uiCodePage = 0;
|
| - mimeInfo.uiInternetEncoding =0;
|
| - /* get the charset info */
|
| - pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo);
|
| - uiCodePage = (mimeInfo.uiInternetEncoding==0)?mimeInfo.uiCodePage:mimeInfo.uiInternetEncoding;
|
| - }
|
| - virtual void call(UErrorCode* status){
|
| - int winSize =MultiByteToWideChar(uiCodePage,CONVERSION_FLAGS,src,srcLen,dest,dstLen);
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return srcLen;
|
| - }
|
| -};
|
| -
|
| -class WinANSIFromUnicodePerfFunction : public UPerfFunction{
|
| -
|
| -private:
|
| - DWORD uiCodePage;
|
| - WCHAR* src;
|
| - UINT srcLen;
|
| - char dest[MAX_BUF_SIZE];
|
| - UINT dstLen;
|
| - const char* name;
|
| - BOOL lpUsedDefaultChar;
|
| -
|
| -public:
|
| - WinANSIFromUnicodePerfFunction(const char* cpName, WCHAR* pszIn,UINT szLen, UErrorCode& status){
|
| - name = cpName;
|
| - src = pszIn;
|
| - srcLen = szLen;
|
| - dstLen = UPRV_LENGTHOF(dest);
|
| - lpUsedDefaultChar=FALSE;
|
| - unsigned short bEnc[30]={'\0'};
|
| - const char* tenc=name;
|
| - for(int i=0;*tenc!='\0';i++){
|
| - bEnc[i]=*tenc;
|
| - tenc++;
|
| - }
|
| - LPMULTILANGUAGE2 pMulti;
|
| -
|
| - CoInitialize(NULL);
|
| -
|
| - /* create instance of converter object*/
|
| - CoCreateInstance(
|
| - __uuidof(CMultiLanguage),
|
| - NULL,
|
| - CLSCTX_SERVER,
|
| - __uuidof(IMultiLanguage2),
|
| - (void**)&pMulti
|
| - );
|
| -
|
| -
|
| -
|
| - MIMECSETINFO mimeInfo;
|
| - mimeInfo.uiCodePage = 0;
|
| - mimeInfo.uiInternetEncoding =0;
|
| - /* get the charset info */
|
| - pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo);
|
| - uiCodePage = (mimeInfo.uiInternetEncoding==0)?mimeInfo.uiCodePage:mimeInfo.uiInternetEncoding;
|
| - }
|
| - virtual void call(UErrorCode* status){
|
| - BOOL* pUsedDefaultChar =(uiCodePage==CP_UTF8)?NULL:&lpUsedDefaultChar;
|
| - int winSize = WideCharToMultiByte(uiCodePage,CONVERSION_FLAGS,src,srcLen,dest,dstLen,NULL, pUsedDefaultChar);
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return srcLen;
|
| - }
|
| -};
|
| -static inline void getErr(HRESULT err, UErrorCode& status){
|
| -
|
| - switch (err){
|
| -
|
| - case S_OK:
|
| - //printf("Operation %s successful\n",operation);
|
| - break;
|
| - case S_FALSE:
|
| - status = U_INTERNAL_PROGRAM_ERROR;
|
| - break;
|
| - case E_FAIL:
|
| - status = U_ILLEGAL_CHAR_FOUND;
|
| - }
|
| -}
|
| -class WinIMultiLanguageToUnicodePerfFunction : public UPerfFunction{
|
| -
|
| -private:
|
| - LPMULTILANGUAGE2 pMulti;
|
| - LPMLANGCONVERTCHARSET pConvToUni;
|
| - char* src;
|
| - UINT srcLen;
|
| - WCHAR dst[MAX_BUF_SIZE];
|
| - UINT dstLen;
|
| - const char* cpName;
|
| -
|
| -public:
|
| - WinIMultiLanguageToUnicodePerfFunction(const char* name,char* source, UINT sourceLen, UErrorCode& status){
|
| -
|
| - CoInitialize(NULL);
|
| -
|
| - /* create instance of converter object*/
|
| - CoCreateInstance(
|
| - __uuidof(CMultiLanguage),
|
| - NULL,
|
| - CLSCTX_SERVER,
|
| - __uuidof(IMultiLanguage2),
|
| - (void**)&pMulti
|
| - );
|
| -
|
| -
|
| -
|
| - MIMECSETINFO mimeInfo;
|
| - mimeInfo.uiCodePage = 0;
|
| - mimeInfo.uiInternetEncoding =0;
|
| - HRESULT err=S_OK;
|
| - unsigned short bEnc[30]={'\0'};
|
| - const char* tenc=name;
|
| - for(int i=0;*tenc!='\0';i++){
|
| - bEnc[i]=*tenc;
|
| - tenc++;
|
| - }
|
| - /* get the charset info */
|
| - pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo);
|
| - pMulti->CreateConvertCharset(mimeInfo.uiCodePage, 1200 /*unicode*/, (DWORD)0,&pConvToUni);
|
| - getErr(err,status);
|
| - src = source;
|
| - srcLen = sourceLen;
|
| - dstLen = UPRV_LENGTHOF(dst);
|
| - cpName = name;
|
| - }
|
| -
|
| - virtual void call(UErrorCode* status){
|
| - HRESULT err= pConvToUni->DoConversionToUnicode(src,&srcLen,dst, &dstLen);
|
| - getErr(err,*status);
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return srcLen;
|
| - }
|
| -};
|
| -
|
| -class WinIMultiLanguageFromUnicodePerfFunction : public UPerfFunction{
|
| -
|
| -private:
|
| - LPMULTILANGUAGE2 pMulti;
|
| - LPMLANGCONVERTCHARSET pConvFromUni;
|
| - WCHAR* src;
|
| - UINT srcLen;
|
| - char dst[MAX_BUF_SIZE];
|
| - UINT dstLen;
|
| - const char* cpName;
|
| -
|
| -public:
|
| - WinIMultiLanguageFromUnicodePerfFunction(const char* name,WCHAR* source, UINT sourceLen, UErrorCode& status){
|
| -
|
| - CoInitialize(NULL);
|
| -
|
| - /* create instance of converter object*/
|
| - CoCreateInstance(
|
| - __uuidof(CMultiLanguage),
|
| - NULL,
|
| - CLSCTX_SERVER,
|
| - __uuidof(IMultiLanguage2),
|
| - (void**)&pMulti
|
| - );
|
| -
|
| -
|
| -
|
| - MIMECSETINFO mimeInfo;
|
| - mimeInfo.uiCodePage = 0;
|
| - mimeInfo.uiInternetEncoding =0;
|
| - HRESULT err=S_OK;
|
| - unsigned short bEnc[30]={'\0'};
|
| - const char* tenc=name;
|
| - for(int i=0;*tenc!='\0';i++){
|
| - bEnc[i]=*tenc;
|
| - tenc++;
|
| - }
|
| - /* get the charset info */
|
| - pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo);
|
| - pMulti->CreateConvertCharset(1200 /*unicode*/, mimeInfo.uiCodePage, (DWORD)0,&pConvFromUni);
|
| - getErr(err,status);
|
| - src = source;
|
| - srcLen = sourceLen;
|
| - dstLen = UPRV_LENGTHOF(dst);
|
| - cpName = name;
|
| -
|
| - }
|
| -
|
| - virtual void call(UErrorCode* status){
|
| - HRESULT err= pConvFromUni->DoConversionFromUnicode(src,&srcLen,dst, &dstLen);
|
| - getErr(err,*status);
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return srcLen;
|
| - }
|
| -};
|
| -
|
| -class WinIMultiLanguage2ToUnicodePerfFunction : public UPerfFunction{
|
| -
|
| -private:
|
| - LPMULTILANGUAGE2 pMulti;
|
| - char* src;
|
| - UINT srcLen;
|
| - WCHAR dst[MAX_BUF_SIZE];
|
| - UINT dstLen;
|
| - const char* cpName;
|
| - DWORD dwEnc;
|
| -public:
|
| - WinIMultiLanguage2ToUnicodePerfFunction(const char* name,char* source, UINT sourceLen, UErrorCode& status){
|
| -
|
| - CoInitialize(NULL);
|
| -
|
| - /* create instance of converter object*/
|
| - CoCreateInstance(
|
| - __uuidof(CMultiLanguage),
|
| - NULL,
|
| - CLSCTX_SERVER,
|
| - __uuidof(IMultiLanguage2),
|
| - (void**)&pMulti
|
| - );
|
| -
|
| - src = source;
|
| - srcLen = sourceLen;
|
| - dstLen = UPRV_LENGTHOF(dst);
|
| - cpName = name;
|
| - unsigned short bEnc[30]={'\0'};
|
| - const char* tenc=name;
|
| - for(int i=0;*tenc!='\0';i++){
|
| - bEnc[i]=*tenc;
|
| - tenc++;
|
| - }
|
| - /* get the charset info */
|
| - MIMECSETINFO mimeInfo;
|
| - mimeInfo.uiCodePage = 0;
|
| - mimeInfo.uiInternetEncoding =0;
|
| - pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo);
|
| - dwEnc = (mimeInfo.uiInternetEncoding==0)?mimeInfo.uiCodePage:mimeInfo.uiInternetEncoding;
|
| - }
|
| -
|
| - virtual void call(UErrorCode* status){
|
| - DWORD dwMode=0;
|
| - HRESULT err= pMulti->ConvertStringToUnicode(&dwMode,dwEnc,(char*)src,&srcLen,dst, &dstLen);
|
| - getErr(err,*status);
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return srcLen;
|
| - }
|
| -};
|
| -
|
| -class WinIMultiLanguage2FromUnicodePerfFunction : public UPerfFunction{
|
| -
|
| -private:
|
| - LPMULTILANGUAGE2 pMulti;
|
| - LPMLANGCONVERTCHARSET pConvFromUni;
|
| - WCHAR* src;
|
| - UINT srcLen;
|
| - char dst[MAX_BUF_SIZE];
|
| - UINT dstLen;
|
| - const char* cpName;
|
| - DWORD dwEnc;
|
| -
|
| -public:
|
| - WinIMultiLanguage2FromUnicodePerfFunction(const char* name,WCHAR* source, UINT sourceLen, UErrorCode& status){
|
| -
|
| - CoInitialize(NULL);
|
| -
|
| - /* create instance of converter object*/
|
| - CoCreateInstance(
|
| - __uuidof(CMultiLanguage),
|
| - NULL,
|
| - CLSCTX_SERVER,
|
| - __uuidof(IMultiLanguage2),
|
| - (void**)&pMulti
|
| - );
|
| -
|
| -
|
| - unsigned short bEnc[30]={'\0'};
|
| - const char* tenc=name;
|
| - for(int i=0;*tenc!='\0';i++){
|
| - bEnc[i]=*tenc;
|
| - tenc++;
|
| - }
|
| - src = source;
|
| - srcLen = sourceLen;
|
| - dstLen = UPRV_LENGTHOF(dst);
|
| - cpName = name;
|
| - /* get the charset info */
|
| - MIMECSETINFO mimeInfo;
|
| - mimeInfo.uiCodePage = 0;
|
| - mimeInfo.uiInternetEncoding =0;
|
| -
|
| - pMulti->GetCharsetInfo((wchar_t *)bEnc,&mimeInfo);
|
| - dwEnc = (mimeInfo.uiInternetEncoding==0)?mimeInfo.uiCodePage:mimeInfo.uiInternetEncoding;
|
| - }
|
| -
|
| - virtual void call(UErrorCode* status){
|
| - DWORD dwMode=0;
|
| - HRESULT err= pMulti->ConvertStringFromUnicode(&dwMode,dwEnc,src,&srcLen,dst, &dstLen);
|
| - getErr(err,*status);
|
| - }
|
| - virtual long getOperationsPerIteration(void){
|
| - return srcLen;
|
| - }
|
| -};
|
| -
|
| -class ConverterPerformanceTest : public UPerfTest{
|
| -
|
| -public:
|
| -
|
| - ConverterPerformanceTest(int32_t argc, const char* argv[], UErrorCode& status);
|
| - ~ConverterPerformanceTest();
|
| - virtual UPerfFunction* runIndexedTest(int32_t index, UBool exec,const char* &name, char* par = NULL);
|
| -
|
| - UPerfFunction* TestICU_CleanOpenAllConverters();
|
| - UPerfFunction* TestICU_OpenAllConverters();
|
| -
|
| - UPerfFunction* TestICU_UTF8_ToUnicode();
|
| - UPerfFunction* TestICU_UTF8_FromUnicode();
|
| - UPerfFunction* TestWinANSI_UTF8_ToUnicode();
|
| - UPerfFunction* TestWinANSI_UTF8_FromUnicode();
|
| - UPerfFunction* TestWinIML2_UTF8_ToUnicode();
|
| - UPerfFunction* TestWinIML2_UTF8_FromUnicode();
|
| -
|
| - UPerfFunction* TestICU_Latin1_ToUnicode();
|
| - UPerfFunction* TestICU_Latin1_FromUnicode();
|
| - UPerfFunction* TestWinANSI_Latin1_ToUnicode();
|
| - UPerfFunction* TestWinANSI_Latin1_FromUnicode();
|
| - UPerfFunction* TestWinIML2_Latin1_ToUnicode();
|
| - UPerfFunction* TestWinIML2_Latin1_FromUnicode();
|
| -
|
| - UPerfFunction* TestICU_EBCDIC_Arabic_ToUnicode();
|
| - UPerfFunction* TestICU_EBCDIC_Arabic_FromUnicode();
|
| - UPerfFunction* TestWinANSI_EBCDIC_Arabic_ToUnicode();
|
| - UPerfFunction* TestWinANSI_EBCDIC_Arabic_FromUnicode();
|
| - UPerfFunction* TestWinIML2_EBCDIC_Arabic_ToUnicode();
|
| - UPerfFunction* TestWinIML2_EBCDIC_Arabic_FromUnicode();
|
| -
|
| - UPerfFunction* TestICU_Latin8_ToUnicode();
|
| - UPerfFunction* TestICU_Latin8_FromUnicode();
|
| - UPerfFunction* TestWinANSI_Latin8_ToUnicode();
|
| - UPerfFunction* TestWinANSI_Latin8_FromUnicode();
|
| - UPerfFunction* TestWinIML2_Latin8_ToUnicode();
|
| - UPerfFunction* TestWinIML2_Latin8_FromUnicode();
|
| -
|
| -
|
| - UPerfFunction* TestICU_SJIS_ToUnicode();
|
| - UPerfFunction* TestICU_SJIS_FromUnicode();
|
| - UPerfFunction* TestWinANSI_SJIS_ToUnicode();
|
| - UPerfFunction* TestWinANSI_SJIS_FromUnicode();
|
| - UPerfFunction* TestWinIML2_SJIS_ToUnicode();
|
| - UPerfFunction* TestWinIML2_SJIS_FromUnicode();
|
| -
|
| - UPerfFunction* TestICU_EUCJP_ToUnicode();
|
| - UPerfFunction* TestICU_EUCJP_FromUnicode();
|
| - UPerfFunction* TestWinANSI_EUCJP_ToUnicode();
|
| - UPerfFunction* TestWinANSI_EUCJP_FromUnicode();
|
| - UPerfFunction* TestWinIML2_EUCJP_ToUnicode();
|
| - UPerfFunction* TestWinIML2_EUCJP_FromUnicode();
|
| -
|
| - UPerfFunction* TestICU_GB2312_ToUnicode();
|
| - UPerfFunction* TestICU_GB2312_FromUnicode();
|
| - UPerfFunction* TestWinANSI_GB2312_ToUnicode();
|
| - UPerfFunction* TestWinANSI_GB2312_FromUnicode();
|
| - UPerfFunction* TestWinIML2_GB2312_ToUnicode();
|
| - UPerfFunction* TestWinIML2_GB2312_FromUnicode();
|
| -
|
| -
|
| - UPerfFunction* TestICU_ISO2022KR_ToUnicode();
|
| - UPerfFunction* TestICU_ISO2022KR_FromUnicode();
|
| - UPerfFunction* TestWinANSI_ISO2022KR_ToUnicode();
|
| - UPerfFunction* TestWinANSI_ISO2022KR_FromUnicode();
|
| - UPerfFunction* TestWinIML2_ISO2022KR_ToUnicode();
|
| - UPerfFunction* TestWinIML2_ISO2022KR_FromUnicode();
|
| -
|
| - UPerfFunction* TestICU_ISO2022JP_ToUnicode();
|
| - UPerfFunction* TestICU_ISO2022JP_FromUnicode();
|
| - UPerfFunction* TestWinANSI_ISO2022JP_ToUnicode();
|
| - UPerfFunction* TestWinANSI_ISO2022JP_FromUnicode();
|
| - UPerfFunction* TestWinIML2_ISO2022JP_ToUnicode();
|
| - UPerfFunction* TestWinIML2_ISO2022JP_FromUnicode();
|
| -
|
| -};
|
| -
|
| -#endif
|
| -
|
|
|