| Index: courgette/streams.h
|
| ===================================================================
|
| --- courgette/streams.h (revision 78901)
|
| +++ courgette/streams.h (working copy)
|
| @@ -4,11 +4,11 @@
|
|
|
| // Streams classes.
|
| //
|
| -// These memory-resident streams are used for serialzing data into a sequential
|
| +// These memory-resident streams are used for serializing data into a sequential
|
| // region of memory.
|
| // Streams are divided into SourceStreams for reading and SinkStreams for
|
| // writing. Streams are aggregated into Sets which allows several streams to be
|
| -// used at once. Example: we can write A1, B1, A2, B2 but achive the memory
|
| +// used at once. Example: we can write A1, B1, A2, B2 but achieve the memory
|
| // layout A1 A2 B1 B2 by writing 'A's to one stream and 'B's to another.
|
| #ifndef COURGETTE_STREAMS_H_
|
| #define COURGETTE_STREAMS_H_
|
| @@ -17,10 +17,12 @@
|
| #include <string>
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/compiler_specific.h"
|
|
|
| #include "courgette/memory_allocator.h"
|
| #include "courgette/region.h"
|
|
|
| +
|
| namespace courgette {
|
|
|
| class SourceStream;
|
| @@ -109,7 +111,7 @@
|
| };
|
|
|
| // A SinkStream accumulates writes into a buffer that it owns. The stream is
|
| -// initialy in an 'accumulating' state where writes are permitted. Accessing
|
| +// initially in an 'accumulating' state where writes are permitted. Accessing
|
| // the buffer moves the stream into a 'locked' state where no more writes are
|
| // permitted. The stream may also be in a 'retired' state where the buffer
|
| // contents are no longer available.
|
| @@ -119,21 +121,21 @@
|
| ~SinkStream() {}
|
|
|
| // Appends |byte_count| bytes from |data| to the stream.
|
| - void Write(const void* data, size_t byte_count);
|
| + CheckBool Write(const void* data, size_t byte_count) WARN_UNUSED_RESULT;
|
|
|
| // Appends the 'varint32' encoding of |value| to the stream.
|
| - void WriteVarint32(uint32 value);
|
| + CheckBool WriteVarint32(uint32 value) WARN_UNUSED_RESULT;
|
|
|
| // Appends the 'varint32' encoding of |value| to the stream.
|
| - void WriteVarint32Signed(int32 value);
|
| + CheckBool WriteVarint32Signed(int32 value) WARN_UNUSED_RESULT;
|
|
|
| // Appends the 'varint32' encoding of |value| to the stream.
|
| // On platforms where sizeof(size_t) != sizeof(int32), do a safety check.
|
| - void WriteSizeVarint32(size_t value);
|
| + CheckBool WriteSizeVarint32(size_t value) WARN_UNUSED_RESULT;
|
|
|
| // Contents of |other| are appended to |this| stream. The |other| stream
|
| // becomes retired.
|
| - void Append(SinkStream* other);
|
| + CheckBool Append(SinkStream* other) WARN_UNUSED_RESULT;
|
|
|
| // Returns the number of bytes in this SinkStream
|
| size_t Length() const { return buffer_.size(); }
|
| @@ -146,7 +148,12 @@
|
| }
|
|
|
| // Hints that the stream will grow by an additional |length| bytes.
|
| - void Reserve(size_t length) { buffer_.reserve(length + buffer_.length()); }
|
| + // Caller must be prepared to handle memory allocation problems.
|
| + CheckBool Reserve(size_t length) WARN_UNUSED_RESULT {
|
| + buffer_.reserve(length + buffer_.length());
|
| + //TODO(tommi): return false when allocation fails.
|
| + return true;
|
| + }
|
|
|
| // Finished with this stream and any storage it has.
|
| void Retire();
|
| @@ -215,15 +222,15 @@
|
| // CopyTo serializes the streams in this SinkStreamSet into a single target
|
| // stream. The serialized format may be re-read by initializing a
|
| // SourceStreamSet with a buffer containing the data.
|
| - bool CopyTo(SinkStream* combined_stream);
|
| + CheckBool CopyTo(SinkStream* combined_stream);
|
|
|
| // Writes the streams of |set| into the corresponding streams of |this|.
|
| // Stream zero first has some metadata written to it. |set| becomes retired.
|
| // Partner to SourceStreamSet::ReadSet.
|
| - bool WriteSet(SinkStreamSet* set);
|
| + CheckBool WriteSet(SinkStreamSet* set);
|
|
|
| private:
|
| - void CopyHeaderTo(SinkStream* stream);
|
| + CheckBool CopyHeaderTo(SinkStream* stream);
|
|
|
| size_t count_;
|
| SinkStream streams_[kMaxStreams];
|
|
|