cpp: Add conveniance Data::toString
authorAndre Heinecke <aheinecke@intevation.de>
Fri, 9 Feb 2018 15:03:37 +0000 (16:03 +0100)
committerAndre Heinecke <aheinecke@intevation.de>
Fri, 9 Feb 2018 15:11:03 +0000 (16:11 +0100)
* lang/cpp/src/data.h, lang/cpp/src/data.cpp: Add Data::toString.

--
I'm lazy and like to waste memory.

lang/cpp/src/data.cpp
lang/cpp/src/data.h

index 32ca561..52b8da2 100644 (file)
@@ -254,3 +254,17 @@ std::vector<GpgME::Key> GpgME::Data::toKeys(Protocol proto) const
     delete ctx;
     return ret;
 }
+
+std::string GpgME::Data::toString()
+{
+  std::string ret;
+  char buf[4096];
+  size_t nread;
+  seek (0, SEEK_SET);
+  while ((nread = read (buf, 4096)) > 0)
+    {
+      ret += std::string (buf, nread);
+    }
+  seek (0, SEEK_SET);
+  return ret;
+}
index cc7906f..446f6fa 100644 (file)
@@ -114,6 +114,9 @@ public:
      * Protocol proto. Returns an empty list on error.*/
     std::vector<Key> toKeys(const Protocol proto = Protocol::OpenPGP) const;
 
+    /** Return a copy of the data as std::string. Sets seek pos to 0 */
+    std::string toString();
+
     class Private;
     Private *impl()
     {