1#ifndef CreateJavaOutputStream_DEFINED
2#define CreateJavaOutputStream_DEFINED
3
4//#include <android_runtime/AndroidRuntime.h>
5#include "jni.h"
6
7class SkMemoryStream;
8class SkStream;
9class SkStreamRewindable;
10class SkWStream;
11
12/**
13 *  Return an adaptor from a Java InputStream to an SkStream.
14 *  Does not support rewind.
15 *  @param env JNIEnv object.
16 *  @param stream Pointer to Java InputStream.
17 *  @param storage Java byte array for retrieving data from the
18 *      Java InputStream.
19 *  @return SkStream Simple subclass of SkStream which supports its
20 *      basic methods like reading. Only valid until the calling
21 *      function returns, since the Java InputStream is not managed
22 *      by the SkStream.
23 */
24SkStream* CreateJavaInputStreamAdaptor(JNIEnv* env, jobject stream,
25                                       jbyteArray storage);
26
27/**
28 *  Copy a Java InputStream. The result will be rewindable.
29 *  @param env JNIEnv object.
30 *  @param stream Pointer to Java InputStream.
31 *  @param storage Java byte array for retrieving data from the
32 *      Java InputStream.
33 *  @return SkStreamRewindable The data in stream will be copied
34 *      to a new SkStreamRewindable.
35 */
36SkStreamRewindable* CopyJavaInputStream(JNIEnv* env, jobject stream,
37                                        jbyteArray storage);
38
39SkWStream* CreateJavaOutputStreamAdaptor(JNIEnv* env, jobject stream,
40                                         jbyteArray storage);
41#endif
42