• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2017 The Android Open Source Project
2 //
3 // This software is licensed under the terms of the GNU General Public
4 // License version 2, as published by the Free Software Foundation, and
5 // may be copied, distributed, and modified under those terms.
6 //
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 // GNU General Public License for more details.
11 
12 #include "android/base/files/StreamSerializing.h"
13 
14 namespace android {
15 namespace base {
16 
saveStream(Stream * stream,const MemStream & memStream)17 void saveStream(Stream* stream, const MemStream& memStream) {
18     memStream.save(stream);
19 }
20 
loadStream(Stream * stream,MemStream * memStream)21 void loadStream(Stream* stream, MemStream* memStream) {
22     memStream->load(stream);
23 }
24 
saveBufferRaw(Stream * stream,char * buffer,uint32_t len)25 void saveBufferRaw(Stream* stream, char* buffer, uint32_t len) {
26     stream->putBe32(len);
27     stream->write(buffer, len);
28 }
29 
loadBufferRaw(Stream * stream,char * buffer)30 bool loadBufferRaw(Stream* stream, char* buffer) {
31     auto len = stream->getBe32();
32     int ret = (int)stream->read(buffer, len);
33     return ret == (int)len;
34 }
35 
saveStringArray(Stream * stream,const char * const * strings,uint32_t count)36 void saveStringArray(Stream* stream, const char* const* strings, uint32_t count) {
37     stream->putBe32(count);
38     for (uint32_t i = 0; i < count; ++i) {
39         stream->putString(strings[i]);
40     }
41 }
42 
loadStringArray(Stream * stream)43 std::vector<std::string> loadStringArray(Stream* stream) {
44     uint32_t count = stream->getBe32();
45     std::vector<std::string> res;
46     for (uint32_t i = 0; i < count; ++i) {
47         res.push_back(stream->getString());
48     }
49     return res;
50 }
51 
52 }  // namespace base
53 }  // namespace android
54