亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iconvgnutransservice.cpp

?? IBM的解析xml的工具Xerces的源代碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
    }    return toReturn;}size_t    IconvGNUWrapper::iconvFrom ( const char    *fromPtr,                 size_t        *fromLen,                 char        **toPtr,                 size_t        toLen ) const{    ICONV_LOCK;    char ** tmpPtr = (char**)&fromPtr;    return ::iconv (fCDFrom, tmpPtr, fromLen, toPtr, &toLen);}size_t    IconvGNUWrapper::iconvTo ( const char    *fromPtr,                   size_t        *fromLen,                   char        **toPtr,                   size_t        toLen ) const{    ICONV_LOCK;    char ** tmpPtr = (char**)&fromPtr;    return ::iconv (fCDTo, tmpPtr, fromLen, toPtr, &toLen);}// ---------------------------------------------------------------------------//  IconvGNUTransService: Constructors and Destructor// ---------------------------------------------------------------------------void reinitIconvGNUMutex(){    delete gIconvMutex;    gIconvMutex = 0;}IconvGNUTransService::IconvGNUTransService()    : IconvGNUWrapper(), fUnicodeCP(0){#if !defined(APP_NO_THREADS)    // Create global lock object    if (gIconvMutex == NULL) {        gIconvMutex = new XMLMutex;        if (gIconvMutex == NULL)            XMLPlatformUtils::panic (PanicHandler::Panic_NoTransService);        IconvGNUMutexCleanup.registerCleanup(reinitIconvGNUMutex);    }#endif    // Try to obtain local (host) characterset through the environment    char*    fLocalCP = setlocale (LC_CTYPE, "");    if (fLocalCP == NULL)        fLocalCP = "iso-8859-1";    // fallback locale    else {        char    *ptr = strchr (fLocalCP, '.');        if (ptr == NULL)            fLocalCP = "iso-8859-1";    // fallback locale        else            fLocalCP = ptr + 1;    }    // Select the native unicode characters encoding schema    const IconvGNUEncoding    *eptr;    // first - try to use the schema with character size, equil to XMLCh    for (eptr = gIconvGNUEncodings; eptr->fSchema; eptr++) {        if (eptr->fUChSize != sizeof(XMLCh))            continue;        ICONV_LOCK;        // try to create conversion descriptor        iconv_t    cd_to = iconv_open(fLocalCP, eptr->fSchema);        if (cd_to == (iconv_t)-1)            continue;        iconv_t    cd_from = iconv_open(eptr->fSchema, fLocalCP);        if (cd_to == (iconv_t)-1) {            iconv_close (cd_to);            continue;        }        // got it        setUChSize(eptr->fUChSize);        setUBO(eptr->fUBO);        setCDTo(cd_to);        setCDFrom(cd_from);        fUnicodeCP = eptr->fSchema;        break;    }    if (fUnicodeCP == NULL)        // try to use any known schema        for (eptr = gIconvGNUEncodings; eptr->fSchema; eptr++) {            // try to create conversion descriptor            ICONV_LOCK;            iconv_t    cd_to = iconv_open(fLocalCP, eptr->fSchema);            if (cd_to == (iconv_t)-1)                continue;            iconv_t    cd_from = iconv_open(eptr->fSchema, fLocalCP);            if (cd_to == (iconv_t)-1) {                iconv_close (cd_to);                continue;            }            // got it            setUChSize(eptr->fUChSize);            setUBO(eptr->fUBO);            setCDTo(cd_to);            setCDFrom(cd_from);            fUnicodeCP = eptr->fSchema;            break;        }    if (fUnicodeCP == NULL || cdTo() == (iconv_t)-1 || cdFrom() == (iconv_t)-1)        XMLPlatformUtils::panic (PanicHandler::Panic_NoTransService);}IconvGNUTransService::~IconvGNUTransService(){    if (cdTo() != (iconv_t) -1) {        iconv_close (cdTo());        setCDTo ((iconv_t)-1);    }    if (cdFrom() != (iconv_t) -1) {        iconv_close (cdFrom());        setCDFrom ((iconv_t)-1);    }}// ---------------------------------------------------------------------------//  IconvGNUTransService: The virtual transcoding service API// ---------------------------------------------------------------------------int IconvGNUTransService::compareIString(const XMLCh* const    comp1                                        , const XMLCh* const    comp2){    const XMLCh* cptr1 = comp1;    const XMLCh* cptr2 = comp2;    XMLCh    c1 = toUpper(*cptr1);    XMLCh    c2 = toUpper(*cptr2);    while ( (*cptr1 != 0) && (*cptr2 != 0) ) {        if (c1 != c2)            break;        c1 = toUpper(*(++cptr1));        c2 = toUpper(*(++cptr2));    }    return (int) ( c1 - c2 );}int IconvGNUTransService::compareNIString(const XMLCh* const    comp1                                         , const XMLCh* const    comp2                                         , const unsigned int    maxChars){    unsigned int  n = 0;    const XMLCh* cptr1 = comp1;    const XMLCh* cptr2 = comp2;    while (true && maxChars)    {        XMLCh    c1 = toUpper(*cptr1);        XMLCh    c2 = toUpper(*cptr2);        if (c1 != c2)            return (int) (c1 - c2);        // If either ended, then both ended, so equal        if (!*cptr1 || !*cptr2)            break;        cptr1++;        cptr2++;        //  Bump the count of chars done. If it equals the count then we        //  are equal for the requested count, so break out and return        //  equal.        n++;        if (n == maxChars)            break;    }    return 0;}const XMLCh* IconvGNUTransService::getId() const{    return gMyServiceId;}bool IconvGNUTransService::isSpace(const XMLCh toCheck) const{    return IconvGNUWrapper::isSpace(toCheck);}XMLLCPTranscoder* IconvGNUTransService::makeNewLCPTranscoder(){    return new IconvGNULCPTranscoder (cdFrom(), cdTo(), uChSize(), UBO());}bool IconvGNUTransService::supportsSrcOfs() const{    return true;}// ---------------------------------------------------------------------------//  IconvGNUTransService: The protected virtual transcoding service API// ---------------------------------------------------------------------------XMLTranscoder*IconvGNUTransService::makeNewXMLTranscoder(    const    XMLCh* const    encodingName    ,    XMLTransService::Codes&    resValue    , const    unsigned int    blockSize    ,        MemoryManager* const    manager){    resValue = XMLTransService::UnsupportedEncoding;    IconvGNUTranscoder    *newTranscoder = NULL;    char    *encLocal = XMLString::transcode(encodingName, manager);    iconv_t    cd_from, cd_to;    {        ICONV_LOCK;        cd_from = iconv_open (fUnicodeCP, encLocal);        if (cd_from == (iconv_t)-1) {            resValue = XMLTransService::SupportFilesNotFound;            if (encLocal)                manager->deallocate(encLocal);//delete [] encLocal;            return NULL;        }        cd_to = iconv_open (encLocal, fUnicodeCP);        if (cd_to == (iconv_t)-1) {            resValue = XMLTransService::SupportFilesNotFound;            iconv_close (cd_from);            if (encLocal)                manager->deallocate(encLocal);//delete [] encLocal;            return NULL;        }        newTranscoder = new (manager) IconvGNUTranscoder (encodingName,                             blockSize,                             cd_from, cd_to,                             uChSize(), UBO(), manager);    }    if (newTranscoder)        resValue = XMLTransService::Ok;    if (encLocal)        manager->deallocate(encLocal);//delete [] encLocal;    return newTranscoder;}void IconvGNUTransService::upperCase(XMLCh* const toUpperCase) const{    XMLCh* outPtr = toUpperCase;    while (*outPtr)    {        *outPtr = toUpper(*outPtr);        outPtr++;    }}void IconvGNUTransService::lowerCase(XMLCh* const toLowerCase) const{    XMLCh* outPtr = toLowerCase;    while (*outPtr)    {        *outPtr = toLower(*outPtr);        outPtr++;    }}// ---------------------------------------------------------------------------//  IconvGNULCPTranscoder: The virtual transcoder API// ---------------------------------------------------------------------------unsigned intIconvGNULCPTranscoder::calcRequiredSize (const char* const srcText                                         , MemoryManager* const manager){    if (!srcText)        return 0;    size_t      len, srcLen;    len = srcLen = strlen(srcText);    if (len == 0)        return 0;    char    tmpWideArr[gTempBuffArraySize];    size_t    totalLen = 0;    for (;;) {        char        *pTmpArr = tmpWideArr;        const char    *ptr = srcText + srcLen - len;        size_t    rc = iconvFrom(ptr, &len, &pTmpArr, gTempBuffArraySize);        if (rc == (size_t) -1 && errno != E2BIG) {            ThrowXMLwithMemMgr(TranscodingException, XMLExcepts::Trans_BadSrcSeq, manager);            /* return 0; */        }        rc = pTmpArr - (char *) tmpWideArr;        totalLen += rc;        if (rc == 0 || len == 0)            break;    }    return totalLen / uChSize();}unsigned intIconvGNULCPTranscoder::calcRequiredSize(const XMLCh* const srcText                                        , MemoryManager* const manager){    if (!srcText)        return 0;    unsigned int  wLent = getWideCharLength(srcText);    if (wLent == 0)        return 0;    char    tmpWBuff[gTempBuffArraySize];    char    *wBuf = 0;    char    *wBufPtr = 0;    size_t      len = wLent * uChSize();    if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER) {        if (len > gTempBuffArraySize) {            wBufPtr = (char*) manager->allocate            (                len * sizeof(char)            );//new char[len];            if (wBufPtr == NULL)            return 0;            wBuf = wBufPtr;        } else            wBuf = tmpWBuff;        xmlToMbs (srcText, wLent, wBuf, wLent);    } else        wBuf = (char *) srcText;    char    tmpBuff[gTempBuffArraySize];    size_t    totalLen = 0;    char    *srcEnd = wBuf + wLent * uChSize();    for (;;) {        char        *pTmpArr = tmpBuff;        const char    *ptr = srcEnd - len;        size_t    rc = iconvTo(ptr, &len, &pTmpArr, gTempBuffArraySize);        if (rc == (size_t) -1 && errno != E2BIG) {            if (wBufPtr)                manager->deallocate(wBufPtr);//delete [] wBufPtr;            ThrowXMLwithMemMgr(TranscodingException, XMLExcepts::Trans_BadSrcSeq, manager);            /* return 0; */        }        rc = pTmpArr - tmpBuff;        totalLen += rc;        if (rc == 0 || len == 0)            break;    }    if (wBufPtr)        manager->deallocate(wBufPtr);//delete [] wBufPtr;    return totalLen;}char* IconvGNULCPTranscoder::transcode(const XMLCh* const toTranscode){    if (!toTranscode)        return 0;    char* retVal = 0;    if (*toTranscode) {        unsigned int  wLent = getWideCharLength(toTranscode);        // Calc needed size.        const size_t neededLen = calcRequiredSize (toTranscode);        if (neededLen == 0)            return 0;        // allocate output buffer        retVal = new char[neededLen + 1];        if (retVal == NULL)            return 0;        // prepare the original        char    tmpWBuff[gTempBuffArraySize];        char    *wideCharBuf = 0;        char    *wBufPtr = 0;        size_t  len = wLent * uChSize();        if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER) {            if (len > gTempBuffArraySize) {                wBufPtr = new char[len];                if (wBufPtr == NULL)                    return 0;                wideCharBuf = wBufPtr;            } else                wideCharBuf = tmpWBuff;            xmlToMbs (toTranscode, wLent, wideCharBuf, wLent);        } else            wideCharBuf = (char *) toTranscode;        // perform conversion        wLent *= uChSize();        char    *ptr = retVal;        size_t    rc = iconvTo(wideCharBuf, (size_t *) &wLent, &ptr, neededLen);        if (rc == (size_t)-1) {            if (wBufPtr)            delete [] wBufPtr;            return 0;        }        if (wBufPtr)            delete [] wBufPtr;        retVal[neededLen] = 0;    } else {        retVal = new char[1];        if (retVal == NULL)            return 0;        retVal[0] = 0;    }    return retVal;}char* IconvGNULCPTranscoder::transcode(const XMLCh* const toTranscode,                                       MemoryManager* const manager){    if (!toTranscode)        return 0;    char* retVal = 0;    if (*toTranscode) {        unsigned int  wLent = getWideCharLength(toTranscode);        // Calc needed size.        const size_t neededLen = calcRequiredSize (toTranscode, manager);        if (neededLen == 0)            return 0;        // allocate output buffer        retVal = (char*) manager->allocate((neededLen + 1) * sizeof(char));//new char[neededLen + 1];        if (retVal == NULL)            return 0;        // prepare the original        char    tmpWBuff[gTempBuffArraySize];        char    *wideCharBuf = 0;        char    *wBufPtr = 0;        size_t  len = wLent * uChSize();        if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER) {            if (len > gTempBuffArraySize) {                wBufPtr = (char*) manager->allocate(len * sizeof(char));//new char[len];                if (wBufPtr == NULL)                    return 0;                wideCharBuf = wBufPtr;            } else                wideCharBuf = tmpWBuff;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞电影网一区二区| 韩国av一区二区三区在线观看| 亚洲第一主播视频| 狠狠色综合日日| 色噜噜狠狠色综合中国| 日韩欧美美女一区二区三区| 欧美国产精品一区二区| 五月天国产精品| 91一区在线观看| 精品粉嫩超白一线天av| 亚洲国产欧美日韩另类综合| 高清不卡在线观看av| 日韩欧美的一区| 亚洲成av人在线观看| 成人网男人的天堂| 日韩美女在线视频| 亚洲成av人影院在线观看网| 成人av网站大全| 久久美女艺术照精彩视频福利播放| 亚洲午夜久久久久久久久电影网| 丁香五精品蜜臀久久久久99网站| 日韩一区二区三区在线观看| 亚洲色图色小说| 成人免费看视频| 久久嫩草精品久久久精品一| 天天操天天色综合| 91福利小视频| 亚洲日本va在线观看| 成人av在线一区二区三区| 精品久久久久久久久久久久久久久 | 国产亚洲欧洲997久久综合 | 欧美日韩高清一区二区不卡 | 午夜精品久久久久久久| 日韩限制级电影在线观看| 亚洲无人区一区| 在线观看精品一区| 一区二区三区免费观看| 91免费看`日韩一区二区| 中文字幕一区二区三中文字幕| 国产成人av影院| 国产午夜精品久久| 99久久精品免费| 亚洲另类在线制服丝袜| 在线视频一区二区免费| 亚洲综合在线视频| 欧美日韩1234| 全国精品久久少妇| 精品少妇一区二区三区免费观看| 精彩视频一区二区| 国产亚洲综合色| 99视频国产精品| 樱花影视一区二区| 91精品欧美福利在线观看| 视频一区欧美日韩| 久久亚洲影视婷婷| bt7086福利一区国产| 日韩理论片中文av| 欧美嫩在线观看| 国内精品写真在线观看| 国产欧美一区二区精品忘忧草| 成人丝袜高跟foot| 午夜精品久久久久久久蜜桃app | 日产欧产美韩系列久久99| 欧美一级搡bbbb搡bbbb| 国产一区二区三区精品视频| 欧美国产禁国产网站cc| 色一情一乱一乱一91av| 久久精品国产99国产精品| 国产欧美日韩中文久久| 色吊一区二区三区| 精品一区二区三区视频在线观看 | 欧美日本乱大交xxxxx| 日韩中文欧美在线| 久久综合久久久久88| 久久精品在线免费观看| 成人a免费在线看| 人人爽香蕉精品| 中文字幕va一区二区三区| 欧美一a一片一级一片| 精品综合免费视频观看| 亚洲乱码国产乱码精品精小说 | 日韩欧美高清dvd碟片| 国产精一区二区三区| 一区二区三区中文字幕精品精品| 日韩欧美不卡在线观看视频| 99re亚洲国产精品| 蜜桃在线一区二区三区| 成人欧美一区二区三区白人| 欧美区一区二区三区| 丁香激情综合国产| 蜜臀久久99精品久久久画质超高清 | 久久电影网电视剧免费观看| 亚洲视频一区二区免费在线观看| 日韩视频在线你懂得| 91黄色小视频| 成人午夜大片免费观看| 精品制服美女丁香| 日韩激情一区二区| 一区二区激情小说| 国产精品久久久久aaaa| 日韩欧美国产午夜精品| 欧美三级三级三级爽爽爽| 懂色av中文一区二区三区| 久久99久久99| 日韩成人一级大片| 亚洲成人第一页| 亚洲夂夂婷婷色拍ww47| 欧美激情在线观看视频免费| 日韩视频一区在线观看| 欧美精品少妇一区二区三区| 91天堂素人约啪| 国产91精品一区二区| 国产真实乱对白精彩久久| 精品一区二区av| 日韩影院免费视频| 亚洲18影院在线观看| 亚洲午夜激情av| 亚洲丰满少妇videoshd| 亚洲成人www| 男女激情视频一区| 美女在线观看视频一区二区| 亚洲国产成人91porn| 亚洲一区二区三区中文字幕在线| 玉足女爽爽91| 亚洲成a人v欧美综合天堂下载 | 在线观看成人免费视频| 91色.com| 在线观看一区二区视频| 欧美日韩在线三区| 欧美一区二区视频在线观看2020 | 一区二区三区中文字幕精品精品| 亚洲乱码国产乱码精品精小说 | 欧美卡1卡2卡| 日韩视频123| 精品粉嫩超白一线天av| 国产亚洲精品精华液| 亚洲欧洲色图综合| 亚洲第一av色| 麻豆国产欧美日韩综合精品二区| 精油按摩中文字幕久久| 国产成人无遮挡在线视频| 波多野结衣亚洲| 欧美日韩精品三区| 久久免费国产精品| 亚洲黄色片在线观看| 蜜桃精品在线观看| 成人免费视频视频在线观看免费| 色爱区综合激月婷婷| 欧美一级久久久久久久大片| 欧美精品一区二区三区高清aⅴ | 777欧美精品| 久久久久久久国产精品影院| 亚洲欧洲精品一区二区三区| 亚洲国产日日夜夜| 欧美mv日韩mv国产网站| 日本视频一区二区| 成人午夜视频在线观看| 亚洲一区二区三区三| 亚洲一区二区三区精品在线| 免费成人你懂的| 成人av手机在线观看| 欧美日韩在线播| 欧美激情中文字幕一区二区| 国产一区二区看久久| 99国产精品国产精品毛片| 欧美日本一区二区三区| 国产精品美女久久久久久久久久久 | 国产一区二区三区免费看| 色综合久久久久久久| 欧美大度的电影原声| 亚洲婷婷综合久久一本伊一区| 美国三级日本三级久久99| 一本色道久久加勒比精品| 精品电影一区二区| 午夜精品福利在线| av在线不卡电影| 精品国产精品网麻豆系列| 伊人婷婷欧美激情| 高清在线成人网| 精品国产伦理网| 首页国产欧美日韩丝袜| 99国产精品久久久久久久久久久| 精品精品欲导航| 亚洲国产精品自拍| 99国产精品久| 国产精品国产自产拍高清av | 99久久99久久免费精品蜜臀| 日韩视频免费观看高清完整版在线观看| 亚洲欧美日韩成人高清在线一区| 国产一区二区三区四区在线观看| 欧美精品成人一区二区三区四区| 18成人在线观看| 成人妖精视频yjsp地址| 精品国产成人系列| 免费一级欧美片在线观看| 欧美日本在线观看| 日本欧美久久久久免费播放网| 欧美亚洲图片小说| 亚洲综合在线视频| 在线观看www91|