~ubuntu-branches/ubuntu/saucy/kdepimlibs/saucy-proposed

« back to all changes in this revision

Viewing changes to akonadi/calendar/freebusymanager_p.h

  • Committer: Package Import Robot
  • Author(s): Philip Muškovac
  • Date: 2014-01-16 14:37:08 UTC
  • mfrom: (1.3.3)
  • Revision ID: package-import@ubuntu.com-20140116143708-to5k8l8il6534d0f
Tags: 4:4.11.5-0ubuntu0.1
New upstream bugfix release (LP: #1266285)

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
 
45
45
class FreeBusyManagerPrivate : public QObject
46
46
{
47
 
  Q_OBJECT
 
47
    Q_OBJECT
48
48
 
49
 
  FreeBusyManager *const q_ptr;
50
 
  Q_DECLARE_PUBLIC( FreeBusyManager )
 
49
    FreeBusyManager *const q_ptr;
 
50
    Q_DECLARE_PUBLIC(FreeBusyManager)
51
51
 
52
52
public: /// Structs
53
 
  struct FreeBusyProviderRequest
54
 
  {
55
 
    FreeBusyProviderRequest( const QString &provider );
56
 
 
57
 
    enum Status {
58
 
      NotStarted,
59
 
      HandlingRequested,
60
 
      FreeBusyRequested
61
 
    };
62
 
 
63
 
    Status mRequestStatus;
64
 
    QSharedPointer<QDBusInterface> mInterface;
65
 
  };
66
 
 
67
 
  struct FreeBusyProvidersRequestsQueue
68
 
  {
69
 
    explicit FreeBusyProvidersRequestsQueue( const QString &start = QString(),
70
 
                                              const QString &end = QString() );
71
 
 
72
 
    FreeBusyProvidersRequestsQueue( const KDateTime &start, const KDateTime &end );
73
 
 
74
 
    QString mStartTime;
75
 
    QString mEndTime;
76
 
    QList<FreeBusyProviderRequest> mRequests;
77
 
    int mHandlersCount;
78
 
    KCalCore::FreeBusy::Ptr mResultingFreeBusy;
79
 
  };
 
53
    struct FreeBusyProviderRequest
 
54
    {
 
55
        FreeBusyProviderRequest(const QString &provider);
 
56
 
 
57
        enum Status {
 
58
            NotStarted,
 
59
            HandlingRequested,
 
60
            FreeBusyRequested
 
61
        };
 
62
 
 
63
        Status mRequestStatus;
 
64
        QSharedPointer<QDBusInterface> mInterface;
 
65
    };
 
66
 
 
67
    struct FreeBusyProvidersRequestsQueue
 
68
    {
 
69
        explicit FreeBusyProvidersRequestsQueue(const QString &start = QString(),
 
70
                                                const QString &end = QString());
 
71
 
 
72
        FreeBusyProvidersRequestsQueue(const KDateTime &start, const KDateTime &end);
 
73
 
 
74
        QString mStartTime;
 
75
        QString mEndTime;
 
76
        QList<FreeBusyProviderRequest> mRequests;
 
77
        int mHandlersCount;
 
78
        KCalCore::FreeBusy::Ptr mResultingFreeBusy;
 
79
    };
80
80
 
81
81
public:
82
 
  Akonadi::ETMCalendar::Ptr mCalendar;
83
 
  KCalCore::ICalFormat mFormat;
84
 
 
85
 
  QStringList mRetrieveQueue;
86
 
  QMap<KUrl, QString> mFreeBusyUrlEmailMap;
87
 
  QMap<QString, FreeBusyProvidersRequestsQueue> mProvidersRequestsByEmail;
88
 
 
89
 
  // Free/Busy uploading
90
 
  QDateTime mNextUploadTime;
91
 
  int mTimerID;
92
 
  bool mUploadingFreeBusy;
93
 
  bool mBrokenUrl;
94
 
 
95
 
  QPointer<QWidget > mParentWidgetForMailling;
96
 
 
97
 
  // the parentWidget to use while doing our "recursive" retrieval
98
 
  QPointer<QWidget>  mParentWidgetForRetrieval;
 
82
    Akonadi::ETMCalendar::Ptr mCalendar;
 
83
    KCalCore::ICalFormat mFormat;
 
84
 
 
85
    QStringList mRetrieveQueue;
 
86
    QMap<KUrl, QString> mFreeBusyUrlEmailMap;
 
87
    QMap<QString, FreeBusyProvidersRequestsQueue> mProvidersRequestsByEmail;
 
88
 
 
89
    // Free/Busy uploading
 
90
    QDateTime mNextUploadTime;
 
91
    int mTimerID;
 
92
    bool mUploadingFreeBusy;
 
93
    bool mBrokenUrl;
 
94
 
 
95
    QPointer<QWidget > mParentWidgetForMailling;
 
96
 
 
97
    // the parentWidget to use while doing our "recursive" retrieval
 
98
    QPointer<QWidget>  mParentWidgetForRetrieval;
99
99
 
100
100
public: /// Functions
101
 
  FreeBusyManagerPrivate( FreeBusyManager *q );
102
 
  void checkFreeBusyUrl();
103
 
  QString freeBusyDir() const;
104
 
  void fetchFreeBusyUrl( const QString &email );
105
 
  QString freeBusyToIcal( const KCalCore::FreeBusy::Ptr & );
106
 
  KCalCore::FreeBusy::Ptr iCalToFreeBusy( const QByteArray &freeBusyData );
107
 
  KCalCore::FreeBusy::Ptr ownerFreeBusy();
108
 
  QString ownerFreeBusyAsString();
109
 
  void processFreeBusyDownloadResult( KJob *_job );
110
 
  void processFreeBusyUploadResult( KJob *_job );
111
 
  void uploadFreeBusy();
112
 
  QStringList getFreeBusyProviders() const;
113
 
  void queryFreeBusyProviders( const QStringList &providers, const QString &email );
114
 
  void queryFreeBusyProviders( const QStringList &providers, const QString &email,
115
 
                                const KDateTime &start, const KDateTime &end );
 
101
    FreeBusyManagerPrivate(FreeBusyManager *q);
 
102
    void checkFreeBusyUrl();
 
103
    QString freeBusyDir() const;
 
104
    void fetchFreeBusyUrl(const QString &email);
 
105
    QString freeBusyToIcal(const KCalCore::FreeBusy::Ptr &);
 
106
    KCalCore::FreeBusy::Ptr iCalToFreeBusy(const QByteArray &freeBusyData);
 
107
    KCalCore::FreeBusy::Ptr ownerFreeBusy();
 
108
    QString ownerFreeBusyAsString();
 
109
    void processFreeBusyDownloadResult(KJob *_job);
 
110
    void processFreeBusyUploadResult(KJob *_job);
 
111
    void uploadFreeBusy();
 
112
    QStringList getFreeBusyProviders() const;
 
113
    void queryFreeBusyProviders(const QStringList &providers, const QString &email);
 
114
    void queryFreeBusyProviders(const QStringList &providers, const QString &email,
 
115
                                const KDateTime &start, const KDateTime &end);
116
116
 
117
117
public slots:
118
 
  void processRetrieveQueue();
119
 
  void contactSearchJobFinished( KJob *_job );
120
 
  void finishProcessRetrieveQueue( const QString &email, const KUrl &url );
121
 
  void onHandlesFreeBusy( const QString &email, bool handles );
122
 
  void onFreeBusyRetrieved( const QString &email, const QString &freeBusy,
123
 
                            bool success, const QString &errorText );
124
 
  void processMailSchedulerResult( Akonadi::Scheduler::Result result, const QString &errorMsg );
125
 
  void fbCheckerJobFinished( KJob* );
 
118
    void processRetrieveQueue();
 
119
    void contactSearchJobFinished(KJob *_job);
 
120
    void finishProcessRetrieveQueue(const QString &email, const KUrl &url);
 
121
    void onHandlesFreeBusy(const QString &email, bool handles);
 
122
    void onFreeBusyRetrieved(const QString &email, const QString &freeBusy,
 
123
                             bool success, const QString &errorText);
 
124
    void processMailSchedulerResult(Akonadi::Scheduler::Result result, const QString &errorMsg);
 
125
    void fbCheckerJobFinished(KJob*);
126
126
 
127
127
signals:
128
 
  void freeBusyUrlRetrieved( const QString &email, const KUrl &url );
 
128
    void freeBusyUrlRetrieved(const QString &email, const KUrl &url);
129
129
};
130
130
 
131
131
class FbCheckerJob : public KJob
132
132
{
133
 
  Q_OBJECT
 
133
    Q_OBJECT
134
134
public:
135
 
  explicit FbCheckerJob( const QList<KUrl> &urlsToCheck, QObject *parent = 0 );
136
 
  virtual void start();
 
135
    explicit FbCheckerJob(const QList<KUrl> &urlsToCheck, QObject *parent = 0);
 
136
    virtual void start();
137
137
 
138
 
  KUrl validUrl() const;
 
138
    KUrl validUrl() const;
139
139
 
140
140
private slots:
141
 
  void onGetJobFinished( KJob *job );
142
 
  void dataReceived( KIO::Job *, const QByteArray &data );
 
141
    void onGetJobFinished(KJob *job);
 
142
    void dataReceived(KIO::Job *, const QByteArray &data);
143
143
 
144
144
private:
145
 
  void checkNextUrl();
146
 
  QList<KUrl> mUrlsToCheck;
147
 
  QByteArray mData;
148
 
  KUrl mValidUrl;
 
145
    void checkNextUrl();
 
146
    QList<KUrl> mUrlsToCheck;
 
147
    QByteArray mData;
 
148
    KUrl mValidUrl;
149
149
};
150
150
 
151
151
}