QGpgME 16.1.0.0000485
Qt API for GpgME
dataprovider.h
1/* dataprovider.h
2 Copyright (C) 2004 Klarälvdalens Datakonsult AB
3 Copyright (c) 2016 by Bundesamt für Sicherheit in der Informationstechnik
4 Software engineering by Intevation GmbH
5
6 This file is part of QGPGME.
7
8 QGPGME is free software; you can redistribute it and/or modify it
9 under the terms of the GNU Library General Public License as published
10 by the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12
13 QGPGME is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU Library General Public License for more details.
17
18 You should have received a copy of the GNU Library General Public License
19 along with QGPGME; see the file COPYING.LIB. If not, write to the
20 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
22
23// -*- c++ -*-
24#ifndef __QGPGME_DATAPROVIDER_H__
25#define __QGPGME_DATAPROVIDER_H__
26
27#include "qgpgme_export.h"
28#include <interfaces/dataprovider.h>
29#include <memory>
30
31#include <QtCore/QByteArray>
32
33
34class QIODevice;
35
36namespace QGpgME
37{
38
39class QGPGME_EXPORT QByteArrayDataProvider : public GpgME::DataProvider
40{
41public:
43 explicit QByteArrayDataProvider(const QByteArray &initialData);
45
46 const QByteArray &data() const
47 {
48 return mArray;
49 }
50
51private:
52 // these shall only be accessed through the dataprovider
53 // interface, where they're public:
54 bool isSupported(Operation) const override
55 {
56 return true;
57 }
58 ssize_t read(void *buffer, size_t bufSize) override;
59 ssize_t write(const void *buffer, size_t bufSize) override;
60 off_t seek(off_t offset, int whence) override;
61 void release() override;
62
63private:
64 QByteArray mArray;
65 off_t mOff;
66};
67
68class QGPGME_EXPORT QIODeviceDataProvider : public GpgME::DataProvider
69{
70public:
71 explicit QIODeviceDataProvider(const std::shared_ptr<QIODevice> &initialData);
73
74 const std::shared_ptr<QIODevice> &ioDevice() const
75 {
76 return mIO;
77 }
78
79private:
80 // these shall only be accessed through the dataprovider
81 // interface, where they're public:
82 bool isSupported(Operation) const override;
83 ssize_t read(void *buffer, size_t bufSize) override;
84 ssize_t write(const void *buffer, size_t bufSize) override;
85 off_t seek(off_t offset, int whence) override;
86 void release() override;
87
88private:
89 const std::shared_ptr<QIODevice> mIO;
90 bool mErrorOccurred : 1;
91 bool mHaveQProcess : 1;
92};
93
94} // namespace QGpgME
95
96#endif
Definition: dataprovider.h:40
Definition: dataprovider.h:69