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

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

?? filedata.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
字號:
/*
 * Copyright (C) 2003-2007 Funambol, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY, TITLE, NONINFRINGEMENT or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 * 02111-1307  USA
 */

#include "base/fscapi.h"
#include "base/Log.h"
#include "base/util/XMLProcessor.h"
#include "syncml/formatter/Formatter.h"
#include "spds/FileData.h"
#include "base/quoted-printable.h"


#define FILE_ITEM       TEXT("File")
#define FILE_HIDDEN     "h"
#define FILE_SYSTEM     "s"
#define FILE_ARCHIVED   "a"
#define FILE_DELETE     "d"
#define FILE_WRITABLE   "w"
#define FILE_READABLE   "r"
#define FILE_EXECUTABLE "e"
#define FILE_ACCESSED   "accessed"
#define FILE_ATTRIBUTES "attributes"
#define FILE_BODY       "body"
#define FILE_CTTYTPE    "cttype"
#define FILE_ENC        "enc"
#define FILE_MODIFIED   "modified"
#define FILE_NAME       "name"
#define FILE_SIZE       "size"
#define FILE_CREATED    "created"


FileData::FileData()
{
    size = 0;
	hidden = false;
	system = false;
	archived = false;
	deleted = false;
	writable = false;
	readable = false;
	executable = false;
    isHiddenPresent = false;
    isSystemPresent = false;
    isArchivedPresent = false;
    isDeletedPresent = false;
    isWritablePresent = false;
    isReadablePresent = false;
    isExecutablePresent = false;

}

FileData::~FileData()
{
    accessed.reset();
    attributes.reset();
    enc.reset();
    file.reset();
    modified.reset();
    name.reset();
    created.reset();
    body.reset();
    cttype.reset();

}

int FileData::parse(const void *syncmlData, size_t len) {
    StringBuffer* s = new StringBuffer(syncmlData, len);
    return parse(s);


}

int FileData::parse(const char *syncmlData, size_t len) {
    StringBuffer* s = new StringBuffer(syncmlData, len);
    return parse(s);

}

