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