]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
buffer: add decode_base64 method
authorSage Weil <sage@newdream.net>
Mon, 8 Feb 2010 17:56:41 +0000 (09:56 -0800)
committerSage Weil <sage@newdream.net>
Mon, 8 Feb 2010 18:04:14 +0000 (10:04 -0800)
src/common/buffer.cc
src/include/buffer.h

index a17b451291c475ff7f31d70fbf82ea47a576e906..da17022295478797df31510c4f11946956db67ad 100644 (file)
@@ -32,6 +32,15 @@ void buffer::list::encode_base64(buffer::list& o)
   o.push_back(bp);
 }
 
+void buffer::list::decode_base64(buffer::list& e)
+{
+  bufferptr bp(e.length() * 3 / 4 + 1);
+  int l = ceph_unarmor(bp.c_str(), e.c_str(), e.c_str() + e.length());
+  assert(l <= (int)bp.length());
+  bp.set_length(l);
+  push_back(bp);
+}
+
 
 int buffer::list::read_file(const char *fn, bool silent)
 {
index 936650986b4bf3a899f299b04c585fe7a3ca93d9..a1656e0c145a5808d8ad61812b387eb4f21122e9 100644 (file)
@@ -1125,6 +1125,7 @@ public:
     }
 
     void encode_base64(list& o);
+    void decode_base64(list& o);
 
     void hexdump(std::ostream &out) const;
     int read_file(const char *fn, bool silent=false);