libkcal Library API Documentation

resourcecached.h

00001  /*
00002     This file is part of libkcal.
00003 
00004     Copyright (c) 2003,2004 Cornelius Schumacher <schumacher@kde.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 #ifndef KCAL_RESOURCECACHED_H
00022 #define KCAL_RESOURCECACHED_H
00023 
00024 #include "resourcecalendar.h"
00025 
00026 #include "incidence.h"
00027 #include "calendarlocal.h"
00028 
00029 #include <kconfig.h>
00030 
00031 #include <qptrlist.h>
00032 #include <qstring.h>
00033 #include <qdatetime.h>
00034 #include <qtimer.h>
00035 
00036 namespace KCal {
00037 
00042 class ResourceCached : public ResourceCalendar,
00043                        public KCal::Calendar::Observer
00044 {
00045     Q_OBJECT
00046   public:
00052     enum { ReloadNever, ReloadOnStartup, ReloadInterval };
00058     enum { SaveNever, SaveOnExit, SaveInterval, SaveDelayed, SaveAlways };
00059   
00060     ResourceCached( const KConfig * );
00061     virtual ~ResourceCached();
00062 
00063     void readConfig( const KConfig *config );
00064     void writeConfig( KConfig *config );
00065 
00073     void setReloadPolicy( int policy );
00079     int reloadPolicy() const;
00080 
00085     void setReloadInterval( int minutes );
00086 
00090     int reloadInterval() const;
00091 
00101     void setSavePolicy( int policy );
00107     int savePolicy() const;
00108 
00113     void setSaveInterval( int minutes );
00114 
00118     int saveInterval() const;
00119 
00123     void setLastLoad( const QDateTime & );
00127     QDateTime lastLoad() const;
00128 
00132     void setLastSave( const QDateTime & );
00136     QDateTime lastSave() const;
00137 
00141     bool addEvent(Event *anEvent);
00145     void deleteEvent(Event *);
00146 
00150     Event *event(const QString &UniqueStr);
00154     Event::List events();
00158     Event::List rawEvents();
00163     Event::List rawEventsForDate( const QDate &date, bool sorted = false );
00167     Event::List rawEventsForDate( const QDateTime &qdt );
00172     Event::List rawEvents( const QDate &start, const QDate &end,
00173                                bool inclusive = false );
00174   
00175 
00179     bool addTodo( Todo *todo );
00183     void deleteTodo( Todo * );
00188     Todo *todo( const QString &uid );
00192     Todo::List rawTodos();
00196     Todo::List rawTodosForDate( const QDate &date );
00200     virtual bool addJournal( Journal * );
00204     virtual void deleteJournal( Journal * );
00208     virtual Journal *journal( const QDate & );
00212     virtual Journal *journal( const QString &uid );
00216     Journal::List journals();
00217 
00221     Alarm::List alarms( const QDateTime &from, const QDateTime &to );
00222 
00226     Alarm::List alarmsTo( const QDateTime &to );
00227 
00231     void setTimeZoneId( const QString& tzid );
00232   
00233     QString timeZoneId() const;
00234 
00235     void enableChangeNotification();
00236     void disableChangeNotification();
00237 
00238     void clearChange( Incidence * );
00239 
00240     void clearChanges();
00241 
00242     bool hasChanges() const;
00243   
00244     Incidence::List allChanges() const;
00245 
00246     Incidence::List addedIncidences() const;
00247     Incidence::List changedIncidences() const;
00248     Incidence::List deletedIncidences() const;
00249 
00250   protected:
00251     // From Calendar::Observer
00252     void calendarIncidenceAdded( KCal::Incidence * );
00253     void calendarIncidenceChanged( KCal::Incidence * );
00254     void calendarIncidenceDeleted( KCal::Incidence * );
00255 
00256     CalendarLocal mCalendar;
00257 
00261     bool checkForReload();
00265     bool checkForSave();
00266 
00267     void checkForAutomaticSave();
00268 
00269     void addInfoText( QString & ) const;
00270 
00271     void setupSaveTimer();
00272     void setupReloadTimer();
00273 
00274   protected slots:
00275     void slotReload();
00276     void slotSave();
00277 
00278   private:
00279     int mReloadPolicy;
00280     int mReloadInterval;
00281     QTimer mReloadTimer;
00282     bool mReloaded;
00283 
00284     int mSavePolicy;
00285     int mSaveInterval;
00286     QTimer mSaveTimer;
00287 
00288     QDateTime mLastLoad;
00289     QDateTime mLastSave;
00290 
00291     QMap<KCal::Incidence *,bool> mAddedIncidences;
00292     QMap<KCal::Incidence *,bool> mChangedIncidences;
00293     QMap<KCal::Incidence *,bool> mDeletedIncidences;
00294 
00295     class Private;
00296     Private *d;
00297 };
00298 
00299 }
00300 
00301 #endif
KDE Logo
This file is part of the documentation for libkcal Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 17 09:52:51 2007 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003