int FileData::parse(StringBuffer* s)
{
    int ret = 0;
    unsigned int start, end;
    //StringBuffer* s = new StringBuffer(syncmlData, len);
    StringBuffer bodyattr;

    // FIXME: remove these replace once the server has fixed the message.
    s->replaceAll("&lt;", "<");
    s->replaceAll("&gt;", ">");
    s->replaceAll("&amp;", "&");

	/*
    // Get the CDATA content
    if(XMLProcessor::getElementContent(s->c_str(), "CDATA", NULL, &start, &end) == 0) {
        LOG.error("FileData: can't find outer CDATA section.");
        return -1;
    }
    StringBuffer msg = s->substr(start, end-start);

    delete s;
	*/

	if(XMLProcessor::getElementContent(s->c_str(), "File", NULL, &start, &end) == 0) {
		LOG.error("FileData: can't find outer FILE section.");
		return -1;
	}
	StringBuffer msg = s->substr(start, end-start);

    // Get attributes
    if( XMLProcessor::getElementContent (msg, FILE_HIDDEN, NULL, &start, &end) ) {
        hidden = ( strncmp(msg.c_str()+start, "true", end-start) == 0 ) ;
        isHiddenPresent = true;
    }
    else hidden = false;

    if( XMLProcessor::getElementContent (msg, FILE_SYSTEM, NULL, &start, &end) ) {
        system = ( strncmp(msg.c_str()+start, "true", end-start) == 0 ) ;
        isSystemPresent = true;
    }
    else system = false;

    if( XMLProcessor::getElementContent (msg, FILE_ARCHIVED, NULL, &start, &end) ) {
        archived = ( strncmp(msg.c_str()+start, "true", end-start) == 0 ) ;
        isArchivedPresent = true;
    }
    else archived = false;

    if( XMLProcessor::getElementContent (msg, FILE_DELETE, NULL, &start, &end) ) {
        deleted = ( strncmp(msg.c_str()+start, "true", end-start) == 0 ) ;
        isDeletedPresent = true;
    }
    else deleted = false;

    if( XMLProcessor::getElementContent (msg, FILE_WRITABLE, NULL, &start, &end) ) {
        writable = ( strncmp(msg.c_str()+start, "true", end-start) == 0 ) ;
        isWritablePresent = true;
    }
    else writable = false;

    if( XMLProcessor::getElementContent (msg, FILE_READABLE, NULL, &start, &end) ) {
        readable = ( strncmp(msg.c_str()+start, "true", end-start) == 0 ) ;
        isReadablePresent = true;
    }
    else readable = false;

    if( XMLProcessor::getElementContent (msg, FILE_EXECUTABLE, NULL, &start, &end) ) {
        executable = ( strncmp(msg.c_str()+start, "true", end-start) == 0 ) ;
        isExecutablePresent = true;
    }
    else executable = false;

    if( XMLProcessor::getElementContent (msg, FILE_ACCESSED, NULL, &start, &end) ) {
        accessed = msg.substr(start, end-start);
    }
    else accessed = TEXT("");

    if( XMLProcessor::getElementContent (msg, FILE_MODIFIED, NULL, &start, &end) ) {
        modified = msg.substr(start, end-start);
    }
    else modified = TEXT("");

    if( XMLProcessor::getElementContent (msg, FILE_CREATED, NULL, &start, &end) ) {
        created = msg.substr(start, end-start);
    }
    else created = TEXT("");

    if ( XMLProcessor::getElementContent (msg, FILE_SIZE, NULL, &start, &end) ) {
        size = atoi(msg.substr(start, end-start));
    }

    if( XMLProcessor::getElementContent (msg, FILE_BODY, NULL, &start, &end) ) {
        body = msg.substr(start, end-start);
    }
    else body = "";
    if ( XMLProcessor::getElementAttributes (msg, FILE_BODY, &start, &end) ) {
        bodyattr = msg.substr(start, end-start);
        size_t attrstart = bodyattr.ifind("enc");
        if (attrstart!= StringBuffer::npos) {
            enc = bodyattr.substr(attrstart + 4);
            if (!enc.empty() && (enc != TEXT("\"base64\"")) &&
                (enc != TEXT("\"quoted-printable\"")))
            {
                enc = TEXT("");
            }
            else
            {
                int repNo = enc.replaceAll(TEXT("\""),TEXT(""));
            }
        }
        else
            enc = TEXT("");
    }
    else
        enc = TEXT("");

    if (!enc.empty() && (enc == TEXT("base64")))
    {
        int len = b64_decode((void *)body.c_str(), body.c_str());
    }

    if (!enc.empty() && (enc == TEXT("quoted-printable")))
    {
        body = qp_decode(body.c_str());
    }


    if( XMLProcessor::getElementContent (msg, FILE_NAME, NULL, &start, &end) ) {
        name = msg.substr(start, end-start);
    }
    else name = TEXT("");

	delete s;

    return ret;
}

void FileData::setBody(const char* v, int len)
{
    if (size == 0)
    {
        body = v;
    }
    else
    {
        char*   base64    = NULL;
        int     encodeLen = lengthForB64(len);
        base64 = new char[encodeLen + 1];
        memset(base64, 0, encodeLen + 1);
        b64_encode(base64, (char*)v, len);
        body = base64;
        delete [] base64;
    }
}


