blob: 849418da01a133ac0f949fb501f631bc980acd87 [file] [log] [blame]
Andreas Gampeed6b9df2014-11-20 22:02:20 -08001#ifndef _ANDROID_GRAPHICS_CREATE_JAVA_OUTPUT_STREAM_ADAPTOR_H_
2#define _ANDROID_GRAPHICS_CREATE_JAVA_OUTPUT_STREAM_ADAPTOR_H_
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004#include "jni.h"
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08005
Leon Scroggins IIIca320212013-08-20 17:59:39 -04006class SkMemoryStream;
7class SkStream;
8class SkStreamRewindable;
9class SkWStream;
10
11/**
12 * Return an adaptor from a Java InputStream to an SkStream.
Leon Scroggins III7315f1b2013-09-10 20:26:05 -040013 * Does not support rewind.
Leon Scroggins IIIca320212013-08-20 17:59:39 -040014 * @param env JNIEnv object.
15 * @param stream Pointer to Java InputStream.
16 * @param storage Java byte array for retrieving data from the
17 * Java InputStream.
Leon Scroggins IIIed074fd2017-12-11 13:47:23 -050018 * @param swallowExceptions Whether to call ExceptionClear() after
19 * an Exception is thrown. If false, it is up to the client to
20 * clear or propagate the exception.
Leon Scroggins IIIca320212013-08-20 17:59:39 -040021 * @return SkStream Simple subclass of SkStream which supports its
22 * basic methods like reading. Only valid until the calling
23 * function returns, since the Java InputStream is not managed
24 * by the SkStream.
25 */
Leon Scroggins IIIed074fd2017-12-11 13:47:23 -050026SkStream* CreateJavaInputStreamAdaptor(JNIEnv* env, jobject stream, jbyteArray storage,
27 bool swallowExceptions = true);
Leon Scroggins IIIca320212013-08-20 17:59:39 -040028
29/**
Leon Scroggins III7315f1b2013-09-10 20:26:05 -040030 * Copy a Java InputStream. The result will be rewindable.
Leon Scroggins IIIca320212013-08-20 17:59:39 -040031 * @param env JNIEnv object.
32 * @param stream Pointer to Java InputStream.
33 * @param storage Java byte array for retrieving data from the
34 * Java InputStream.
Leon Scroggins IIIc7797522013-09-03 11:35:00 -040035 * @return SkStreamRewindable The data in stream will be copied
36 * to a new SkStreamRewindable.
Leon Scroggins IIIca320212013-08-20 17:59:39 -040037 */
Leon Scroggins IIIed074fd2017-12-11 13:47:23 -050038SkStreamRewindable* CopyJavaInputStream(JNIEnv* env, jobject stream, jbyteArray storage);
Leon Scroggins IIIca320212013-08-20 17:59:39 -040039
Leon Scroggins IIIed074fd2017-12-11 13:47:23 -050040SkWStream* CreateJavaOutputStreamAdaptor(JNIEnv* env, jobject stream, jbyteArray storage);
Andreas Gampeed6b9df2014-11-20 22:02:20 -080041
42#endif // _ANDROID_GRAPHICS_CREATE_JAVA_OUTPUT_STREAM_ADAPTOR_H_