diff options
author | Ingo Klöcker <[email protected]> | 2022-05-02 13:50:18 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2022-05-02 13:51:44 +0000 |
commit | 34786132fed0a776d4cd314c44ed62e29ff75328 (patch) | |
tree | 9feb3dab8661d44e3461e1722d723b91505d4eef /lang/cpp/src/context.cpp | |
parent | qt: Add debug helper for Result classes with output stream operator (diff) | |
download | gpgme-34786132fed0a776d4cd314c44ed62e29ff75328.tar.gz gpgme-34786132fed0a776d4cd314c44ed62e29ff75328.zip |
cpp: Add RAII class for saving/restoring the key list mode
* lang/cpp/src/context.h, lang/cpp/src/context.cpp (class Context):
Add nested class KeyListModeSaver.
--
This RAII-style class can be used to save the currently used key list
mode in case it needs to be changed temporarily. On destruction, it
will restore the key list mode that was active at construction time.
GnuPG-bug-id: 5951
Diffstat (limited to 'lang/cpp/src/context.cpp')
-rw-r--r-- | lang/cpp/src/context.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp index 89bc3fd7..568e0458 100644 --- a/lang/cpp/src/context.cpp +++ b/lang/cpp/src/context.cpp @@ -195,6 +195,19 @@ std::ostream &operator<<(std::ostream &os, const Error &err) return os << "GpgME::Error(" << err.encodedError() << " (" << err.asString() << "))"; } +Context::KeyListModeSaver::KeyListModeSaver(Context *ctx) + : mCtx{ctx} + , mKeyListMode{ctx ? ctx->keyListMode() : 0} +{ +} + +Context::KeyListModeSaver::~KeyListModeSaver() +{ + if (mCtx) { + mCtx->setKeyListMode(mKeyListMode); + } +} + Context::Context(gpgme_ctx_t ctx) : d(new Private(ctx)) { } |