Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Side by Side Diff: base/pickle.h

Issue 11416150: Add support to Pickle for reading and writing floats (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix windows build Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | base/pickle.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef BASE_PICKLE_H__ 5 #ifndef BASE_PICKLE_H__
6 #define BASE_PICKLE_H__ 6 #define BASE_PICKLE_H__
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/base_export.h" 10 #include "base/base_export.h"
(...skipping 16 matching lines...) Expand all
27 // the Pickle, create a PickleIterator from a Pickle. If successful, these 27 // the Pickle, create a PickleIterator from a Pickle. If successful, these
28 // methods return true. Otherwise, false is returned to indicate that the 28 // methods return true. Otherwise, false is returned to indicate that the
29 // result could not be extracted. 29 // result could not be extracted.
30 bool ReadBool(bool* result) WARN_UNUSED_RESULT; 30 bool ReadBool(bool* result) WARN_UNUSED_RESULT;
31 bool ReadInt(int* result) WARN_UNUSED_RESULT; 31 bool ReadInt(int* result) WARN_UNUSED_RESULT;
32 bool ReadLong(long* result) WARN_UNUSED_RESULT; 32 bool ReadLong(long* result) WARN_UNUSED_RESULT;
33 bool ReadUInt16(uint16* result) WARN_UNUSED_RESULT; 33 bool ReadUInt16(uint16* result) WARN_UNUSED_RESULT;
34 bool ReadUInt32(uint32* result) WARN_UNUSED_RESULT; 34 bool ReadUInt32(uint32* result) WARN_UNUSED_RESULT;
35 bool ReadInt64(int64* result) WARN_UNUSED_RESULT; 35 bool ReadInt64(int64* result) WARN_UNUSED_RESULT;
36 bool ReadUInt64(uint64* result) WARN_UNUSED_RESULT; 36 bool ReadUInt64(uint64* result) WARN_UNUSED_RESULT;
37 bool ReadFloat(float* result) WARN_UNUSED_RESULT;
37 bool ReadString(std::string* result) WARN_UNUSED_RESULT; 38 bool ReadString(std::string* result) WARN_UNUSED_RESULT;
38 bool ReadWString(std::wstring* result) WARN_UNUSED_RESULT; 39 bool ReadWString(std::wstring* result) WARN_UNUSED_RESULT;
39 bool ReadString16(string16* result) WARN_UNUSED_RESULT; 40 bool ReadString16(string16* result) WARN_UNUSED_RESULT;
40 bool ReadData(const char** data, int* length) WARN_UNUSED_RESULT; 41 bool ReadData(const char** data, int* length) WARN_UNUSED_RESULT;
41 bool ReadBytes(const char** data, int length) WARN_UNUSED_RESULT; 42 bool ReadBytes(const char** data, int length) WARN_UNUSED_RESULT;
42 43
43 // Safer version of ReadInt() checks for the result not being negative. 44 // Safer version of ReadInt() checks for the result not being negative.
44 // Use it for reading the object sizes. 45 // Use it for reading the object sizes.
45 bool ReadLength(int* result) WARN_UNUSED_RESULT { 46 bool ReadLength(int* result) WARN_UNUSED_RESULT {
46 return ReadInt(result) && *result >= 0; 47 return ReadInt(result) && *result >= 0;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 } 152 }
152 bool ReadUInt32(PickleIterator* iter, uint32* result) const { 153 bool ReadUInt32(PickleIterator* iter, uint32* result) const {
153 return iter->ReadUInt32(result); 154 return iter->ReadUInt32(result);
154 } 155 }
155 bool ReadInt64(PickleIterator* iter, int64* result) const { 156 bool ReadInt64(PickleIterator* iter, int64* result) const {
156 return iter->ReadInt64(result); 157 return iter->ReadInt64(result);
157 } 158 }
158 bool ReadUInt64(PickleIterator* iter, uint64* result) const { 159 bool ReadUInt64(PickleIterator* iter, uint64* result) const {
159 return iter->ReadUInt64(result); 160 return iter->ReadUInt64(result);
160 } 161 }
162 bool ReadFloat(PickleIterator* iter, float* result) const {
163 return iter->ReadFloat(result);
164 }
161 bool ReadString(PickleIterator* iter, std::string* result) const { 165 bool ReadString(PickleIterator* iter, std::string* result) const {
162 return iter->ReadString(result); 166 return iter->ReadString(result);
163 } 167 }
164 bool ReadWString(PickleIterator* iter, std::wstring* result) const { 168 bool ReadWString(PickleIterator* iter, std::wstring* result) const {
165 return iter->ReadWString(result); 169 return iter->ReadWString(result);
166 } 170 }
167 bool ReadString16(PickleIterator* iter, string16* result) const { 171 bool ReadString16(PickleIterator* iter, string16* result) const {
168 return iter->ReadString16(result); 172 return iter->ReadString16(result);
169 } 173 }
170 // A pointer to the data will be placed in *data, and the length will be 174 // A pointer to the data will be placed in *data, and the length will be
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 } 215 }
212 bool WriteUInt32(uint32 value) { 216 bool WriteUInt32(uint32 value) {
213 return WriteBytes(&value, sizeof(value)); 217 return WriteBytes(&value, sizeof(value));
214 } 218 }
215 bool WriteInt64(int64 value) { 219 bool WriteInt64(int64 value) {
216 return WriteBytes(&value, sizeof(value)); 220 return WriteBytes(&value, sizeof(value));
217 } 221 }
218 bool WriteUInt64(uint64 value) { 222 bool WriteUInt64(uint64 value) {
219 return WriteBytes(&value, sizeof(value)); 223 return WriteBytes(&value, sizeof(value));
220 } 224 }
225 bool WriteFloat(float value) {
226 return WriteBytes(&value, sizeof(value));
227 }
221 bool WriteString(const std::string& value); 228 bool WriteString(const std::string& value);
222 bool WriteWString(const std::wstring& value); 229 bool WriteWString(const std::wstring& value);
223 bool WriteString16(const string16& value); 230 bool WriteString16(const string16& value);
224 // "Data" is a blob with a length. When you read it out you will be given the 231 // "Data" is a blob with a length. When you read it out you will be given the
225 // length. See also WriteBytes. 232 // length. See also WriteBytes.
226 bool WriteData(const char* data, int length); 233 bool WriteData(const char* data, int length);
227 // "Bytes" is a blob with no length. The caller must specify the lenght both 234 // "Bytes" is a blob with no length. The caller must specify the lenght both
228 // when reading and writing. It is normally used to serialize PoD types of a 235 // when reading and writing. It is normally used to serialize PoD types of a
229 // known size. See also WriteData. 236 // known size. See also WriteData.
230 bool WriteBytes(const void* data, int data_len); 237 bool WriteBytes(const void* data, int data_len);
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 // Allocation size of payload (or -1 if allocation is const). 341 // Allocation size of payload (or -1 if allocation is const).
335 size_t capacity_; 342 size_t capacity_;
336 size_t variable_buffer_offset_; // IF non-zero, then offset to a buffer. 343 size_t variable_buffer_offset_; // IF non-zero, then offset to a buffer.
337 344
338 FRIEND_TEST_ALL_PREFIXES(PickleTest, Resize); 345 FRIEND_TEST_ALL_PREFIXES(PickleTest, Resize);
339 FRIEND_TEST_ALL_PREFIXES(PickleTest, FindNext); 346 FRIEND_TEST_ALL_PREFIXES(PickleTest, FindNext);
340 FRIEND_TEST_ALL_PREFIXES(PickleTest, FindNextWithIncompleteHeader); 347 FRIEND_TEST_ALL_PREFIXES(PickleTest, FindNextWithIncompleteHeader);
341 }; 348 };
342 349
343 #endif // BASE_PICKLE_H__ 350 #endif // BASE_PICKLE_H__
OLDNEW
« no previous file with comments | « no previous file | base/pickle.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698