aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/README
diff options
context:
space:
mode:
Diffstat (limited to 'lang/cpp/README')
-rw-r--r--lang/cpp/README101
1 files changed, 0 insertions, 101 deletions
diff --git a/lang/cpp/README b/lang/cpp/README
deleted file mode 100644
index 16c9a4a1..00000000
--- a/lang/cpp/README
+++ /dev/null
@@ -1,101 +0,0 @@
-GpgMEpp - C++ bindings/wrapper for GPGME
-----------------------------------------
-Based on KF5gpgmepp
-
-Overview
---------
-
-GpgMEpp is a C++ wrapper (or C++ bindings) for the GnuPG project's
-gpgme (GnuPG Made Easy) library, version 0.4.4 and later.
-
-It is fairly complete, with some minor things still missing (in
-particular, the key edit interface).
-
-The design principles of this library are as follows:
-
-1. A value-based interface (most clases are implicitly shared)
-2. Callbacks are replaced by C++ interfaces (classes with only
- abstract methods).
-3. No exceptions are thrown
-4. There is (as yet) no explicit support for multi-threaded use
- (other than what gpgme itself provides; most notably the
- refcounting for implicit sharing is not thread-safe)
-5. To avoid binary incompatible interface changes, we make
- extensive use of the d-pointer pattern and avoid virtual
- methods; any polymorphism present is already provided by gpgme
- itself, anyway (see e.g. Data). A notable exception of the
- no-virtuals rule is the use of abstract classes to cover
- C-callbacks.
-6. Use of STL containers for improved memory management and
- dealing with lists.
-7. Complete abstraction of the C-API so "gpgme.h" should not
- be needed in your project using GpgME++.
-8. Abstraction of GnuPG's edit-key interface by prepared
- Editinteractor classes.
-
-GpgMEpp was originally developed as part of the KDEPIM community.
-
-Usage
------
-
-The usage pattern of GpgMEpp closely follows GPGMEs core usage
-pattern so the documentation for GPGME itself provides a good
-way to start.
-
-The context structure in GPGME is mapped to a Context object in
-GpgMEpp. Additional convenience code provides Data objects and
-a Dataprovider interface that can be used to implement GPGME's
-data with any subclass by implementing the right callbacks.
-
-EditInteractor subclasses provide ready to use classes for
-common --edit-key tasks. You can implement your own editinteractor
-classes by implementing the EditInteractor interface and using
-your subclass as an interactor in the edit function.
-
-Example to set the ownertrust of a key:
-
- /* Create an edit interactor */
- EditInteractor *ei = new GpgSetOwnerTrustEditInteractor(Key::Ultimate);
- /* Obtain a Context */
- Context *ctx = Context::createForProtocol(Protocol::OpenPGP);
- /* Create an in memory data object */
- Data data;
- /* Start the edit on some key previously obtained. */
- Error e = ctx->edit(key, std::unique_ptr<EditInteractor>(ei), data);
- /* Errors provide boolean comparison */
- if (!e)
- ...
- /* Delete the context */
- delete ctx;
-
-Examples / Tests
-----------------
-
-GpgMEpp is tested through the Qt API. You can refer to the
-tests in qt/tests for examples of usage or refer to
-the actual QGpgME*Job.cpp implementations which rely
-on GpgMEpp and should cover most use cases.
-
-Hacking
--------
-
-GpgMEpp follows KDE Coding styles. See:
-https://techbase.kde.org/Policies/Frameworks_Coding_Style
-for more info.
-
-License
--------
-GPGMEpp is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-GPGMEpp is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public License
-along with GPGME++; see the file COPYING.LIB. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.