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

Side by Side Diff: include/core/SkStream.h

Issue 187653003: Add size_t bytesWritten() const to SkWStream. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: add and use SkToSizeT Created 6 years, 9 months 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
« no previous file with comments | « no previous file | include/core/SkTypes.h » ('j') | src/core/SkStream.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkStream_DEFINED 8 #ifndef SkStream_DEFINED
9 #define SkStream_DEFINED 9 #define SkStream_DEFINED
10 10
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 182
183 /** Called to write bytes to a SkWStream. Returns true on success 183 /** Called to write bytes to a SkWStream. Returns true on success
184 @param buffer the address of at least size bytes to be written to the st ream 184 @param buffer the address of at least size bytes to be written to the st ream
185 @param size The number of bytes in buffer to write to the stream 185 @param size The number of bytes in buffer to write to the stream
186 @return true on success 186 @return true on success
187 */ 187 */
188 virtual bool write(const void* buffer, size_t size) = 0; 188 virtual bool write(const void* buffer, size_t size) = 0;
189 virtual void newline(); 189 virtual void newline();
190 virtual void flush(); 190 virtual void flush();
191 191
192 virtual size_t bytesWritten() const = 0;
193
192 // helpers 194 // helpers
193 195
194 bool write8(U8CPU); 196 bool write8(U8CPU);
195 bool write16(U16CPU); 197 bool write16(U16CPU);
196 bool write32(uint32_t); 198 bool write32(uint32_t);
197 199
198 bool writeText(const char text[]); 200 bool writeText(const char text[]);
199 bool writeDecAsText(int32_t); 201 bool writeDecAsText(int32_t);
200 bool writeBigDecAsText(int64_t, int minDigits = 0); 202 bool writeBigDecAsText(int64_t, int minDigits = 0);
201 bool writeHexAsText(uint32_t, int minDigits = 0); 203 bool writeHexAsText(uint32_t, int minDigits = 0);
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 public: 364 public:
363 SK_DECLARE_INST_COUNT(SkFILEWStream) 365 SK_DECLARE_INST_COUNT(SkFILEWStream)
364 366
365 SkFILEWStream(const char path[]); 367 SkFILEWStream(const char path[]);
366 virtual ~SkFILEWStream(); 368 virtual ~SkFILEWStream();
367 369
368 /** Returns true if the current path could be opened. 370 /** Returns true if the current path could be opened.
369 */ 371 */
370 bool isValid() const { return fFILE != NULL; } 372 bool isValid() const { return fFILE != NULL; }
371 373
372 size_t bytesWritten() const;
373 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE; 374 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE;
374 virtual void flush() SK_OVERRIDE; 375 virtual void flush() SK_OVERRIDE;
376 virtual size_t bytesWritten() const SK_OVERRIDE;
375 377
376 private: 378 private:
377 SkFILE* fFILE; 379 SkFILE* fFILE;
378 380
379 typedef SkWStream INHERITED; 381 typedef SkWStream INHERITED;
380 }; 382 };
381 383
382 class SkMemoryWStream : public SkWStream { 384 class SkMemoryWStream : public SkWStream {
383 public: 385 public:
384 SK_DECLARE_INST_COUNT(SkMemoryWStream) 386 SK_DECLARE_INST_COUNT(SkMemoryWStream)
385 387
386 SkMemoryWStream(void* buffer, size_t size); 388 SkMemoryWStream(void* buffer, size_t size);
387 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE; 389 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE;
388 size_t bytesWritten() const { return fBytesWritten; } 390 virtual size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; }
389 391
390 private: 392 private:
391 char* fBuffer; 393 char* fBuffer;
392 size_t fMaxLength; 394 size_t fMaxLength;
393 size_t fBytesWritten; 395 size_t fBytesWritten;
394 396
395 typedef SkWStream INHERITED; 397 typedef SkWStream INHERITED;
396 }; 398 };
397 399
398 class SK_API SkDynamicMemoryWStream : public SkWStream { 400 class SK_API SkDynamicMemoryWStream : public SkWStream {
399 public: 401 public:
400 SK_DECLARE_INST_COUNT(SkDynamicMemoryWStream) 402 SK_DECLARE_INST_COUNT(SkDynamicMemoryWStream)
401 403
402 SkDynamicMemoryWStream(); 404 SkDynamicMemoryWStream();
403 virtual ~SkDynamicMemoryWStream(); 405 virtual ~SkDynamicMemoryWStream();
404 406
405 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE; 407 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE;
408 virtual size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; }
406 // random access write 409 // random access write
407 // modifies stream and returns true if offset + size is less than or equal t o getOffset() 410 // modifies stream and returns true if offset + size is less than or equal t o getOffset()
408 bool write(const void* buffer, size_t offset, size_t size); 411 bool write(const void* buffer, size_t offset, size_t size);
409 bool read(void* buffer, size_t offset, size_t size); 412 bool read(void* buffer, size_t offset, size_t size);
410 size_t getOffset() const { return fBytesWritten; } 413 size_t getOffset() const { return fBytesWritten; }
411 size_t bytesWritten() const { return fBytesWritten; }
412 414
413 // copy what has been written to the stream into dst 415 // copy what has been written to the stream into dst
414 void copyTo(void* dst) const; 416 void copyTo(void* dst) const;
415 417
416 /** 418 /**
417 * Return a copy of the data written so far. This call is responsible for 419 * Return a copy of the data written so far. This call is responsible for
418 * calling unref() when they are finished with the data. 420 * calling unref() when they are finished with the data.
419 */ 421 */
420 SkData* copyToData() const; 422 SkData* copyToData() const;
421 423
(...skipping 15 matching lines...) Expand all
437 // For access to the Block type. 439 // For access to the Block type.
438 friend class SkBlockMemoryStream; 440 friend class SkBlockMemoryStream;
439 friend class SkBlockMemoryRefCnt; 441 friend class SkBlockMemoryRefCnt;
440 442
441 typedef SkWStream INHERITED; 443 typedef SkWStream INHERITED;
442 }; 444 };
443 445
444 446
445 class SK_API SkDebugWStream : public SkWStream { 447 class SK_API SkDebugWStream : public SkWStream {
446 public: 448 public:
449 SkDebugWStream() : fBytesWritten(0) {}
447 SK_DECLARE_INST_COUNT(SkDebugWStream) 450 SK_DECLARE_INST_COUNT(SkDebugWStream)
448 451
449 // overrides 452 // overrides
450 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE; 453 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE;
451 virtual void newline() SK_OVERRIDE; 454 virtual void newline() SK_OVERRIDE;
455 virtual size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; }
452 456
453 private: 457 private:
458 size_t fBytesWritten;
454 typedef SkWStream INHERITED; 459 typedef SkWStream INHERITED;
455 }; 460 };
456 461
457 // for now 462 // for now
458 typedef SkFILEStream SkURLStream; 463 typedef SkFILEStream SkURLStream;
459 464
460 #endif 465 #endif
OLDNEW
« no previous file with comments | « no previous file | include/core/SkTypes.h » ('j') | src/core/SkStream.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698