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

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

?? syncclient.h

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? H
字號:
/*
 * 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
 */

#ifndef INCL_SYNCCLIENT
    #define INCL_SYNCCLIENT
/** @cond API */
/** @addtogroup Client */
/** @{ */

    #include "base/fscapi.h"
    #include "base/Log.h"
    #include "spds/SyncManagerConfig.h"
    #include "spds/SyncSource.h"
    #include "spds/constants.h"
    #include "spds/SyncReport.h"

    /**
     * This class wraps the common operations executed by a typical
     * client. It contains default implementations for calls invoked
     * by the library core to parameterize or control the
     * synchronization. A client can override these calls by
     * subclassing SyncClient and using an instance of its own class
     * instead.
     *
     * Warning: the library contains global data in several different
     * places. Therefore it is not possible to execute multiple
     * sessions in parallel.
     */
    class SyncClient {
      public:

        SyncClient();
        virtual ~SyncClient();

        /*
         * Execute a synchronization on the specified sources.
         * The sources will be configured automatically using the
         * client configuration set in the constructor.
         *
         * @param config  - the configuration to be used for this sync
         * @param sources - NULL terminated array of sources to sync.
         *
         * @return - 0 on success, an error otherwise
         */
        virtual int sync(SyncManagerConfig& config, SyncSource** sources);

        /**
         * Execute a synchronization with sources that are chosen based
         * on the sourceNames param or, if sourceNames is NULL, based
         * on the configuration: in this case all available sources will be used.
         *
         * - calls prepareSync() to give a derived class the chance to
         *   setup syncing and get ready for creating sources
         * - iterates over sources to sync, asks for the corresponding
         *   client source with createSource()
         * - calls beginSync() to give the derived class a class to do
         *   after all sources have been configured successfully
         * - executes the synchronization: call sync(sources**)
         *
         * This version of the call is easier to use for clients whose
         * sync sources are determined by the configuration or by an array
         * of desired sources to sync
         *
         * @param  config:      the configuration to be used for this sync
         * @param  sourceNames: optional, a NULL terminated array of source names that
         *                      we want to sync. If NULL, sources to sync are chosen
         *                      from the configuration.
         * @return 0 on success, an error otherwise
         */
        virtual int sync(SyncManagerConfig& config, char** sourceNames = NULL);

        /*
         * Returns a pointer to the internal syncReport.
         * Used to get detailed results on the executed synchronization.
         * Must be called after sync() method.
         */
        SyncReport* getSyncReport();


      protected:
        /**
         * A callback into a derived class which is called after
         * reading the SyncML configuration and before creating sources.
         * Not used by the sync(SyncSource**) call.
         *
         * @param config   a reference to SyncManager configuration
         *                 can be used to read client specific properties
         * @return 0       for success, an error code otherwise - an error code
         *                 aborts the whole synchronization
         */
        virtual int prepareSync(SyncManagerConfig& config) {
            return ERR_NONE;
        }

        /**
         * A factory method that is used by the sync() call to create
         * the sync sources that are to be synchronized. Not used by the
         * sync(SyncSource**) call.
         *
         * @param name     name of the sync source
         * @param pos      position of the SyncSource in the SSConfig array
         *                 (index: 0 - numSources-1)
         * @param config   a pointer to the source's configuration: this
         *                 includes all properties that the client library
         *                 knows and uses itself (only valid during this call)
         *                 This pointer is owned by SyncManagerConfig, sources uses it
         *                 to initialize the internal config by reference.
         * @retval source  the sync source created by the client or NULL if
         *                 there is no sync source currently associated with
         *                 the config or it is inactive; instance is a new SyncSource*
         *                 and it's freed by the caller (see finally)
         * @return 0 for success, an error code otherwise - an error code
         *         aborts the whole synchronization and the value of *source is
         *         ignored
         */
        virtual int createSyncSource(const char *name, const int pos,
                                     SyncSourceConfig* config,
                                     SyncSource **source) {
            *source = NULL;
            return ERR_UNSPECIFIED;
        }

        /**
         * Callback invoked after creating all sources.
         * @return 0 for success, an error code otherwise - an error code stops
         *         immediately
         */
        virtual int beginSync(SyncSource **source) {
            return ERR_NONE;
        }

        /**
         * Callback invoked after the sync process.
         * @return: 0 for success, an error code otherwise
         */
        virtual int endSync(SyncSource **source) {
            return ERR_NONE;
        }

        /**
         * Callback invoked after the prepareSync function.
         * @return 0 for success, an error code otherwise - an error code stops
         *         immediately
         */
        virtual int continueAfterPrepareSync() {
            return ERR_NONE;
        }

        /**
         * Callback invoked after the sync function.
         * @return: 0 for success, an error code otherwise
         */
        virtual int continueAfterSync() {
            return ERR_NONE;
        }

        // The report of the synchronization process.
        // Sources reports are initializated during sync(sources**) call.
        SyncReport syncReport;
    };

