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