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

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

?? reposlog.cpp

?? LINUX 下以 QT/KDE 寫的 SVN 客戶端
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "ReposLog.hpp"#include "LogCache.hpp"#include "svnqt/info_entry.hpp"#include "svnqt/svnqttypes.hpp"#include "svnqt/client.hpp"#include "svnqt/context_listener.hpp"#include "svnqt/cache/DatabaseException.hpp"#include <qsqldatabase.h>#if QT_VERSION < 0x040000#else#include <QSqlError>#include <QSqlQuery>#include <QVariant>#define Q_LLONG qlonglong#endif/*!    \fn svn::cache::ReposLog::ReposLog(svn::Client*aClient,const QString&) */svn::cache::ReposLog::ReposLog(svn::Client*aClient,const QString&aRepository)    :m_Client(aClient),#if QT_VERSION < 0x040000              m_Database(0),#else              m_Database(),#endif              m_ReposRoot(aRepository),m_latestHead(svn::Revision::UNDEFINED){    if (!aRepository.isEmpty()) {        m_Database = LogCache::self()->reposDb(aRepository);    }}/*!    \fn svn::cache::ReposLog::latestHeadRev() */svn::Revision svn::cache::ReposLog::latestHeadRev(){    if (!m_Client||m_ReposRoot.isEmpty()) {        return svn::Revision::UNDEFINED;    }#if QT_VERSION < 0x040000    if (!m_Database) {#else    if (!m_Database.isValid()) {#endif        m_Database = LogCache::self()->reposDb(m_ReposRoot);#if QT_VERSION < 0x040000        if (!m_Database) {#else        if (!m_Database.isValid()) {#endif            return svn::Revision::UNDEFINED;        }    }    /// no catch - exception has go trough...    svn::InfoEntries e = (m_Client->info(m_ReposRoot,false,svn::Revision::HEAD,svn::Revision::HEAD));;    if (e.count()<1||e[0].reposRoot().isEmpty()) {        return svn::Revision::UNDEFINED;    }    return e[0].revision();}/*!    \fn svn::cache::ReposLog::latestCachedRev() */svn::Revision svn::cache::ReposLog::latestCachedRev(){    if (m_ReposRoot.isEmpty()) {        return svn::Revision::UNDEFINED;    }#if QT_VERSION < 0x040000    if (!m_Database) {#else    if (!m_Database.isValid()) {#endif        m_Database = LogCache::self()->reposDb(m_ReposRoot);#if QT_VERSION < 0x040000        if (!m_Database) {#else        if (!m_Database.isValid()) {#endif            return svn::Revision::UNDEFINED;        }    }    QString q("select revision from 'logentries' order by revision DESC limit 1");    QSqlQuery _q(QString::null, m_Database);    if (!_q.exec(q)) {        qDebug(_q.lastError().text().TOUTF8().data());        return svn::Revision::UNDEFINED;    }    int _r;    if (_q.isActive() && _q.next()) {        qDebug("Sel result: %s",_q.value(0).toString().TOUTF8().data());        _r = _q.value(0).toInt();    } else {        qDebug(_q.lastError().text().TOUTF8().data());        return svn::Revision::UNDEFINED;    }    return _r;}bool svn::cache::ReposLog::checkFill(svn::Revision&start,svn::Revision&end){#if QT_VERSION < 0x040000    if (!m_Database) {#else    if (!m_Database.isValid()) {#endif        m_Database = LogCache::self()->reposDb(m_ReposRoot);#if QT_VERSION < 0x040000        if (!m_Database) {#else        if (!m_Database.isValid()) {#endif            return false;        }    }    ContextP cp = m_Client->getContext();    long long icount=0;    svn::Revision _latest=latestCachedRev();    qDebug("Latest cached rev: %i",_latest.revnum());    if (_latest.revnum()>=latestHeadRev().revnum()) {        return true;    }    start=date2numberRev(start);    end=date2numberRev(end);    // both should now one of START, HEAD or NUMBER    if (start==svn::Revision::HEAD || (end==svn::Revision::NUMBER && start==svn::Revision::NUMBER && start.revnum()>end.revnum())) {        svn::Revision tmp = start;        start = end;        end = tmp;    }    svn::Revision _rstart=_latest.revnum()+1;    svn::Revision _rend = end;    if (_rend==svn::Revision::UNDEFINED) {        _rend=svn::Revision::HEAD;    }    // no catch - exception should go outside.    if (_rstart==0){        _rstart = 1;    }    qDebug("Getting log %s -> %s",_rstart.toString().TOUTF8().data(),_rend.toString().TOUTF8().data());    if (_rend==svn::Revision::HEAD) {        _rend=latestHeadRev();    }    if (_rend==svn::Revision::HEAD||_rend.revnum()>_latest.revnum()) {        LogEntriesMap _internal;        qDebug("Retrieving from network.");        if (!m_Client->log(m_ReposRoot,_rstart,_rend,_internal,svn::Revision::UNDEFINED,true,false)) {            return false;        }        LogEntriesMap::ConstIterator it=_internal.begin();        for (;it!=_internal.end();++it) {            _insertLogEntry((*it));            if (cp && cp->getListener()) {                //cp->getListener()->contextProgress(++icount,_internal.size());                if (cp->getListener()->contextCancel()) {                    throw DatabaseException(QString("Could not retrieve values: User cancel."));                }            }        }    }    return true;}bool svn::cache::ReposLog::fillCache(const svn::Revision&_end){    svn::Revision end = _end;    svn::Revision start = latestCachedRev().revnum()+1;    return checkFill(start,end);}/*!    \fn svn::cache::ReposLog::simpleLog(const svn::Revision&start,const svn::Revision&end,LogEntriesMap&target) */bool svn::cache::ReposLog::simpleLog(LogEntriesMap&target,const svn::Revision&_start,const svn::Revision&_end,bool noNetwork){    if (!m_Client||m_ReposRoot.isEmpty()) {        return false;    }    target.clear();    ContextP cp = m_Client->getContext();    svn::Revision end = _end;    svn::Revision start = _start;    if (!noNetwork) {        if (!checkFill(start,end)) {            return false;        }    } else {        end=date2numberRev(end,noNetwork);        start=date2numberRev(start,noNetwork);    }    if (end==svn::Revision::HEAD) {        end = latestCachedRev();    }    if (start==svn::Revision::HEAD) {        start=latestCachedRev();    }    static QString sEntry("select revision,author,date,message from logentries where revision<=? and revision>=?");    static QString sItems("select changeditem,action,copyfrom,copyfromrev from changeditems where revision=?");    QSqlQuery bcur(QString::null,m_Database);    bcur.prepare(sEntry);    QSqlQuery cur(QString::null,m_Database);    cur.prepare(sItems);    bcur.bindValue(0,Q_LLONG(end.revnum()));    bcur.bindValue(1,Q_LLONG(start.revnum()));    if (!bcur.exec()) {        qDebug(bcur.lastError().text().TOUTF8().data());        throw svn::cache::DatabaseException(QString("Could not retrieve values: ")+bcur.lastError().text());        return false;    }    Q_LLONG revision;    while(bcur.next()) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美美女一区二区三区| 天天av天天翘天天综合网| 欧美日本韩国一区| 99久久99久久久精品齐齐| 国产福利不卡视频| 麻豆精品一区二区综合av| 蜜桃一区二区三区在线| 欧美a级一区二区| 男人的天堂久久精品| 亚洲成人免费影院| 亚洲一区二区三区自拍| 国产精品国产三级国产普通话99| 久久久久久免费网| 久久久五月婷婷| 日韩一区二区三区三四区视频在线观看| 色综合久久中文综合久久牛| 色婷婷亚洲综合| 色老汉一区二区三区| 日本高清视频一区二区| 91捆绑美女网站| 91在线视频官网| 欧美性受xxxx黑人xyx| 日韩一区二区三区四区五区六区 | 国产精品一二二区| 国产精品一区二区三区四区 | 久久奇米777| 国产喷白浆一区二区三区| 亚洲欧洲国产专区| 亚洲宅男天堂在线观看无病毒 | 欧美三区在线观看| 欧美一激情一区二区三区| 欧美日韩一二区| 亚洲成人动漫精品| 国产精品萝li| 亚洲女人小视频在线观看| 中文字幕一区三区| 亚洲美女在线一区| 亚洲一区二区三区四区五区黄| 亚洲免费观看高清完整| 亚洲精品午夜久久久| 一区二区三区在线不卡| 亚洲动漫第一页| 亚洲在线一区二区三区| 洋洋av久久久久久久一区| 亚洲欧美日韩国产另类专区| 久久女同互慰一区二区三区| 国产精品成人免费精品自在线观看 | 色综合久久中文综合久久97| 国产精品不卡在线| 国产精品成人免费在线| 精品国产成人在线影院| 久久久久久99久久久精品网站| 成人精品视频一区二区三区| 91免费观看视频在线| av在线不卡电影| 欧美精品亚洲二区| 久久久国际精品| 亚洲欧美日韩中文播放| 中文字幕日本不卡| 亚洲乱码日产精品bd| 天堂成人国产精品一区| 中文字幕在线观看一区| 欧美蜜桃一区二区三区| 精品国产乱码久久| 亚洲人123区| 麻豆免费精品视频| 亚洲va欧美va国产va天堂影院| 蜜桃av噜噜一区二区三区小说| 成人精品一区二区三区中文字幕 | 美女视频黄免费的久久 | 久久成人综合网| 韩国毛片一区二区三区| 成人免费看视频| 日韩区在线观看| 中文字幕第一区综合| 综合av第一页| 成人免费一区二区三区视频| 午夜精品一区二区三区免费视频 | 91在线视频免费91| 精品理论电影在线观看| 91麻豆免费看| 久久久精品国产99久久精品芒果| 午夜精品久久久久影视| 中文在线一区二区| 男人操女人的视频在线观看欧美| 91麻豆.com| 国产情人综合久久777777| 午夜精品国产更新| 91亚洲精华国产精华精华液| 国产欧美日产一区| 毛片av中文字幕一区二区| 亚洲天堂网中文字| 国产成人三级在线观看| 亚洲精品中文在线| 日韩影视精彩在线| av亚洲精华国产精华精| 久久精品人人做人人综合| 日韩电影在线一区二区三区| 欧美色老头old∨ideo| 欧美极品xxx| 国产一区二区看久久| 青青草国产精品亚洲专区无| 欧美日韩另类一区| 日韩毛片视频在线看| 久久精品国产99| 欧美一区二区三区性视频| 五月天激情综合网| 懂色av一区二区夜夜嗨| 国产精品少妇自拍| 成人免费视频国产在线观看| 国产欧美日产一区| 国产精品超碰97尤物18| 精品影院一区二区久久久| 欧美精品一二三| 秋霞电影一区二区| 日韩欧美亚洲另类制服综合在线| 国产欧美日韩综合| www.av精品| 欧美三级乱人伦电影| 亚洲韩国精品一区| 欧美福利一区二区| 国产一区二区三区在线看麻豆| 麻豆精品久久精品色综合| 欧美电视剧在线看免费| 国产酒店精品激情| 国产精品免费人成网站| 国产真实乱对白精彩久久| 久久久精品国产免费观看同学| 不卡一区二区三区四区| 亚洲欧洲精品一区二区三区不卡| 97精品久久久午夜一区二区三区| 亚洲国产日韩a在线播放| 国产精品第五页| 精品视频在线免费看| 亚洲一区二区三区在线看| 91啪在线观看| 日韩av电影一区| 国产日韩欧美综合一区| 成人小视频免费在线观看| 久久精品亚洲乱码伦伦中文| 成人成人成人在线视频| 中文一区在线播放| 欧美伦理电影网| 久久成人久久爱| 一级女性全黄久久生活片免费| 日韩欧美资源站| 在线免费观看视频一区| 全国精品久久少妇| 中文字幕在线一区免费| 欧美一级一区二区| eeuss国产一区二区三区| 免费成人在线网站| 亚洲欧洲美洲综合色网| 精品美女在线观看| 91原创在线视频| 国产在线不卡一卡二卡三卡四卡| 一区二区三区在线播| 日本一区二区在线不卡| av中文字幕在线不卡| 老司机精品视频线观看86| 亚洲一本大道在线| 国产午夜精品理论片a级大结局| 欧美视频一区二区三区在线观看| 国产宾馆实践打屁股91| 玉米视频成人免费看| 欧美美女一区二区三区| 99久久精品久久久久久清纯| 亚洲精品在线观| 欧美日韩成人在线| 91精品福利在线| 色综合久久88色综合天天6 | 日本成人在线视频网站| 国产精品乱码一区二区三区软件 | 在线观看亚洲a| 国产欧美视频在线观看| 精品国产乱码久久久久久影片| 91精品国产综合久久蜜臀| 日本人妖一区二区| 日韩成人av影视| 日本视频免费一区| 26uuuu精品一区二区| 欧美成人在线直播| 欧美四级电影网| 欧美熟乱第一页| 久久精品国产亚洲a| 91麻豆文化传媒在线观看| jlzzjlzz欧美大全| 99精品久久免费看蜜臀剧情介绍| 99这里都是精品| 久久99精品国产麻豆婷婷洗澡| 裸体一区二区三区| 69堂精品视频| 色偷偷成人一区二区三区91| 91精品啪在线观看国产60岁| 国产精品免费久久| 日韩精品亚洲专区| 成人免费三级在线| 精品处破学生在线二十三| 日韩一区中文字幕| 久久精品国产一区二区|