OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
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 SkStreamPriv_DEFINED | 8 #ifndef SkStreamPriv_DEFINED |
9 #define SkStreamPriv_DEFINED | 9 #define SkStreamPriv_DEFINED |
10 | 10 |
11 class SkAutoMalloc; | 11 class SkData; |
12 class SkStream; | 12 class SkStream; |
13 class SkStreamRewindable; | 13 class SkWStream; |
14 class SkData; | |
15 | |
16 /** | |
17 * Copy the provided stream to memory allocated by storage. | |
18 * Used by SkImageDecoder_libbmp and SkImageDecoder_libico. | |
19 * @param storage Allocator to hold the memory. Will be reset to be large | |
20 * enough to hold the entire stream. Upon successful return, | |
21 * storage->get() will point to data holding the SkStream's entire | |
22 * contents. | |
23 * @param stream SkStream to be copied into storage. | |
24 * @return size_t Total number of bytes in the SkStream, which is also the | |
25 * number of bytes pointed to by storage->get(). Returns 0 on failure. | |
26 */ | |
27 size_t SkCopyStreamToStorage(SkAutoMalloc* storage, SkStream* stream); | |
28 | 14 |
29 /** | 15 /** |
30 * Copy the provided stream to an SkData variable. | 16 * Copy the provided stream to an SkData variable. |
| 17 * |
| 18 * Note: Assumes the stream is at the beginning. If it has a length, |
| 19 * but is not at the beginning, this call will fail (return NULL). |
| 20 * |
31 * @param stream SkStream to be copied into data. | 21 * @param stream SkStream to be copied into data. |
32 * @return SkData* The resulting SkData after the copy. This data | 22 * @return SkData* The resulting SkData after the copy. This data |
33 * will have a ref count of one upon return and belongs to the | 23 * will have a ref count of one upon return and belongs to the |
34 * caller. Returns nullptr on failure. | 24 * caller. Returns nullptr on failure. |
35 */ | 25 */ |
36 SkData *SkCopyStreamToData(SkStream* stream); | 26 SkData* SkCopyStreamToData(SkStream* stream); |
37 | |
38 /** | |
39 * Attempt to convert this stream to a StreamRewindable in the | |
40 * cheapest possible manner (calling duplicate() if possible, and | |
41 * otherwise allocating memory for a copy). The position of the | |
42 * input stream is left in an indeterminate state. | |
43 */ | |
44 SkStreamRewindable* SkStreamRewindableFromSkStream(SkStream* stream); | |
45 | 27 |
46 /** | 28 /** |
47 * Copies the input stream from the current position to the end. | 29 * Copies the input stream from the current position to the end. |
48 * Does not rewind the input stream. | 30 * Does not rewind the input stream. |
49 */ | 31 */ |
50 bool SkStreamCopy(SkWStream* out, SkStream* input); | 32 bool SkStreamCopy(SkWStream* out, SkStream* input); |
51 | 33 |
52 #endif // SkStreamPriv_DEFINED | 34 #endif // SkStreamPriv_DEFINED |
OLD | NEW |