File indexing completed on 2024-06-02 05:24:45

0001 /* -*- mode: c++; c-basic-offset:4 -*-
0002     uiserver/assuanserverconnection.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 <QObject>
0013 
0014 #include <assuan.h> // for assuan_fd_t
0015 
0016 #include <utils/pimpl_ptr.h>
0017 
0018 #include <memory>
0019 #include <string>
0020 #include <vector>
0021 
0022 namespace Kleo
0023 {
0024 
0025 class AssuanCommandFactory;
0026 
0027 class AssuanServerConnection : public QObject
0028 {
0029     Q_OBJECT
0030 public:
0031     AssuanServerConnection(assuan_fd_t fd, const std::vector<std::shared_ptr<AssuanCommandFactory>> &factories, QObject *parent = nullptr);
0032     ~AssuanServerConnection() override;
0033 
0034 public Q_SLOTS:
0035     void enableCryptoCommands(bool enable = true);
0036 
0037 Q_SIGNALS:
0038     void closed(Kleo::AssuanServerConnection *which);
0039     void startKeyManagerRequested();
0040     void startConfigDialogRequested();
0041 
0042 public:
0043     class Private;
0044 
0045 private:
0046     kdtools::pimpl_ptr<Private> d;
0047 };
0048 
0049 }