summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Heinecke <aheinecke@gnupg.org>2019-02-21 13:05:55 +0100
committerAndre Heinecke <aheinecke@gnupg.org>2019-02-21 13:05:55 +0100
commit73b2f40ae5e6881991dea609b0781373b28d7d30 (patch)
treeebb2562273dc459ae366710c74b8de21f55bb6ab
parent6175025c822678102c3f089e37952aa84b19a3ec (diff)
downloadgpgme-73b2f40ae5e6881991dea609b0781373b28d7d30.tar.gz
cpp: Add ostream operators for import result
* lang/cpp/src/importresult.cpp: Add ostream operators. * lang/cpp/src/importresult.h: Update accordingly.
-rw-r--r--lang/cpp/src/importresult.cpp42
-rw-r--r--lang/cpp/src/importresult.h5
2 files changed, 46 insertions, 1 deletions
diff --git a/lang/cpp/src/importresult.cpp b/lang/cpp/src/importresult.cpp
index 05943ca0..20a3174b 100644
--- a/lang/cpp/src/importresult.cpp
+++ b/lang/cpp/src/importresult.cpp
@@ -35,6 +35,9 @@
#include <cstring>
#include <string.h>
+#include <strings.h>
+#include <istream>
+#include <iterator>
class GpgME::ImportResult::Private
{
@@ -224,3 +227,42 @@ GpgME::Import::Status GpgME::Import::status() const
}
return static_cast<Status>(result);
}
+
+std::ostream &GpgME::operator<<(std::ostream &os,
+ const GpgME::ImportResult &result)
+{
+ os << "GpgME::ImportResult(";
+ if (!result.isNull()) {
+ os << "\n considered: " << result.numConsidered()
+ << "\n without UID: " << result.numKeysWithoutUserID()
+ << "\n imported: " << result.numImported()
+ << "\n RSA Imported: " << result.numRSAImported()
+ << "\n unchanged: " << result.numUnchanged()
+ << "\n newUserIDs: " << result.newUserIDs()
+ << "\n newSubkeys: " << result.newSubkeys()
+ << "\n newSignatures: " << result.newSignatures()
+ << "\n newRevocations: " << result.newRevocations()
+ << "\n numSecretKeysConsidered: " << result.numSecretKeysConsidered()
+ << "\n numSecretKeysImported: " << result.numSecretKeysImported()
+ << "\n numSecretKeysUnchanged: " << result.numSecretKeysUnchanged()
+ << "\n"
+ << "\n notImported: " << result.notImported()
+ << "\n numV3KeysSkipped: " << result.numV3KeysSkipped()
+ << "\n imports:\n";
+ const std::vector<Import> imp = result.imports();
+ std::copy(imp.begin(), imp.end(),
+ std::ostream_iterator<Import>(os, "\n"));
+ }
+ return os << ')';
+}
+
+std::ostream &GpgME::operator<<(std::ostream &os, const GpgME::Import &imp)
+{
+ os << "GpgME::Import(";
+ if (!imp.isNull()) {
+ os << "\n fpr: " << (imp.fingerprint() ? imp.fingerprint() : "null")
+ << "\n status: " << imp.status()
+ << "\n err: " << imp.error();
+ }
+ return os << ')';
+}
diff --git a/lang/cpp/src/importresult.h b/lang/cpp/src/importresult.h
index 05476796..bcd956c3 100644
--- a/lang/cpp/src/importresult.h
+++ b/lang/cpp/src/importresult.h
@@ -129,7 +129,10 @@ private:
unsigned int idx;
};
-}
+GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const ImportResult &irs);
+GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const Import &imp);
+
+} // namespace GpgME
GPGMEPP_MAKE_STD_SWAP_SPECIALIZATION(ImportResult)
GPGMEPP_MAKE_STD_SWAP_SPECIALIZATION(Import)