resourceremote.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KCAL_RESOURCEREMOTEDIR_H
00022 #define KCAL_RESOURCEREMOTEDIR_H
00023
00024 #include <qptrlist.h>
00025 #include <qstring.h>
00026 #include <qdatetime.h>
00027
00028 #include <kurl.h>
00029 #include <kconfig.h>
00030 #include <kdirwatch.h>
00031
00032 #include "incidence.h"
00033 #include "calendarlocal.h"
00034 #include "icalformat.h"
00035
00036 #include "resourcecached.h"
00037
00038 namespace KIO {
00039 class FileCopyJob;
00040 class Job;
00041 }
00042
00043 namespace KCal {
00044
00048 class ResourceRemote : public ResourceCached
00049 {
00050 Q_OBJECT
00051
00052 friend class ResourceRemoteConfig;
00053
00054 public:
00060 enum { ReloadNever, ReloadOnStartup, ReloadOnceADay, ReloadAlways };
00061
00065 ResourceRemote( const KConfig * );
00072 ResourceRemote( const KURL &downloadUrl, const KURL &uploadUrl = KURL() );
00073 virtual ~ResourceRemote();
00074
00075 void readConfig( const KConfig *config );
00076 void writeConfig( KConfig *config );
00077
00078 void setDownloadUrl( const KURL & );
00079 KURL downloadUrl() const;
00080
00081 void setUploadUrl( const KURL & );
00082 KURL uploadUrl() const;
00083
00092 void setReloadPolicy( int policy );
00098 int reloadPolicy() const;
00099
00103 QString cacheFile();
00104
00105 bool load();
00106
00107 bool save();
00108
00109 KABC::Lock *lock();
00110
00111 bool isSaving();
00112
00113 void dump() const;
00114
00115 protected slots:
00116 void slotLoadJobResult( KIO::Job * );
00117 void slotSaveJobResult( KIO::Job * );
00118
00119 protected:
00120 bool doOpen();
00121
00123 void doClose();
00124
00128 virtual void update(IncidenceBase *incidence);
00129
00130 private:
00131 void init();
00132
00133 KURL mDownloadUrl;
00134 KURL mUploadUrl;
00135
00136 int mReloadPolicy;
00137
00138 ICalFormat mFormat;
00139
00140 bool mOpen;
00141
00142 KIO::FileCopyJob *mDownloadJob;
00143 KIO::FileCopyJob *mUploadJob;
00144
00145 KABC::Lock *mLock;
00146
00147 class Private;
00148 Private *d;
00149 };
00150
00151 }
00152
00153 #endif
This file is part of the documentation for libkcal Library Version 3.2.2.