File indexing completed on 2023-12-03 08:28:33

0001 /*
0002  * Copyright (C) 2013  Daniel Vrátil <dvratil@redhat.com>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Lesser General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2.1 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Lesser General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Lesser General Public
0015  * License along with this library; if not, write to the Free Software
0016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
0017  *
0018  */
0019 
0020 #ifndef KTP_PENDINGLOGGERDATES_H
0021 #define KTP_PENDINGLOGGERDATES_H
0022 
0023 #include <KTp/Logger/pending-logger-operation.h>
0024 #include <KTp/ktpcommoninternals_export.h>
0025 
0026 #include <TelepathyQt/Types>
0027 
0028 namespace KTp {
0029 
0030 class LogEntity;
0031 
0032 /**
0033  * @brief An operation that will retrieve list of dates for which there are any
0034  *        logs in each backend and merges them together.
0035  *
0036  * The operation will emit finished(KTp::PendingLoggerOperation*) signal when
0037  * all dates were retrieved. When an error occurs in any backend hasError()
0038  * will be set to true. Use error() to retrieve the error message.
0039  *
0040  * @since 0.7
0041  * @author Daniel Vrátil <dvratil@redhat.com>
0042  */
0043 class KTPCOMMONINTERNALS_EXPORT PendingLoggerDates : public KTp::PendingLoggerOperation
0044 {
0045     Q_OBJECT
0046 
0047   public:
0048     /**
0049      * Destructor.
0050      */
0051     ~PendingLoggerDates() override;
0052 
0053     /**
0054      * Returns account for which the dates are queried.
0055      */
0056     Tp::AccountPtr account() const;
0057 
0058     /**
0059      * Returns entity for which the dates are queried.
0060      */
0061     KTp::LogEntity entity() const;
0062 
0063     /**
0064      * Returns list of retrieved dates. The list is always sort in ascending
0065      * order.
0066      */
0067     QList<QDate> dates() const;
0068 
0069   protected:
0070     explicit PendingLoggerDates(const Tp::AccountPtr &account,
0071                                 const KTp::LogEntity &entity,
0072                                 QObject *parent = nullptr);
0073 
0074     void setDates(const QList<QDate> &dates);
0075 
0076     class Private;
0077     Private * const d;
0078 };
0079 
0080 } // namespace KTp
0081 
0082 #endif // KTP_PENDINGLOGGERDATES_H