1 /* 2 * Copyright 2013 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkStreamHelpers_DEFINED 9 #define SkStreamHelpers_DEFINED 10 11 class SkAutoMalloc; 12 class SkStream; 13 class SkData; 14 15 /** 16 * Copy the provided stream to memory allocated by storage. 17 * Used by SkImageDecoder_libbmp and SkImageDecoder_libico. 18 * @param storage Allocator to hold the memory. Will be reset to be large 19 * enough to hold the entire stream. Upon successful return, 20 * storage->get() will point to data holding the SkStream's entire 21 * contents. 22 * @param stream SkStream to be copied into storage. 23 * @return size_t Total number of bytes in the SkStream, which is also the 24 * number of bytes pointed to by storage->get(). Returns 0 on failure. 25 */ 26 size_t CopyStreamToStorage(SkAutoMalloc* storage, SkStream* stream); 27 28 /** 29 * Copy the provided stream to an SkData variable. Used by SkImageDecoder_libktx. 30 * @param stream SkStream to be copied into data. 31 * @return SkData* The resulting SkData after the copy. This data will have a 32 * ref count of one upon return and belongs to the caller. Returns NULL on failure. 33 */ 34 SkData *CopyStreamToData(SkStream* stream); 35 36 #endif // SkStreamHelpers_DEFINED 37