diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-11-30T22·43+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-11-30T22·43+0000 |
commit | 0565b5f2b35dc153dc98e1e3bd37476aa13ee4f1 (patch) | |
tree | a370db3e93b6e07f044fc436092c9d082da9c8be /src/libutil | |
parent | aac547a8b3f481fda48cc1fe1082ce4c32be0e03 (diff) |
* More remote operations.
* Added new operation hasSubstitutes(), which is more efficient than querySubstitutes().size() > 0.
Diffstat (limited to 'src/libutil')
-rw-r--r-- | src/libutil/serialise.cc | 18 | ||||
-rw-r--r-- | src/libutil/serialise.hh | 4 |
2 files changed, 21 insertions, 1 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; +} + + } diff --git a/src/libutil/serialise.hh b/src/libutil/serialise.hh index 6be10b5528db..fe3492235e97 100644 --- a/src/libutil/serialise.hh +++ b/src/libutil/serialise.hh @@ -69,12 +69,14 @@ struct FdSource : Source void writePadding(unsigned int len, Sink & sink); void writeInt(unsigned int n, Sink & sink); void writeString(const string & s, Sink & sink); +void writeStringSet(const StringSet & ss, Sink & sink); void readPadding(unsigned int len, Source & source); unsigned int readInt(Source & source); string readString(Source & source); +StringSet readStringSet(Source & source); + - } |