1 2 /* 3 * Copyright 2011 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 #ifndef SkStream_NSData_DEFINED 9 #define SkStream_NSData_DEFINED 10 11 #import <UIKit/UIKit.h> 12 #include "SkStream.h" 13 14 /** Returns an NSData with a copy of the stream's data. The caller must call 15 retain if it intends to keep the data object beyond the current stack-frame 16 (i.e. internally we're calling [NSData dataWithBytes...] 17 */ 18 NSData* NSData_dataWithStream(SkStream* stream); 19 20 /** Returns an NSData from the named resource (from main bundle). 21 The caller must call retain if it intends to keep the data object beyond 22 the current stack-frame 23 (i.e. internally we're calling [NSData dataWithContentsOfMappedFile...] 24 */ 25 NSData* NSData_dataFromResource(const char name[], const char suffix[]); 26 27 /** Wrap a stream around NSData. 28 */ 29 class SkStream_NSData : public SkMemoryStream { 30 public: 31 SkStream_NSData(NSData* data); 32 virtual ~SkStream_NSData(); 33 34 static SkStream_NSData* CreateFromResource(const char name[], 35 const char suffix[]); 36 37 private: 38 NSData* fNSData; 39 }; 40 41 #endif 42