21 #ifndef AKONADI_FREEBUSYMANAGER_P_H
22 #define AKONADI_FREEBUSYMANAGER_P_H
24 #include "etmcalendar.h"
25 #include "mailscheduler_p.h"
27 #include <kcalcore/freebusy.h>
28 #include <kcalcore/icalformat.h>
30 #include <QtCore/QPointer>
31 #include <QtDBus/QDBusContext>
32 #include <QtDBus/QDBusInterface>
38 class FreeBusyManager;
40 class FreeBusyManagerPrivate :
public QObject
44 FreeBusyManager *
const q_ptr;
45 Q_DECLARE_PUBLIC( FreeBusyManager )
50 FreeBusyProviderRequest(
const QString &provider );
58 Status mRequestStatus;
59 QSharedPointer<QDBusInterface> mInterface;
62 struct FreeBusyProvidersRequestsQueue
64 explicit FreeBusyProvidersRequestsQueue(
const QString &start = QString(),
65 const QString &end = QString() );
67 FreeBusyProvidersRequestsQueue(
const KDateTime &start,
const KDateTime &end );
71 QList<FreeBusyProviderRequest> mRequests;
73 KCalCore::FreeBusy::Ptr mResultingFreeBusy;
77 Akonadi::ETMCalendar::Ptr mCalendar;
78 KCalCore::ICalFormat mFormat;
80 QStringList mRetrieveQueue;
81 QMap<KUrl, QString> mFreeBusyUrlEmailMap;
82 QMap<QString, FreeBusyProvidersRequestsQueue> mProvidersRequestsByEmail;
85 QDateTime mNextUploadTime;
87 bool mUploadingFreeBusy;
90 QPointer<QWidget > mParentWidgetForMailling;
93 QPointer<QWidget> mParentWidgetForRetrieval;
96 FreeBusyManagerPrivate( FreeBusyManager *q );
97 void checkFreeBusyUrl();
98 QString freeBusyDir()
const;
99 void fetchFreeBusyUrl(
const QString &email );
100 QString freeBusyToIcal(
const KCalCore::FreeBusy::Ptr & );
101 KCalCore::FreeBusy::Ptr iCalToFreeBusy(
const QByteArray &freeBusyData );
102 KCalCore::FreeBusy::Ptr ownerFreeBusy();
103 QString ownerFreeBusyAsString();
104 void processFreeBusyDownloadResult( KJob *_job );
105 void processFreeBusyUploadResult( KJob *_job );
106 void uploadFreeBusy();
107 QStringList getFreeBusyProviders()
const;
108 void queryFreeBusyProviders(
const QStringList &providers,
const QString &email );
109 void queryFreeBusyProviders(
const QStringList &providers,
const QString &email,
110 const KDateTime &start,
const KDateTime &end );
113 void processRetrieveQueue();
114 void contactSearchJobFinished( KJob *_job );
115 void finishProcessRetrieveQueue(
const QString &email,
const KUrl &url );
116 void onHandlesFreeBusy(
const QString &email,
bool handles );
117 void onFreeBusyRetrieved(
const QString &email,
const QString &freeBusy,
118 bool success,
const QString &errorText );
119 void processMailSchedulerResult( Akonadi::Scheduler::Result result,
const QString &errorMsg );
122 void freeBusyUrlRetrieved(
const QString &email,
const KUrl &url );
127 #endif // FREEBUSYMANAGER_P_H