kitchensync Library API Documentation

eventsyncee.cpp

00001 /* 00002 This file is part of KitchenSync. 00003 00004 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License as published by the Free Software Foundation; either 00009 version 2 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Library General Public License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to 00018 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00019 Boston, MA 02111-1307, USA. 00020 */ 00021 00022 #include <libkcal/calformat.h> 00023 00024 #include <kstaticdeleter.h> 00025 #include "eventsyncee.h" 00026 00027 using namespace KSync; 00028 00029 SyncEntry* EventSyncEntry::clone() 00030 { 00031 return new EventSyncEntry( *this ); 00032 } 00033 00034 EventSyncee::EventSyncee() 00035 : SyncTemplate<EventSyncEntry>(DtEnd+1) 00036 { 00037 } 00038 00039 typedef MergeBase<KCal::Event, EventSyncee> MergeEvent; 00040 static MergeEvent* mergeEventMap = 0l; 00041 static KStaticDeleter<MergeEvent> mergeEventDeleter; 00042 00043 static void mergeDtEnd( KCal::Event* const dest, const KCal::Event* src) 00044 { 00045 dest->setDtEnd( src->dtEnd() ); 00046 } 00047 00048 static MergeEvent* mapEve() 00049 { 00050 if (!mergeEventMap ) { 00051 mergeEventDeleter.setObject( mergeEventMap, new MergeEvent ); 00052 mergeEventMap->add( EventSyncee::DtEnd, mergeDtEnd ); 00053 } 00054 return mergeEventMap; 00055 } 00056 00057 bool EventSyncEntry::mergeWith( SyncEntry* entry ) 00058 { 00059 if ( entry->name() != name() || !syncee() || !entry->syncee() ) 00060 return false; 00061 EventSyncEntry* toEv = static_cast<EventSyncEntry*>(entry); 00062 QBitArray da = toEv->syncee()->bitArray(); 00063 QBitArray hier = syncee()->bitArray(); 00064 00065 for (uint i = 0; i< da.size() && i < hier.size(); i++ ) { 00066 if (da[i] && !hier[i] ) 00067 mapEve()->invoke(i, incidence(), toEv->incidence() ); 00068 } 00069 00070 return true; 00071 } 00072 00073 QString EventSyncee::type() const 00074 { 00075 return QString::fromLatin1( "EventSyncee" ); 00076 } 00077 00078 Syncee* EventSyncee::clone() 00079 { 00080 EventSyncee* temp = new EventSyncee(); 00081 temp->setSyncMode( syncMode() ); 00082 temp->setFirstSync( firstSync() ); 00083 temp->setSupports( bitArray() ); 00084 temp->setSource( source() ); 00085 EventSyncEntry* entry; 00086 for ( entry = mList.first(); entry != 0; entry = mList.next() ) { 00087 temp->addEntry( entry->clone() ); 00088 } 00089 return temp; 00090 } 00091 00092 QString EventSyncee::newId() const 00093 { 00094 return KCal::CalFormat::createUniqueId(); 00095 }
KDE Logo
This file is part of the documentation for kitchensync Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Oct 21 19:46:32 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003