windowssyncsourceconfig.cpp
来自「funambol window mobile客户端源代码」· C++ 代码 · 共 280 行
CPP
280 行
/*
* Funambol is a mobile platform developed by Funambol, Inc.
* 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 Affero General Public License version 3 as published by
* the Free Software Foundation with the addition of the following permission
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
* WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program; if not, see http://www.gnu.org/licenses or write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA.
*
* You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
* 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License
* version 3, these Appropriate Legal Notices must retain the display of the
* "Powered by Funambol" logo. If the display of the logo is not reasonably
* feasible for technical reasons, the Appropriate Legal Notices must display
* the words "Powered by Funambol".
*/
#include "pim/WindowsSyncSourceConfig.h"
#include "base/util/utils.h"
#include "syncml/core/CTCap.h"
#include "pim/ContactBuilder.h"
#include "pim/AppointmentBuilder.h"
#include "pim/TaskBuilder.h"
#include "pim/UtilsRecurrence.h"
WindowsSyncSourceConfig::WindowsSyncSourceConfig() {
initialize();
// Please note that 's' pointer MUST be set!!
}
WindowsSyncSourceConfig::WindowsSyncSourceConfig(SyncSourceConfig* sc) {
initialize();
// Link SyncSourceConfig pointer with common properties:
if (!sc) {
//sprintf(lastErrorMsg, "WindowsSyncSourceConfig initialized with a NULL pointer!");
//throw lastErrorMsg;
setError( ERR_NULLPTR_WINDSYNCSOURCECONFIG , "WindowsSyncSourceConfig initialized with a NULL pointer!" );
throw getLastErrorMsg();
}
s = sc;
populateCTCap();
}
WindowsSyncSourceConfig::~WindowsSyncSourceConfig() {
/*if (folderPath) {
delete [] folderPath;
folderPath = NULL;
}*/
s=NULL;
}
// Return the pointer to external SyncSourceConfig object
// used for common properties.
SyncSourceConfig* WindowsSyncSourceConfig::getCommonConfig() {
return s;
}
//
// Internal properties
//
/*_declspec(dllexport) const char* WindowsSyncSourceConfig::getFolderPath() const {
return folderPath;
}
void WindowsSyncSourceConfig::setFolderPath(const char* v) {
safeDelete(&folderPath);
folderPath = stringdup(v);
}
*/
/*_declspec(dllexport) bool WindowsSyncSourceConfig::getUseSubfolders() const {
return useSubfolders;
}
void WindowsSyncSourceConfig::setUseSubfolders(bool v) {
useSubfolders = v;
}*/
/*
_declspec(dllexport) long WindowsSyncSourceConfig::getEndTimestamp() const {
return endTimestamp;
}
void WindowsSyncSourceConfig::setEndTimestamp(long v) {
endTimestamp = v;
}
*/
/*bool WindowsSyncSourceConfig::getIsSynced() const {
return isSynced;
}
void WindowsSyncSourceConfig::setIsSynced(bool v) {
isSynced = v;
}*/
/*
* Copy Constructor
*/
WindowsSyncSourceConfig::WindowsSyncSourceConfig(const WindowsSyncSourceConfig& wsc) {
if (&wsc == this) {
return;
}
initialize();
// WARNING! pointer to the same object!
s = wsc.s;
populateCTCap();
//setFolderPath (wsc.getFolderPath ());
//setUseSubfolders (wsc.getUseSubfolders ());
//setEndTimestamp (wsc.getEndTimestamp ());
//setIsSynced (wsc.getIsSynced ());
}
/*
* Operator =
*/
WindowsSyncSourceConfig& WindowsSyncSourceConfig::operator = (const WindowsSyncSourceConfig& wsc) {
initialize();
// WARNING! pointer to the same object!
s = wsc.s;
//setFolderPath (wsc.getFolderPath ());
//setUseSubfolders (wsc.getUseSubfolders ());
//setEndTimestamp (wsc.getEndTimestamp ());
//setIsSynced (wsc.getIsSynced ());
populateCTCap();
return *this;
}
/**
* Assign the internal SyncSourceConfig* pointer.
*/
void WindowsSyncSourceConfig::setCommonConfig(SyncSourceConfig* sc) {
s = sc;
populateCTCap();
}
// Initialize members
void WindowsSyncSourceConfig::initialize() {
s = NULL;
//folderPath = NULL;
//useSubfolders = false;
//endTimestamp = 0;
//isSynced = false;
}
__declspec(dllexport) const string& WindowsSyncSourceConfig::getSyncDir() const {
return dir;
}
const string& WindowsSyncSourceConfig::getUseSif() const {
return useSif;
}
void WindowsSyncSourceConfig::populateCTCap(){
if (strcmp ( s->getName(), "contact" ) == 0){
//adding sif
ArrayList* p = getContactProperties();
s->addCtCap(p);
//adding vcard
p = getVCardProperties();
s->addCtCap(p, "text/x-vcard", "2.1");
}
if (strcmp ( s->getName(), "calendar" ) == 0){
//adding sif
ArrayList* p = getAppointmentProperties();
p->add(getRecurrenceProperties());
Property prop;
prop.setPropName("Exceptions");
p->add(prop);
s->addCtCap(p);
//adding vcalendar
p = getVCalendarProperties();
s->addCtCap(p, "text/x-vcalendar", "1.0");
}
if (strcmp ( s->getName(), "task" ) == 0){
//adding sif
ArrayList* p = getTaskProperties();
p->add(getRecurrenceProperties());
s->addCtCap(p);
//adding vTodo
p = getVTodoProperties();
s->addCtCap(p, "text/x-vcalendar", "1.0");
}
if (strcmp ( s->getName(), "note" ) == 0){
ArrayList* p = new ArrayList();
//adding sif
Property subject,body;
subject.setPropName("Subject");
body.setPropName("Body");
p->add(subject);
p->add(body);
s->addCtCap(p);
p->clear();
//adding vNote
Property pval;
subject.setPropName("SUBJECT");
body.setPropName("BODY");
ArrayList valenums;
StringBuffer val;
pval.setPropName("BEGIN");
val = "VNOTE";
valenums.add(val);
pval.setValEnums(&valenums);
p->add(pval);
valenums.clear();
pval.setPropName("END");
val = "VNOTE";
valenums.add(val);
pval.setValEnums(&valenums);
p->add(pval);
valenums.clear();
pval.setPropName("VERSION");
val = "1.1";
valenums.add(val);
pval.setValEnums(&valenums);
p->add(pval);
p->add(subject);
p->add(body);
s->addCtCap(p, "text/x-vnote", "1.1");
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?