~andreas-pokorny/telepathy-ofono/control-proximity-handling-in-powerd

55.2.3 by Tiago Salem Herrmann
move database methods to a separate class: PendingMessagesManager
1
/**
2
 * Copyright (C) 2013 Canonical, Ltd.
3
 *
4
 * This program is free software: you can redistribute it and/or modify it under
5
 * the terms of the GNU Lesser General Public License version 3, as published by
6
 * the Free Software Foundation.
7
 *
8
 * This program is distributed in the hope that it will be useful, but WITHOUT
9
 * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10
 * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11
 * Lesser General Public License for more details.
12
 *
13
 * You should have received a copy of the GNU Lesser General Public License
14
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 *
16
 * Authors: Tiago Salem Herrmann <tiago.herrmann@canonical.com>
17
 */
18
19
#include <QDateTime>
20
#include <QSqlDatabase>
21
22
struct PendingMessage
23
{
24
    QString recipientId;
25
    QDateTime timestamp;
26
};
27
28
29
class PendingMessagesManager : public QObject
30
{
31
    Q_OBJECT
32
public:
33
    static PendingMessagesManager *instance();
34
35
    void addPendingMessage(const QString &objectPath, const QString &id);
36
    void removePendingMessage(const QString &objectPath);
37
    QString recipientIdForMessageId(const QString &messageId);
38
private:
39
    explicit PendingMessagesManager(QObject *parent = 0);
40
    QSqlDatabase mDatabase;
41
};