File indexing completed on 2024-06-16 04:55:57

0001 /* -*- mode: c++; c-basic-offset:4 -*-
0002     crypto/encryptemailtask.h
0003 
0004     This file is part of Kleopatra, the KDE keymanager
0005     SPDX-FileCopyrightText: 2007 Klarälvdalens Datakonsult AB
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #pragma once
0011 
0012 #include <crypto/task.h>
0013 
0014 #include <utils/pimpl_ptr.h>
0015 
0016 #include <gpgme++/global.h>
0017 
0018 #include <memory>
0019 #include <vector>
0020 
0021 namespace GpgME
0022 {
0023 class Key;
0024 }
0025 
0026 namespace Kleo
0027 {
0028 class Input;
0029 class Output;
0030 }
0031 
0032 namespace Kleo
0033 {
0034 namespace Crypto
0035 {
0036 
0037 class EncryptEMailTask : public Task
0038 {
0039     Q_OBJECT
0040 public:
0041     explicit EncryptEMailTask(QObject *parent = nullptr);
0042     ~EncryptEMailTask() override;
0043 
0044     void setInput(const std::shared_ptr<Input> &input);
0045     void setOutput(const std::shared_ptr<Output> &output);
0046     void setRecipients(const std::vector<GpgME::Key> &recipients);
0047 
0048     GpgME::Protocol protocol() const override;
0049 
0050     void cancel() override;
0051     QString label() const override;
0052 
0053 private:
0054     void doStart() override;
0055     unsigned long long inputSize() const override;
0056 
0057 private:
0058     class Private;
0059     kdtools::pimpl_ptr<Private> d;
0060     Q_PRIVATE_SLOT(d, void slotResult(const GpgME::EncryptionResult &))
0061 };
0062 
0063 }
0064 }