exchangemonitor.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KDEPIM_EXCHANGE_MONITOR_H
00021 #define KDEPIM_EXCHANGE_MONITOR_H
00022
00023 #include <qstring.h>
00024 #include <qmap.h>
00025
00026 #include <qhostaddress.h>
00027
00028 #include <kurl.h>
00029 #include <kio/job.h>
00030
00031 #include <libkcal/calendar.h>
00032 #include <libkcal/event.h>
00033
00034 class QSocketDevice;
00035 class QSocketNotifier;
00036 class QTextStream;
00037
00038 namespace KPIM {
00039
00040 class ExchangeAccount;
00041
00042 class ExchangeMonitor : public QObject {
00043 Q_OBJECT
00044 public:
00045 typedef long ID;
00046 typedef QValueList<ID> IDList;
00047
00048 enum { CallBack, Poll };
00049 enum { Delete,
00051 Move,
00053 Newmail,
00055 Update,
00060 UpdateNewMember,
00063 Any
00064 };
00065
00066 ExchangeMonitor( ExchangeAccount* account, int pollMode, const QHostAddress& ownInterface );
00067 ~ExchangeMonitor();
00068 void addWatch( const KURL &url, int mode, int depth );
00069 void removeWatch( const KURL &url );
00070 void removeWatch( ID id );
00071
00072 signals:
00073 void notify( const QValueList<long>& IDs, const QValueList<KURL>& urls );
00074
00075
00076
00077 void error( int result, const QString& moreInfo );
00078
00079 private slots:
00080 void slotSubscribeResult( KIO::Job * );
00081 void slotUnsubscribeResult( KIO::Job * );
00082 void slotPollTimer();
00083 void poll( const IDList& IDs );
00084 void slotPollResult( KIO::Job * );
00085 void slotRenewTimer();
00086 void slotRenewResult( KIO::Job * );
00087 void slotActivated(int socket);
00088
00089 private:
00090
00091
00092 QMap<ID,KURL> mSubscriptionMap;
00093 QSocketDevice *mSocket;
00094 QSocketNotifier* mNotifier;
00095 QTextStream *mStream;
00096 ExchangeAccount* mAccount;
00097 int mSubscriptionLifetime;
00098
00099 QTimer* mPollTimer;
00100 QTimer* mRenewTimer;
00101 int mPollMode;
00102 };
00103
00104 }
00105
00106 #endif
This file is part of the documentation for libkpimexchange Library Version 3.2.2.