summaryrefslogtreecommitdiffstats
path: root/base/pickle.h
diff options
context:
space:
mode:
Diffstat (limited to 'base/pickle.h')
-rw-r--r--base/pickle.h99
1 files changed, 84 insertions, 15 deletions
diff --git a/base/pickle.h b/base/pickle.h
index f2a198e..11cf484 100644
--- a/base/pickle.h
+++ b/base/pickle.h
@@ -26,7 +26,7 @@ class BASE_EXPORT PickleIterator {
// Methods for reading the payload of the Pickle. To read from the start of
// the Pickle, create a PickleIterator from a Pickle. If successful, these
// methods return true. Otherwise, false is returned to indicate that the
- // result could not be extracted. It is not possible to read from the iterator
+ // result could not be extracted. It is not possible to read from iterator
// after that.
bool ReadBool(bool* result) WARN_UNUSED_RESULT;
bool ReadInt(int* result) WARN_UNUSED_RESULT;
@@ -41,21 +41,10 @@ class BASE_EXPORT PickleIterator {
bool ReadString(std::string* result) WARN_UNUSED_RESULT;
bool ReadWString(std::wstring* result) WARN_UNUSED_RESULT;
bool ReadString16(base::string16* result) WARN_UNUSED_RESULT;
-
- // A pointer to the data will be placed in |*data|, and the length will be
- // placed in |*length|. The pointer placed into |*data| points into the
- // message's buffer so it will be scoped to the lifetime of the message (or
- // until the message data is mutated). Do not keep the pointer around!
bool ReadData(const char** data, int* length) WARN_UNUSED_RESULT;
-
- // A pointer to the data will be placed in |*data|. The caller specifies the
- // number of bytes to read, and ReadBytes will validate this length. The
- // pointer placed into |*data| points into the message's buffer so it will be
- // scoped to the lifetime of the message (or until the message data is
- // mutated). Do not keep the pointer around!
bool ReadBytes(const char** data, int length) WARN_UNUSED_RESULT;
- // A safer version of ReadInt() that checks for the result not being negative.
+ // Safer version of ReadInt() checks for the result not being negative.
// Use it for reading the object sizes.
bool ReadLength(int* result) WARN_UNUSED_RESULT {
return ReadInt(result) && *result >= 0;
@@ -68,7 +57,7 @@ class BASE_EXPORT PickleIterator {
}
private:
- // Aligns 'i' by rounding it up to the next multiple of 'alignment'.
+ // Aligns 'i' by rounding it up to the next multiple of 'alignment'
static size_t AlignInt(size_t i, int alignment) {
return i + (alignment - (i % alignment)) % alignment;
}
@@ -153,11 +142,91 @@ class BASE_EXPORT Pickle {
// Returns the data for this Pickle.
const void* data() const { return header_; }
+ // For compatibility, these older style read methods pass through to the
+ // PickleIterator methods.
+ // TODO(jbates) Remove these methods.
+ bool ReadBool(PickleIterator* iter,
+ bool* result) const WARN_UNUSED_RESULT {
+ return iter->ReadBool(result);
+ }
+ bool ReadInt(PickleIterator* iter,
+ int* result) const WARN_UNUSED_RESULT {
+ return iter->ReadInt(result);
+ }
+ bool ReadLong(PickleIterator* iter,
+ long* result) const WARN_UNUSED_RESULT {
+ return iter->ReadLong(result);
+ }
+ bool ReadUInt16(PickleIterator* iter,
+ uint16* result) const WARN_UNUSED_RESULT {
+ return iter->ReadUInt16(result);
+ }
+ bool ReadUInt32(PickleIterator* iter,
+ uint32* result) const WARN_UNUSED_RESULT {
+ return iter->ReadUInt32(result);
+ }
+ bool ReadInt64(PickleIterator* iter,
+ int64* result) const WARN_UNUSED_RESULT {
+ return iter->ReadInt64(result);
+ }
+ bool ReadUInt64(PickleIterator* iter,
+ uint64* result) const WARN_UNUSED_RESULT {
+ return iter->ReadUInt64(result);
+ }
+ bool ReadSizeT(PickleIterator* iter,
+ size_t* result) const WARN_UNUSED_RESULT {
+ return iter->ReadSizeT(result);
+ }
+ bool ReadFloat(PickleIterator* iter,
+ float* result) const WARN_UNUSED_RESULT {
+ return iter->ReadFloat(result);
+ }
+ bool ReadDouble(PickleIterator* iter,
+ double* result) const WARN_UNUSED_RESULT {
+ return iter->ReadDouble(result);
+ }
+ bool ReadString(PickleIterator* iter,
+ std::string* result) const WARN_UNUSED_RESULT {
+ return iter->ReadString(result);
+ }
+ bool ReadWString(PickleIterator* iter,
+ std::wstring* result) const WARN_UNUSED_RESULT {
+ return iter->ReadWString(result);
+ }
+ bool ReadString16(PickleIterator* iter,
+ base::string16* result) const WARN_UNUSED_RESULT {
+ return iter->ReadString16(result);
+ }
+ // A pointer to the data will be placed in *data, and the length will be
+ // placed in *length. This buffer will be into the message's buffer so will
+ // be scoped to the lifetime of the message (or until the message data is
+ // mutated).
+ bool ReadData(PickleIterator* iter,
+ const char** data,
+ int* length) const WARN_UNUSED_RESULT {
+ return iter->ReadData(data, length);
+ }
+ // A pointer to the data will be placed in *data. The caller specifies the
+ // number of bytes to read, and ReadBytes will validate this length. The
+ // returned buffer will be into the message's buffer so will be scoped to the
+ // lifetime of the message (or until the message data is mutated).
+ bool ReadBytes(PickleIterator* iter,
+ const char** data,
+ int length) const WARN_UNUSED_RESULT {
+ return iter->ReadBytes(data, length);
+ }
+
+ // Safer version of ReadInt() checks for the result not being negative.
+ // Use it for reading the object sizes.
+ bool ReadLength(PickleIterator* iter,
+ int* result) const WARN_UNUSED_RESULT {
+ return iter->ReadLength(result);
+ }
+
// Methods for adding to the payload of the Pickle. These values are
// appended to the end of the Pickle's payload. When reading values from a
// Pickle, it is important to read them in the order in which they were added
// to the Pickle.
-
bool WriteBool(bool value) {
return WriteInt(value ? 1 : 0);
}