char* FileData::format() {

    StringBuffer out;

    out.reserve(150);

    out = "<File>\n";
    if (name.length() > 0)
        out += XMLProcessor::makeElement(FILE_NAME, _wcc(name));
    if (created.length() > 0)
        out += XMLProcessor::makeElement(FILE_CREATED, _wcc(created));
    if (modified.length() > 0)
        out += XMLProcessor::makeElement(FILE_MODIFIED, _wcc(modified));
    if (accessed.length() > 0)
        out += XMLProcessor::makeElement(FILE_ACCESSED, _wcc(accessed));

    StringBuffer attributes;

    if (isHiddenPresent)
        attributes += XMLProcessor::makeElement(FILE_HIDDEN, hidden);
    if (isSystemPresent)
        attributes += XMLProcessor::makeElement(FILE_SYSTEM, system);
    if (isArchivedPresent)
        attributes += XMLProcessor::makeElement(FILE_ARCHIVED, archived);
    if (isDeletedPresent)
        attributes += XMLProcessor::makeElement(FILE_DELETE, deleted);
    if (isWritablePresent)
        attributes += XMLProcessor::makeElement(FILE_WRITABLE, writable);
    if (isReadablePresent)
        attributes += XMLProcessor::makeElement(FILE_READABLE, readable);
    if (isExecutablePresent)
        attributes += XMLProcessor::makeElement(FILE_EXECUTABLE, executable);
    if (!attributes.empty())
        out += XMLProcessor::makeElement(FILE_ATTRIBUTES, attributes);

    if (enc.empty()){
        int len = b64_decode((void*)body.c_str(), body.c_str());
        out += XMLProcessor::makeElement(FILE_BODY, body);
    }
    else
    {
        ArrayList attrList;
        KeyValuePair attr("enc", _wcc(enc.c_str()));
        attrList.add(attr);
        out += XMLProcessor::makeElement(FILE_BODY, body.c_str(), attrList);
    }
    if (size > 0)
        out += XMLProcessor::makeElement(FILE_SIZE, size);
    out += "</File>\n";
    return stringdup(out.c_str());
}

