diff options
Diffstat (limited to 'src/libutil/serialise.cc')
-rw-r--r-- | src/libutil/serialise.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libutil/serialise.cc b/src/libutil/serialise.cc index aa11c590af36..969f638ef408 100644 --- a/src/libutil/serialise.cc +++ b/src/libutil/serialise.cc @@ -48,6 +48,14 @@ void writeString(const string & s, Sink & sink) } +void writeStringSet(const StringSet & ss, Sink & sink) +{ + writeInt(ss.size(), sink); + for (StringSet::iterator i = ss.begin(); i != ss.end(); ++i) + writeString(*i, sink); +} + + void readPadding(unsigned int len, Source & source) { if (len % 8) { @@ -84,4 +92,14 @@ string readString(Source & source) } +StringSet readStringSet(Source & source) +{ + unsigned int count = readInt(source); + StringSet ss; + while (count--) + ss.insert(readString(source)); + return ss; +} + + } |