OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "SkStream.h" | 10 #include "SkStream.h" |
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 ////////////////////////////////////////////////////////////////////////////////
///////////////////////// | 426 ////////////////////////////////////////////////////////////////////////////////
///////////////////////// |
427 ////////////////////////////////////////////////////////////////////////////////
///////////////////////// | 427 ////////////////////////////////////////////////////////////////////////////////
///////////////////////// |
428 | 428 |
429 SkFILEWStream::SkFILEWStream(const char path[]) | 429 SkFILEWStream::SkFILEWStream(const char path[]) |
430 { | 430 { |
431 fFILE = sk_fopen(path, kWrite_SkFILE_Flag); | 431 fFILE = sk_fopen(path, kWrite_SkFILE_Flag); |
432 } | 432 } |
433 | 433 |
434 SkFILEWStream::~SkFILEWStream() | 434 SkFILEWStream::~SkFILEWStream() |
435 { | 435 { |
436 if (fFILE) | 436 if (fFILE) { |
437 sk_fclose(fFILE); | 437 sk_fclose(fFILE); |
| 438 } |
| 439 } |
| 440 |
| 441 size_t SkFILEWStream::bytesWritten() const { |
| 442 return sk_ftell(fFILE); |
438 } | 443 } |
439 | 444 |
440 bool SkFILEWStream::write(const void* buffer, size_t size) | 445 bool SkFILEWStream::write(const void* buffer, size_t size) |
441 { | 446 { |
442 if (fFILE == NULL) | 447 if (fFILE == NULL) { |
443 return false; | 448 return false; |
| 449 } |
444 | 450 |
445 if (sk_fwrite(buffer, size, fFILE) != size) | 451 if (sk_fwrite(buffer, size, fFILE) != size) |
446 { | 452 { |
447 SkDEBUGCODE(SkDebugf("SkFILEWStream failed writing %d bytes\n", size);) | 453 SkDEBUGCODE(SkDebugf("SkFILEWStream failed writing %d bytes\n", size);) |
448 sk_fclose(fFILE); | 454 sk_fclose(fFILE); |
449 fFILE = NULL; | 455 fFILE = NULL; |
450 return false; | 456 return false; |
451 } | 457 } |
452 return true; | 458 return true; |
453 } | 459 } |
454 | 460 |
455 void SkFILEWStream::flush() | 461 void SkFILEWStream::flush() |
456 { | 462 { |
457 if (fFILE) | 463 if (fFILE) { |
458 sk_fflush(fFILE); | 464 sk_fflush(fFILE); |
| 465 } |
459 } | 466 } |
460 | 467 |
461 //////////////////////////////////////////////////////////////////////// | 468 //////////////////////////////////////////////////////////////////////// |
462 | 469 |
463 SkMemoryWStream::SkMemoryWStream(void* buffer, size_t size) | 470 SkMemoryWStream::SkMemoryWStream(void* buffer, size_t size) |
464 : fBuffer((char*)buffer), fMaxLength(size), fBytesWritten(0) | 471 : fBuffer((char*)buffer), fMaxLength(size), fBytesWritten(0) |
465 { | 472 { |
466 } | 473 } |
467 | 474 |
468 bool SkMemoryWStream::write(const void* buffer, size_t size) | 475 bool SkMemoryWStream::write(const void* buffer, size_t size) |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
829 | 836 |
830 // If we get here, then our attempt at using mmap failed, so try normal | 837 // If we get here, then our attempt at using mmap failed, so try normal |
831 // file access. | 838 // file access. |
832 SkFILEStream* stream = SkNEW_ARGS(SkFILEStream, (path)); | 839 SkFILEStream* stream = SkNEW_ARGS(SkFILEStream, (path)); |
833 if (!stream->isValid()) { | 840 if (!stream->isValid()) { |
834 stream->unref(); | 841 stream->unref(); |
835 stream = NULL; | 842 stream = NULL; |
836 } | 843 } |
837 return stream; | 844 return stream; |
838 } | 845 } |
OLD | NEW |