int FileData::lengthForB64(int len) {

    int modules = 0;
    int ret     = 0;

    modules = len % 3;
    if (modules == 0) {
        ret = 4 * (len / 3);

    } else {
        ret = 4 * ((len/3) + 1);

    }
    return ret;


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影在线观看一区| 国产精品 日产精品 欧美精品| 老司机免费视频一区二区三区| www.99精品| 久久综合久久99| 日韩高清不卡一区二区三区| 99re66热这里只有精品3直播 | 一本色道亚洲精品aⅴ| 日韩欧美一区二区视频| 亚洲精品伦理在线| 不卡在线观看av| 久久这里只有精品首页| 午夜精品一区二区三区免费视频| 不卡免费追剧大全电视剧网站| 欧美不卡一区二区| 男男视频亚洲欧美| 欧美久久久久久蜜桃| 亚洲蜜臀av乱码久久精品| 国产91丝袜在线播放九色| 精品福利在线导航| 精品亚洲成av人在线观看| 欧美顶级少妇做爰| 亚洲成人在线观看视频| 91高清视频在线| 亚洲三级久久久| 色先锋aa成人| 亚洲激情图片qvod| 欧美性生活影院| 亚洲最色的网站| 欧美这里有精品| 亚洲成av人片在线| 宅男在线国产精品| 免费欧美高清视频| 精品国产91乱码一区二区三区| 九色综合国产一区二区三区| 精品国产一区二区三区不卡 | www..com久久爱| 国产精品视频看| 91黄视频在线观看| 亚洲在线观看免费视频| 欧美性猛交xxxx黑人交| 亚洲第一二三四区| 欧美剧在线免费观看网站| 天堂在线亚洲视频| 日韩欧美一区中文| 国产成人亚洲综合a∨婷婷图片| 国产午夜精品一区二区| 成人动漫中文字幕| 亚洲图片欧美综合| 日韩一区二区免费高清| 国产在线看一区| 国产精品久久综合| 欧美系列一区二区| 麻豆国产91在线播放| 国产亚洲制服色| 日本丰满少妇一区二区三区| 午夜精品久久一牛影视| 精品黑人一区二区三区久久| 成人av资源下载| 亚洲成人激情综合网| 欧美日韩黄视频| 国产成人精品aa毛片| 一区二区激情小说| 久久亚区不卡日本| 91蝌蚪porny成人天涯| 无码av免费一区二区三区试看| 久久亚洲综合色| 欧美亚州韩日在线看免费版国语版| 看片的网站亚洲| 亚洲精品国久久99热| 日韩精品一区二区三区在线播放 | 日韩一区二区高清| 成人黄色综合网站| 男男gaygay亚洲| 伊人一区二区三区| 国产午夜久久久久| 91精品国产欧美一区二区成人| 风间由美一区二区av101 | 欧美高清dvd| 成人激情小说乱人伦| 久久精品二区亚洲w码| 亚洲欧美激情视频在线观看一区二区三区 | 国产一区二区三区av电影| 亚洲精品欧美二区三区中文字幕| www国产成人| 欧美久久高跟鞋激| 91免费在线视频观看| 精品亚洲porn| 日本亚洲欧美天堂免费| 亚洲女子a中天字幕| 国产色一区二区| 精品日韩在线观看| 欧美丰满嫩嫩电影| 欧美日本在线看| 欧美在线观看视频一区二区三区| 成人午夜激情片| 国产老肥熟一区二区三区| 五月综合激情日本mⅴ| 一区二区在线观看免费视频播放| 中文欧美字幕免费| 国产欧美日韩视频在线观看| 日韩欧美一区二区久久婷婷| 91精品欧美综合在线观看最新| 欧洲一区二区三区在线| 91在线精品一区二区三区| 夫妻av一区二区| 国产精品自拍av| 国产一区二区不卡在线| 久久99精品国产.久久久久久 | 亚洲女同女同女同女同女同69| 26uuu久久综合| 久久久综合激的五月天| 2020国产成人综合网| 久久蜜桃一区二区| 久久久久国产精品免费免费搜索| 精品成人一区二区三区| 精品国产亚洲一区二区三区在线观看| 欧美精选一区二区| 日韩精品中文字幕一区二区三区 | 欧美人成免费网站| 在线91免费看| 日韩一级高清毛片| 26uuu精品一区二区| 国产肉丝袜一区二区| 中文字幕第一页久久| 综合激情成人伊人| 亚洲黄色av一区| 日韩精品电影在线| 激情五月婷婷综合网| 国产成a人亚洲精品| 91免费版在线| 欧美久久久久久蜜桃| 精品精品国产高清a毛片牛牛| 久久青草欧美一区二区三区| 中日韩免费视频中文字幕| 亚洲精品一卡二卡| 日本伊人精品一区二区三区观看方式| 精品一区二区三区免费毛片爱 | 韩国精品在线观看| 久久精品水蜜桃av综合天堂| 欧美大尺度电影在线| 久久久国产一区二区三区四区小说| 亚洲成年人影院| 日韩国产欧美三级| 国产乱码精品一区二区三| 色综合中文字幕| 91麻豆精品久久久久蜜臀| 亚洲国产高清在线观看视频| 亚洲精品免费一二三区| 捆绑变态av一区二区三区| 成人av免费在线播放| 欧美日韩国产一区| 中文字幕电影一区| 日韩黄色免费网站| 日韩欧美专区在线| 亚洲乱码国产乱码精品精小说| 日本欧美一区二区| 99久久99久久综合| 日韩一区二区精品在线观看| 中文字幕佐山爱一区二区免费| 日韩和欧美一区二区三区| 国产成人免费xxxxxxxx| 欧美日韩国产系列| 中文字幕欧美一| 精品在线你懂的| 欧美日韩一区三区四区| 中文文精品字幕一区二区| 免费黄网站欧美| 在线一区二区三区四区| 国产日韩精品一区二区浪潮av| 天使萌一区二区三区免费观看| 91在线视频免费91| 中文字幕av一区二区三区高| 青青青伊人色综合久久| 91福利社在线观看| 亚洲图片你懂的| 国产99久久久久久免费看农村| 91精品免费观看| 亚洲第一久久影院| 91国偷自产一区二区开放时间| 中文字幕av资源一区| 国产精品夜夜嗨| 精品久久久久久久久久久久久久久| 亚洲电影一区二区三区| 色综合激情久久| 亚洲特黄一级片| 99久久国产综合精品女不卡| 中文字幕国产精品一区二区| 国产在线麻豆精品观看| 精品欧美久久久| 欧美日韩欧美一区二区| 久久影院午夜论| 毛片一区二区三区| 538prom精品视频线放| 亚洲一区二区美女| 欧美日韩国产影片| 五月天网站亚洲| 日韩色视频在线观看| 免费成人av在线| 久久这里都是精品|