//
 // Exception audit:
 //
 //  Verdict
 //    Exception wrapping is required.
 //
 //  Rationale
 //    `java.io.InputStream.close()` throws an exception, see:
 //
 //     https://developer.android.com/reference/java/io/InputStream?hl=en
 //
 protected override void Dispose(bool disposing)
 {
     if (disposing && BaseInputStream != null)
     {
         try {
             BaseFileChannel = null;
             BaseInputStream.Close();
             BaseInputStream.Dispose();
             BaseInputStream = null;
         } catch (Java.IO.IOException ex) when(JNIEnv.ShouldWrapJavaException(ex))
         {
             throw new IOException(ex.Message, ex);
         }
     }
 }
        public InputStreamInvoker(Java.IO.InputStream stream)
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            BaseInputStream = stream;

            Java.IO.FileInputStream fileStream = stream as Java.IO.FileInputStream;
            if (fileStream != null)
            {
                BaseFileChannel = fileStream.Channel;
            }
        }
Ejemplo n.º 3
0
        public ChannelStream(ParcelFileDescriptor parcelFileDescriptor, string mode)
        {
            _mode = mode;
            ParcelFileDescriptor = parcelFileDescriptor;

            if (mode.Contains("w"))
            {
                var outStream = new Java.IO.FileOutputStream(parcelFileDescriptor.FileDescriptor);
                Channel = outStream.Channel;
                _stream = outStream;
            }
            else
            {
                var inStream = new Java.IO.FileInputStream(parcelFileDescriptor.FileDescriptor);
                Channel = inStream.Channel;
                _stream = inStream;
            }
        }