public abstract class SdkInputStream extends InputStream implements MetricAware, Releasable
InputStream.| Constructor and Description | 
|---|
| SdkInputStream() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | abort()Can be used to provide abortion logic prior to throwing the
 AbortedException. | 
| protected void | abortIfNeeded()Aborts with subclass specific abortion logic executed if needed. | 
| protected abstract InputStream | getWrappedInputStream()Returns the underlying input stream, if any, from the subclass; or null
 if there is no underlying input stream. | 
| boolean | isMetricActivated()Returns true if this object or one of it's inner wrapped objects has
 metrics gathering activity turned on; false otherwise. | 
| void | release()WARNING: Subclass that overrides this method must NOT call
 super.release() or else it would lead to infinite loop. | 
available, close, mark, markSupported, read, read, read, reset, skipprotected abstract InputStream getWrappedInputStream()
public final boolean isMetricActivated()
MetricAwareisMetricActivated in interface MetricAwareprotected final void abortIfNeeded()
AbortedException - if found necessary.protected void abort()
              throws IOException
IOExceptionpublic void release()
 Releases the allocated resource. This method should not be called except
 by the caller who allocated the resource at the very top of the call
 stack. This allows, typically, a Closeable resource to be not
 unintentionally released owing to the calling of the
 Closeable.close() methods by implementation deep down in the call
 stack.
 
 For example, the creation of a ResettableInputStream would entail
 physically opening a file. If the opened file is meant to be closed only
 (in a finally block) by the very same code block that created it, then it
 is necessary that the release method must not be called while the
 execution is made in other stack frames.
 
 In such case, as other stack frames may inadvertently or indirectly call
 the close method of the stream, the creator of the stream would need to
 explicitly disable the accidental closing via
 ResettableInputStream#disableClose(), so that the release method
 becomes the only way to truly close the opened file.
release in interface ReleasableCopyright © 2023. All rights reserved.