19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef CreateJavaOutputStream_DEFINED 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define CreateJavaOutputStream_DEFINED 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//#include <android_runtime/AndroidRuntime.h> 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "jni.h" 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins IIIclass SkMemoryStream; 8ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins IIIclass SkStream; 9ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins IIIclass SkStreamRewindable; 10ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins IIIclass SkWStream; 11ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III 12ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III/** 13ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * Return an adaptor from a Java InputStream to an SkStream. 147315f1baee19476363235127bc1438e2a291fa15Leon Scroggins III * Does not support rewind. 15ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * @param env JNIEnv object. 16ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * @param stream Pointer to Java InputStream. 17ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * @param storage Java byte array for retrieving data from the 18ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * Java InputStream. 19ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * @return SkStream Simple subclass of SkStream which supports its 20ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * basic methods like reading. Only valid until the calling 21ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * function returns, since the Java InputStream is not managed 22ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * by the SkStream. 23ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III */ 24c7797525084ba0ea441e394aa0a2ba35d6ff3320Leon Scroggins IIISkStream* CreateJavaInputStreamAdaptor(JNIEnv* env, jobject stream, 25c7797525084ba0ea441e394aa0a2ba35d6ff3320Leon Scroggins III jbyteArray storage); 26ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III 27ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III/** 287315f1baee19476363235127bc1438e2a291fa15Leon Scroggins III * Copy a Java InputStream. The result will be rewindable. 29ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * @param env JNIEnv object. 30ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * @param stream Pointer to Java InputStream. 31ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * @param storage Java byte array for retrieving data from the 32ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III * Java InputStream. 33c7797525084ba0ea441e394aa0a2ba35d6ff3320Leon Scroggins III * @return SkStreamRewindable The data in stream will be copied 34c7797525084ba0ea441e394aa0a2ba35d6ff3320Leon Scroggins III * to a new SkStreamRewindable. 35ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III */ 36c7797525084ba0ea441e394aa0a2ba35d6ff3320Leon Scroggins IIISkStreamRewindable* CopyJavaInputStream(JNIEnv* env, jobject stream, 37c7797525084ba0ea441e394aa0a2ba35d6ff3320Leon Scroggins III jbyteArray storage); 38ca32021b43f326af7d3f4ae041f8db297f98a518Leon Scroggins III 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectSkWStream* CreateJavaOutputStreamAdaptor(JNIEnv* env, jobject stream, 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project jbyteArray storage); 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif 42