1 /*
2  *   SPDX-FileCopyrightText: 2013 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
3  *
4  *   SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5  */
6 
7 #ifndef SNAPTRANSACTION_H
8 #define SNAPTRANSACTION_H
9 
10 #include <QPointer>
11 #include <Transaction/Transaction.h>
12 #include <resources/AbstractResource.h>
13 
14 class SnapResource;
15 class QSnapdRequest;
16 class QSnapdClient;
17 
18 class SnapTransaction : public Transaction
19 {
20     Q_OBJECT
21 public:
22     SnapTransaction(QSnapdClient *client, SnapResource *app, Role role, AbstractResource::State newState);
23 
24     void cancel() override;
25     void proceed() override;
26 
27 private Q_SLOTS:
28     void finishTransaction();
29 
30 private:
31     void setRequest(QSnapdRequest *req);
32     void progressed();
33 
34     QSnapdClient *const m_client;
35     SnapResource *const m_app;
36     QScopedPointer<QSnapdRequest> m_request;
37     const AbstractResource::State m_newState;
38 };
39 
40 #endif // SNAPTRANSACTION_H
41