/** @} */
/** @endcond */
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产aⅴ原创| 精品国产a毛片| 丁香啪啪综合成人亚洲小说| 三级欧美在线一区| 天堂资源在线中文精品| 日本欧美一区二区| 国内外成人在线视频| 精品亚洲免费视频| 国产精品123区| 成人免费视频caoporn| 成人午夜免费av| 色综合天天综合在线视频| 色婷婷av一区| 在线播放中文字幕一区| 日韩欧美一级二级| 久久蜜臀精品av| 最新日韩av在线| 亚洲一区二区三区四区在线| 日本不卡在线视频| 国产一区二区三区在线观看免费视频| 国产一区不卡精品| 91福利视频久久久久| 69p69国产精品| 国产无一区二区| 亚洲综合色区另类av| 奇米影视一区二区三区小说| 国产精品一级二级三级| 97超碰欧美中文字幕| 欧美日韩视频专区在线播放| 久久午夜羞羞影院免费观看| 亚洲少妇30p| 久久草av在线| 一本久道久久综合中文字幕| 精品免费视频一区二区| 亚洲欧美日韩一区二区三区在线观看| 亚洲成人在线免费| 国产成人精品免费视频网站| 欧美日本在线一区| 中文子幕无线码一区tr| 青草av.久久免费一区| 不卡欧美aaaaa| 欧美成人精精品一区二区频| 玉米视频成人免费看| 韩国视频一区二区| 欧美性欧美巨大黑白大战| 久久久高清一区二区三区| 亚洲成人动漫av| 99久久婷婷国产综合精品| 日韩网站在线看片你懂的| 亚洲人成7777| 成人精品高清在线| 日韩欧美综合在线| 亚洲一二三四在线观看| 成人教育av在线| 久久久高清一区二区三区| 美女视频网站久久| 欧美美女bb生活片| 一区二区三区四区不卡视频| 成熟亚洲日本毛茸茸凸凹| 精品欧美久久久| 麻豆91精品91久久久的内涵| 欧美色大人视频| 尤物av一区二区| 91原创在线视频| 国产精品久久久久久久久免费丝袜| 麻豆精品久久久| 91精品国产免费| 香蕉久久夜色精品国产使用方法 | 蜜桃传媒麻豆第一区在线观看| 色综合久久久久| 亚洲日本欧美天堂| 国产91精品精华液一区二区三区| 在线播放亚洲一区| 亚洲成人动漫精品| 日韩一区二区三区免费观看| 日韩激情一二三区| 欧美一级片免费看| 久久狠狠亚洲综合| 欧美变态口味重另类| 国产成人在线影院| 中文字幕的久久| 成人av一区二区三区| 亚洲青青青在线视频| 欧美日韩一区在线观看| 日韩黄色免费电影| 精品免费日韩av| 国产凹凸在线观看一区二区| 亚洲欧洲三级电影| 色久综合一二码| 免费视频一区二区| 国产亚洲欧美在线| 99久久er热在这里只有精品15| 一区二区在线电影| 欧美一级片免费看| 久久精品999| 中文字幕在线观看不卡| 欧美日韩激情在线| 国产精品原创巨作av| 玉足女爽爽91| 精品久久久三级丝袜| 成人精品在线视频观看| 亚洲一卡二卡三卡四卡| 精品福利在线导航| 日本韩国欧美一区二区三区| 免费精品视频在线| 亚洲三级电影网站| 欧美一区二区免费观在线| 国产99久久久国产精品潘金| 亚洲高清在线视频| 精品捆绑美女sm三区| 色素色在线综合| 国产资源精品在线观看| 亚洲一区二区3| 久久九九影视网| 欧美日韩国产电影| 成人久久18免费网站麻豆| 日韩国产欧美一区二区三区| 亚洲国产精品t66y| 精品国产一二三| 欧美午夜精品免费| av成人老司机| 国产精品99久久久久久久女警| 亚洲综合激情另类小说区| 久久九九久久九九| 69堂国产成人免费视频| 日本乱码高清不卡字幕| 国产成人综合在线观看| 免费成人在线播放| 亚洲成人精品一区二区| 最近日韩中文字幕| 国产校园另类小说区| 日韩精品一区二区三区中文不卡| 欧美在线制服丝袜| 成人晚上爱看视频| 国产精品一色哟哟哟| 久久99国产精品尤物| 日日噜噜夜夜狠狠视频欧美人| 亚洲另类中文字| 欧美国产日韩a欧美在线观看| 日韩欧美123| 91精品福利在线一区二区三区| 日本道免费精品一区二区三区| 成人av在线网| www.色综合.com| 国产精品18久久久久久久网站| 看片的网站亚洲| 久久99精品国产91久久来源| 婷婷国产在线综合| 日本视频一区二区| 蜜臀国产一区二区三区在线播放 | 国产精品一二三区在线| 久久国产精品无码网站| 美国欧美日韩国产在线播放| 日产国产欧美视频一区精品| 天天综合色天天综合色h| 日日骚欧美日韩| 久久精品国产**网站演员| 麻豆成人综合网| 国产精选一区二区三区| 国产传媒久久文化传媒| 成人a免费在线看| 色综合一个色综合亚洲| 色噜噜狠狠一区二区三区果冻| 欧美在线看片a免费观看| 在线观看日韩高清av| 欧美嫩在线观看| 日韩一区二区三| 日本一区二区成人| 亚洲精品日日夜夜| 日韩和的一区二区| 国产精品自在在线| 91黄色在线观看| 欧美一卡二卡三卡四卡| 久久精品无码一区二区三区| 国产精品久久久久永久免费观看| 亚洲婷婷综合色高清在线| 亚洲成人7777| 黄网站免费久久| 一本久久a久久精品亚洲| 欧美伦理电影网| 国产午夜亚洲精品午夜鲁丝片| 亚洲人妖av一区二区| 天天色天天爱天天射综合| 国产乱码精品一区二区三| 在线免费av一区| 亚洲精品在线免费播放| 亚洲色图视频网站| 蜜桃av一区二区三区电影| 成人免费视频一区二区| 欧美日韩亚洲丝袜制服| 国产精品午夜电影| 青青草伊人久久| 91福利在线导航| 久久精品视频网| 日韩**一区毛片| 日本久久电影网| 国产亲近乱来精品视频| 视频一区视频二区在线观看| 成人av资源下载| 久久精品日韩一区二区三区|