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

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

?? fileclient2server.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

    readByteFromFile(filename, ptrFileContent, &numBytes);

    if (numBytes != (int)sizeFile) {
        LOG.error("The number of byte read and size are different");
        goto finally;
    }

    encodeLen = lengthForB64(numBytes);
    base64 = new char[encodeLen + 1];

    if (base64 == NULL) {
        LOG.error("not enough memory to instantiate array...");
    }

    memset(base64, 0, encodeLen + 1);

    b64_encode(base64, ptrFileContent, numBytes);

finally:

    if (ptrFileContent != NULL)
        delete ptrFileContent; ptrFileContent = NULL;

    return base64;
}

*/

/*
* Method to understand if file are new, deleted or updated.
*/

void setModifiedItemsFILE(Container* c, int dataType, const wchar_t* path, const wchar_t* dir) {

    LOG.debug("Enter in setModifiedItemsFILE... ");

    wchar_t   localTemp     [DIM_LOCAL_TEMP];
    wchar_t   internalPath  [DIM_LOCAL_TEMP];
    wchar_t   filterPattern [DIM_LOCAL_TEMP];
    wchar_t   wtime         [DIM_LOCAL_TEMP];

    localTemp[0]        = 0;
    internalPath[0]     = 0;
    wtime[0]            = 0;
    filterPattern[0]    = 0;

    wchar_t** ptrFilenameInDir      = NULL;
    wchar_t*  ptrFileContent        = NULL;
    char* fileContent               = NULL;
    wchar_t** ptrFilenameFromFile   = NULL;
    char* pp = NULL;

    SyncItem* syncItem = NULL;

    int numBytes            = 0;
    int countFileInDir      = 0;
    int countFileInFile     = 0;
    int countNewItems       = 0;
    int countUpdatedItems   = 0;
    int countDeletedItems   = 0;

    int j                   = 1;
    int i                   = 0;
    unsigned long sizeFile  = 0;
    DATE dtime              = 0.0;
    DATE timeInFile         = 0.0;

    BOOL found = FALSE;
    BOOL recursiveInDirectory = FALSE;

    filterPattern[0] = 0;

    wstring key_s;

    if (dataType == constFiles)
        wsprintf(internalPath, TEXT("%s%s"), dir, TEXT("\\"));
    else if (dataType == constNotes) {
        wsprintf(internalPath, TEXT("%s%s"), dir, TEXT("\\"));
        wcscpy(filterPattern, PWI_EXTENSION_PATTERN);
    }
    else if (dataType == constFavorites) {
        SHGetSpecialFolderPath(NULL, internalPath, CSIDL_FAVORITES, FALSE);
        wcscat(internalPath, TEXT("\\"));
        recursiveInDirectory = TRUE;
    }
    /*
    * It avoids to send object greater then MaxObjSize.
    * In next releases it must me inserted into the
    * source.
    */

    //ClientSettings cs(APPLICATION_URI);
    //cs.readConfig();
    int fileRemoved = 0;

    // to retrieve num of files in directory
    getFileList(internalPath, ptrFilenameInDir, &countFileInDir, TRUE, recursiveInDirectory, filterPattern);
    ptrFilenameInDir = new wchar_t*[countFileInDir];

    // to retrieve fileName
    getFileList(internalPath, ptrFilenameInDir, &countFileInDir, FALSE, recursiveInDirectory, filterPattern);

    // to retrieve num of files in files.dat/notes.dat
    countFileInFile = readFilenameFromFile(dataType, path, &ptrFilenameFromFile);

    // if there is no backup file...
    if (!ptrFilenameFromFile)
        return;


    // first element in file is timestamp
    timeInFile = wcstod(ptrFilenameFromFile[0], NULL);

    //
    // to get the new or update items that are files
    //

    for (i = 0; i < countFileInDir; i++) {

        found = FALSE;

        for (j = 1; j <= countFileInFile; j++) {

            if (wcscmp(ptrFilenameInDir[i], ptrFilenameFromFile[j]) == 0) {

                found = TRUE;
                getLastWriteTime(ptrFilenameInDir[i], wtime, &dtime);

                if (dtime > timeInFile) {

                    if (dataType == constFiles) {
                        unsigned long sizeFile = 0;
                        getFileSize(ptrFilenameInDir[i], &sizeFile);
                        if (sizeFile == 0)
                            return;
                        if (sizeFile > getMaxObjectSizeToSend()) {
                            LOG.debug("Found file greater then maxObjectSize(%lu): sizefile = %lu", getMaxObjectSizeToSend(), sizeFile);
                            fileRemoved++;
                            continue;
                        }
                        fileContent = new char[sizeFile];

                        readByteFromFile(ptrFilenameInDir[i], (byte*)fileContent, &numBytes);
                        // only file name without path. (e.g. example.bin)
                        FileData fileData;
                        getFileName(ptrFilenameInDir[i], localTemp);
                        fileData.setName(localTemp);
                        fileData.setSize(numBytes);
                        fileData.setEnc(TEXT("base64"));
                        fileData.setBody(fileContent, numBytes);
                        delete [] fileContent; fileContent = NULL;
                        fileContent = fileData.format();
                        numBytes = strlen(fileContent);

                    }
                    else if (dataType == constNotes) {

                        pp = readTextFromBinaryFileChar(ptrFilenameInDir[i]);
                        getFileName(ptrFilenameInDir[i], localTemp);
                        if (pp != NULL) {
                            wstring note = getXMLNote(pp, localTemp);
                            fileContent = toMultibyte((wchar_t*)note.data());
                            numBytes = strlen(fileContent);
                        }

                    }
                    else if (dataType == constFavorites) {
                        ptrFileContent = readTextFromBinaryFile(ptrFilenameInDir[i]);

                        if (ptrFileContent != NULL) {
                            fileContent = toMultibyte(ptrFileContent);
                            numBytes = strlen(fileContent);
                        }

                        wcscpy(localTemp, ptrFilenameInDir[i]);

                        wchar_t* t = wcsstr(ptrFilenameInDir[i], internalPath);
                        if (t != NULL) {
                            wsprintf(localTemp, t + wcslen(internalPath));
                        }
                        if (FILE_SYSTEM_SYNC_SOURCE == TRUE)
                            convertSlashAt(localTemp);

                    }

                    encodeKey (localTemp);
                    key_s = wstring(localTemp);
                    //encodeSpecialChar(key_s);

                    syncItem = new SyncItem((wchar_t*)key_s.data());

                    // without CDATA

                        if (fileContent == NULL) {
                        syncItem->setData("", 1*sizeof(char));
                    }
                    else {
                        syncItem->setData(fileContent, numBytes*sizeof(char));
                    }
                    countUpdatedItems++;

                    c->addItemToUpdatedItems(syncItem);

                    if (syncItem)
                        delete syncItem;
                    syncItem = NULL;

                    if (ptrFileContent != NULL)
                        delete [] ptrFileContent;
                    ptrFileContent = NULL;
                    if (fileContent != NULL)
                        delete [] fileContent;
                    fileContent = NULL;
                    pp = NULL;

                }
                else {

                }
                break;
            }

        }

        if (found == FALSE) {

            if (dataType == constFiles) {

                unsigned long sizeFile = 0;
                getFileSize(ptrFilenameInDir[i], &sizeFile);
                if (sizeFile == 0)
                    return;
                if (sizeFile > getMaxObjectSizeToSend()) {
                    LOG.debug("Found file greater then maxObjectSize(%lu): sizefile = %lu", getMaxObjectSizeToSend(), sizeFile);
                    fileRemoved++;
                    continue;
                }
                fileContent = new char[sizeFile];

                readByteFromFile(ptrFilenameInDir[i], (byte*)fileContent, &numBytes);
                //getFileName(ptrFilenameInDir[i], localTemp);
                FileData fileData;
                getFileName(ptrFilenameInDir[i], localTemp);
                fileData.setName(localTemp);
                fileData.setSize(numBytes);
                fileData.setEnc(TEXT("base64"));
                fileData.setBody(fileContent, numBytes);
                delete [] fileContent; fileContent = NULL;
                fileContent = fileData.format();
                numBytes = strlen(fileContent);
            }
            else if (dataType == constNotes) {

                pp = readTextFromBinaryFileChar(ptrFilenameInDir[i]);
                getFileName(ptrFilenameInDir[i], localTemp);
                if (pp != NULL) {
                    wstring note = getXMLNote(pp, localTemp);
                    fileContent = toMultibyte((wchar_t*)note.data());
                    numBytes = strlen(fileContent);
                }
            }
            else if (dataType == constFavorites) {
                ptrFileContent = readTextFromBinaryFile(ptrFilenameInDir[i]);

                if (ptrFileContent != NULL) {
                    fileContent = toMultibyte(ptrFileContent);
                    numBytes = strlen(fileContent);
                }

                wcscpy(localTemp, ptrFilenameInDir[i]);

                wchar_t* t = wcsstr(ptrFilenameInDir[i], internalPath);

                if (t != NULL) {
                     wsprintf(localTemp, t + wcslen(internalPath));
                }
                if (FILE_SYSTEM_SYNC_SOURCE == TRUE) {
                    convertSlashAt(localTemp);
                }

            }

            encodeKey (localTemp);
            key_s = wstring(localTemp);
            //encodeSpecialChar(key_s);

            syncItem = new SyncItem((wchar_t*)key_s.data());

            if (fileContent == NULL) {
                syncItem->setData("", 1*sizeof(char));
            }
            else {
                syncItem->setData(fileContent, numBytes*sizeof(char));
            }
            countNewItems++;

            c->addItemToNewItems(syncItem);

            if (syncItem)
                delete syncItem;
            syncItem = NULL;

            if (ptrFileContent != NULL)
                delete [] ptrFileContent;
            ptrFileContent = NULL;

            if (fileContent != NULL)
                delete [] fileContent;
            fileContent = NULL;
            pp = NULL;
        }

    }

    //
    // to get the delete items that are files
    //

    for (j = 1; j <= countFileInFile; j++) {

        found = FALSE;
        for (i = 0; i < countFileInDir; i++) {
            if (wcscmp( ptrFilenameFromFile[j], ptrFilenameInDir[i]) == 0) {
                found = TRUE;
            }
        }
        if (found == FALSE) {

            if (dataType == constFiles || dataType == constNotes) {
                getFileName(ptrFilenameFromFile[j], localTemp);
            }
            else if (dataType == constFavorites) {
                wcscpy(localTemp, ptrFilenameFromFile[j]);
                wchar_t* t = wcsstr(ptrFilenameFromFile[j], internalPath);
                if (t != NULL) {
                    wsprintf(localTemp, t + wcslen(internalPath));
                }
                if (FILE_SYSTEM_SYNC_SOURCE == TRUE)
                    convertSlashAt(localTemp);
            }

            encodeKey (localTemp);
            key_s = wstring(localTemp);
            //encodeSpecialChar(key_s);

            syncItem = new SyncItem((wchar_t*)key_s.data());

            c->addItemToDeletedItems(syncItem);

            if (syncItem)
                delete syncItem;
            syncItem = NULL;

            countDeletedItems++;

        }
    }

    // delete array and pointer...
    for (j = 0; j < countFileInDir; j++) {
        if (ptrFilenameInDir[j] != NULL)
            delete ptrFilenameInDir[j];
    }
    if (ptrFilenameInDir != NULL)
        delete [] ptrFilenameInDir;

    for (j = 0; j < countFileInFile; j++) {
        if (ptrFilenameFromFile[j] != NULL)
            delete ptrFilenameFromFile[j];
    }
    if (ptrFilenameFromFile != NULL)
        delete [] ptrFilenameFromFile;

    LOG.debug("Exiting from setModifiedItemsFILE... ");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品乱人伦久久久久久| www.欧美.com| 精品久久久久99| 经典一区二区三区| 久久久美女艺术照精彩视频福利播放| 加勒比av一区二区| 国产精品动漫网站| 在线观看日韩av先锋影音电影院| 亚洲国产精品欧美一二99| 欧美一区二区福利在线| 国产激情视频一区二区三区欧美 | 亚洲欧洲日韩女同| 91国偷自产一区二区三区观看| 亚洲aaa精品| 日韩精品中文字幕一区二区三区| 国产91精品一区二区麻豆网站| 亚洲色图制服诱惑| 日韩欧美在线影院| 成人永久aaa| 亚洲chinese男男1069| 精品美女一区二区| 91麻豆产精品久久久久久| 亚洲一区二区av电影| 亚洲精品在线一区二区| 91在线播放网址| 美女精品一区二区| 国产精品久久久久久久第一福利| 欧美日韩精品欧美日韩精品一| 国产乱国产乱300精品| 亚洲综合色视频| 精品国产精品网麻豆系列| 色偷偷久久人人79超碰人人澡| 日韩电影在线观看网站| 亚洲欧洲国产日本综合| 精品国产a毛片| 欧美日韩你懂的| a4yy欧美一区二区三区| 久久99深爱久久99精品| 亚洲成人一区在线| 国产欧美一区视频| 欧美一区二区在线观看| 91片在线免费观看| 国产99精品在线观看| 日本亚洲天堂网| 亚洲免费观看视频| 国产精品你懂的在线欣赏| 日韩视频中午一区| 9191成人精品久久| 成人黄色av网站在线| 韩国成人精品a∨在线观看| 午夜精品免费在线| 一级中文字幕一区二区| 国产精品日日摸夜夜摸av| 日韩视频免费观看高清完整版在线观看| 一本大道久久a久久精二百| 粉嫩绯色av一区二区在线观看| 美女久久久精品| 日韩二区三区四区| 亚洲成人久久影院| 樱花影视一区二区| 亚洲色图.com| 亚洲天堂久久久久久久| 中文字幕不卡在线播放| 国产亚洲一区二区三区| 久久综合九色综合97婷婷女人 | 亚洲码国产岛国毛片在线| 中文字幕第一区第二区| 国产欧美一区二区在线观看| 久久久国产精华| 国产亚洲欧美在线| 久久久99久久| 国产婷婷一区二区| 日本一区二区视频在线| 国产欧美一区二区三区鸳鸯浴| 久久久精品免费免费| 久久久久久免费网| 欧美高清在线视频| 1区2区3区国产精品| 18涩涩午夜精品.www| 亚洲色图视频网| 亚洲综合免费观看高清完整版 | 久久精品视频免费| 国产欧美精品区一区二区三区 | 色综合久久中文字幕| 91激情五月电影| 9191久久久久久久久久久| 日韩欧美在线影院| 国产人伦精品一区二区| 椎名由奈av一区二区三区| 一区二区三区加勒比av| 亚洲国产一区二区视频| 免费高清在线一区| 国产精品一二三区| 99这里都是精品| 欧美揉bbbbb揉bbbbb| 日韩精品专区在线影院重磅| 精品福利一二区| 国产精品久久久久国产精品日日| 一区二区三区国产豹纹内裤在线| 亚洲在线一区二区三区| 精品影视av免费| 成人a级免费电影| 欧美日韩中文另类| 亚洲一区二区三区四区五区中文 | 亚洲人精品午夜| 亚洲成a人v欧美综合天堂下载| 日本午夜精品视频在线观看| 久久av资源站| 色综合网站在线| 日韩一区二区三区四区五区六区| 国产日韩欧美制服另类| 亚洲一区二区在线播放相泽| 精品一区二区三区在线视频| 91尤物视频在线观看| 日韩欧美电影一二三| 成人免费小视频| 久久国产夜色精品鲁鲁99| 91麻豆免费视频| 欧美mv和日韩mv的网站| 亚洲蜜桃精久久久久久久| 久久电影网站中文字幕| 色哟哟国产精品免费观看| 日韩视频一区二区三区| 一区二区在线观看av| 激情文学综合丁香| 欧美色视频一区| 中文字幕欧美激情| 麻豆国产一区二区| 欧美性生活大片视频| 国产欧美日韩麻豆91| 美美哒免费高清在线观看视频一区二区| caoporm超碰国产精品| 欧美α欧美αv大片| 亚洲福利视频导航| 97成人超碰视| 国产欧美一区二区精品性| 视频一区欧美精品| 色婷婷av一区| 中文字幕精品—区二区四季| 激情图片小说一区| 日韩欧美在线一区二区三区| 亚洲综合丁香婷婷六月香| 成人午夜免费视频| 久久先锋影音av鲁色资源| 婷婷开心激情综合| 欧美亚洲愉拍一区二区| 国产精品久久久久久久久免费丝袜| 精品一区二区三区日韩| 91精品国产综合久久精品图片| 亚洲精品免费一二三区| 成人教育av在线| 国产女主播在线一区二区| 韩国女主播一区| 亚洲精品一区二区三区香蕉| 麻豆精品蜜桃视频网站| 欧美日韩大陆一区二区| 亚洲午夜视频在线观看| 一本大道久久a久久综合| 亚洲柠檬福利资源导航| 91丝袜美女网| 亚洲视频一二区| 99久久99久久精品免费观看| 成人免费在线播放视频| fc2成人免费人成在线观看播放| 欧美韩国一区二区| 国产成人自拍高清视频在线免费播放| 26uuu亚洲| 国产盗摄一区二区| 亚洲国产成人午夜在线一区| 成人99免费视频| 国产精品第五页| 色婷婷av一区| 亚洲午夜日本在线观看| 91精品国产91久久久久久一区二区| 无码av免费一区二区三区试看| 7777精品伊人久久久大香线蕉经典版下载 | 久久99国产精品免费网站| 欧美大片拔萝卜| 激情成人午夜视频| 国产欧美一区二区在线观看| 成人高清免费在线播放| 亚洲综合偷拍欧美一区色| 欧美狂野另类xxxxoooo| 捆绑变态av一区二区三区| 亚洲精品一区二区三区福利| 丁香婷婷综合网| 亚洲综合激情网| 日韩一区二区免费视频| 国产乱码字幕精品高清av| 国产精品美女久久久久av爽李琼| 色成人在线视频| 日韩高清中文字幕一区| 精品国精品自拍自在线| 成人精品电影在线观看| 亚洲国产日韩在线一区模特| 日韩精品中文字幕一区二区三区| 不卡av在线免费观看| 亚洲成人一区二区在线观看| 精品少妇一区二区三区视频免付费 | 国产电影一区二区三区|