Add ProtoOutputStream.serializeToVector

Bug: 132890298
Test: bit libprotoutil_test:*
Change-Id: I44bbeea9c487e0142bcd5f18562f5a092e8b6306
diff --git a/libs/protoutil/src/ProtoOutputStream.cpp b/libs/protoutil/src/ProtoOutputStream.cpp
index 98a68c6..6cfa357 100644
--- a/libs/protoutil/src/ProtoOutputStream.cpp
+++ b/libs/protoutil/src/ProtoOutputStream.cpp
@@ -454,7 +454,6 @@
     if (out == nullptr) return false;
     if (!compact()) return false;
 
-
     sp<ProtoReader> reader = mBuffer->read();
     out->reserve(reader->size());
     while (reader->hasNext()) {
@@ -465,6 +464,23 @@
     return true;
 }
 
+bool
+ProtoOutputStream::serializeToVector(std::vector<uint8_t>* out)
+{
+    if (out == nullptr) return false;
+    if (!compact()) return false;
+
+    sp<ProtoReader> reader = mBuffer->read();
+    out->reserve(reader->size());
+    while (reader->hasNext()) {
+        const uint8_t* buf = reader->readBuffer();
+        size_t size = reader->currentToRead();
+        out->insert(out->end(), buf, buf + size);
+        reader->move(size);
+    }
+    return true;
+}
+
 sp<ProtoReader>
 ProtoOutputStream::data()
 {