From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- libkpimexchange/core/exchangemonitor.h | 106 +++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 libkpimexchange/core/exchangemonitor.h (limited to 'libkpimexchange/core/exchangemonitor.h') diff --git a/libkpimexchange/core/exchangemonitor.h b/libkpimexchange/core/exchangemonitor.h new file mode 100644 index 000000000..f1429ba4e --- /dev/null +++ b/libkpimexchange/core/exchangemonitor.h @@ -0,0 +1,106 @@ +/* + This file is part of libkpimexchange + Copyright (c) 2002 Jan-Pascal van Best + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef KDEPIM_EXCHANGE_MONITOR_H +#define KDEPIM_EXCHANGE_MONITOR_H + +#include +#include +//#include +#include + +#include +#include + +#include +#include + +class QSocketDevice; +class QSocketNotifier; +class QTextStream; + +namespace KPIM { + +class ExchangeAccount; + +class ExchangeMonitor : public QObject { + Q_OBJECT + public: + typedef long ID; + typedef QValueList IDList; + + enum { CallBack, Poll }; + enum { Delete, /** Any: 0 The message or folder subscribed to was deleted. + Folder 1 A message or folder was deleted from the folder. */ + Move, /** Any: 0 The message or folder was moved. + Folder 1 A message or folder was moved from or to the folder. */ + Newmail, /** Mailbox or Folder Any Special new mail update. + Message Any Not valid - return 400 (Bad Request). */ + Update, /** Message 0 The message was modified (either properties or body). + Folder 0 Properties of the folder were modified. + Folder 1 A message or sub-folder was created in the folder, copied to + the folder, moved to or from the folder, deleted from the folder, + modified in the folder, or the folder properties were modified. */ + UpdateNewMember, /** Any 0 Not valid - return 400 (Bad Request). + Existing Folder 1 A message or sub-folder was created in the folder, copied to + the folder, or moved to the folder. */ + Any /** Message 1 Treat as depth = 0. */ + }; + + ExchangeMonitor( ExchangeAccount* account, int pollMode, const QHostAddress& ownInterface ); + ~ExchangeMonitor(); + void addWatch( const KURL &url, int mode, int depth ); + void removeWatch( const KURL &url ); + void removeWatch( ID id ); + + signals: + void notify( const QValueList& IDs, const QValueList& urls ); +// void added( ID id, const KURL& url ); +// void removed( ID id, const KURL& url ); + + void error( int result, const QString& moreInfo ); + + private slots: + void slotSubscribeResult( KIO::Job * ); + void slotUnsubscribeResult( KIO::Job * ); + void slotPollTimer(); + void poll( const IDList& IDs ); + void slotPollResult( KIO::Job * ); + void slotRenewTimer(); + void slotRenewResult( KIO::Job * ); + void slotActivated(int socket); + + private: +// void init(); + + QMap mSubscriptionMap; + QSocketDevice *mSocket; + QSocketNotifier* mNotifier; + QTextStream *mStream; + ExchangeAccount* mAccount; + int mSubscriptionLifetime; + // QString mSubscriptionId; + QTimer* mPollTimer; + QTimer* mRenewTimer; + int mPollMode; +}; + +} + +#endif -- cgit v1.2.1