diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-02-07T18·21+0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-02-07T18·29+0100 |
commit | ddb5577f2eb158279ee40219de409dcf1230aacc (patch) | |
tree | bbfb604aba163272c6a66eb665afe628dca4e706 /src/libutil | |
parent | ce4d8e3ef83505560db787876beb30d20ca6faf2 (diff) |
Move SavingSourceAdapter to serialise.hh
Diffstat (limited to 'src/libutil')
-rw-r--r-- | src/libutil/serialise.hh | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libutil/serialise.hh b/src/libutil/serialise.hh index f12f02543bc0..5646d08c1314 100644 --- a/src/libutil/serialise.hh +++ b/src/libutil/serialise.hh @@ -139,6 +139,21 @@ struct StringSource : Source }; +/* Adapter class of a Source that saves all data read to `s'. */ +struct SavingSourceAdapter : Source +{ + Source & orig; + string s; + SavingSourceAdapter(Source & orig) : orig(orig) { } + size_t read(unsigned char * data, size_t len) + { + size_t n = orig.read(data, len); + s.append((const char *) data, n); + return n; + } +}; + + void writePadding(size_t len, Sink & sink); void writeString(const unsigned char * buf, size_t len, Sink & sink); |