Class ThrottledFetcher.ThrottledInputstream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.manifoldcf.crawler.connectors.webcrawler.ThrottledFetcher.ThrottledInputstream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
- Enclosing class:
- ThrottledFetcher
protected static class ThrottledFetcher.ThrottledInputstream extends java.io.InputStream
This class throttles an input stream based on the specified byte rate parameters. The throttling takes place across all streams that are open to the server in question.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.io.InputStream
inputStream
The stream we are wrapping.protected org.apache.manifoldcf.connectorcommon.interfaces.IStreamThrottler
streamThrottler
Stream throttlerprotected ThrottledFetcher.ThrottledConnection
throttledConnection
The throttled connection we belong to
-
Constructor Summary
Constructors Constructor Description ThrottledInputstream(org.apache.manifoldcf.connectorcommon.interfaces.IStreamThrottler streamThrottler, ThrottledFetcher.ThrottledConnection connection, java.io.InputStream is)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
Get available.protected int
basicRead(byte[] b, int off, int len, int totalSoFar)
Basic read, which uses the server object to throttle activity.void
close()
Close.void
mark(int readLimit)
Mark.boolean
markSupported()
Check if mark is supported.int
read()
Read a byte.int
read(byte[] b)
Read lots of bytes.int
read(byte[] b, int off, int len)
Read lots of specific bytes.void
reset()
Reset.long
skip(long n)
Skip
-
-
-
Field Detail
-
streamThrottler
protected final org.apache.manifoldcf.connectorcommon.interfaces.IStreamThrottler streamThrottler
Stream throttler
-
throttledConnection
protected final ThrottledFetcher.ThrottledConnection throttledConnection
The throttled connection we belong to
-
inputStream
protected final java.io.InputStream inputStream
The stream we are wrapping.
-
-
Constructor Detail
-
ThrottledInputstream
public ThrottledInputstream(org.apache.manifoldcf.connectorcommon.interfaces.IStreamThrottler streamThrottler, ThrottledFetcher.ThrottledConnection connection, java.io.InputStream is)
Constructor.
-
-
Method Detail
-
read
public int read() throws java.io.IOException
Read a byte.- Specified by:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b) throws java.io.IOException
Read lots of bytes.- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
Read lots of specific bytes.- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
basicRead
protected int basicRead(byte[] b, int off, int len, int totalSoFar) throws java.io.IOException
Basic read, which uses the server object to throttle activity.- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException
Skip- Overrides:
skip
in classjava.io.InputStream
- Throws:
java.io.IOException
-
available
public int available() throws java.io.IOException
Get available.- Overrides:
available
in classjava.io.InputStream
- Throws:
java.io.IOException
-
mark
public void mark(int readLimit)
Mark.- Overrides:
mark
in classjava.io.InputStream
-
reset
public void reset() throws java.io.IOException
Reset.- Overrides:
reset
in classjava.io.InputStream
- Throws:
java.io.IOException
-
markSupported
public boolean markSupported()
Check if mark is supported.- Overrides:
markSupported
in classjava.io.InputStream
-
close
public void close() throws java.io.IOException
Close.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
-
-