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