public class StreamMessageProducer extends java.lang.Object implements MessageProducer, java.io.Closeable, MessageConstants
Modifier and Type | Class and Description |
---|---|
protected static class |
StreamMessageProducer.Headers |
CONTENT_LENGTH_HEADER, CONTENT_TYPE_HEADER, CRLF, JSON_MIME_TYPE, JSONRPC_VERSION
Constructor and Description |
---|
StreamMessageProducer(java.io.InputStream input,
MessageJsonHandler jsonHandler) |
StreamMessageProducer(java.io.InputStream input,
MessageJsonHandler jsonHandler,
MessageIssueHandler issueHandler) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
protected void |
fireError(java.lang.Throwable error)
Log an error.
|
protected void |
fireStreamClosed(java.lang.Exception cause)
Report that the stream was closed through an exception.
|
java.io.InputStream |
getInput() |
protected boolean |
handleMessage(java.io.InputStream input,
StreamMessageProducer.Headers headers)
Read the JSON content part of a message, parse it, and notify the callback.
|
void |
listen(MessageConsumer callback)
Listen to a message source and forward all messages to the given consumer.
|
protected void |
parseHeader(java.lang.String line,
StreamMessageProducer.Headers headers)
Parse a header attribute and set the corresponding data in the
StreamMessageProducer.Headers fields. |
void |
setInput(java.io.InputStream input) |
public StreamMessageProducer(java.io.InputStream input, MessageJsonHandler jsonHandler)
public StreamMessageProducer(java.io.InputStream input, MessageJsonHandler jsonHandler, MessageIssueHandler issueHandler)
public java.io.InputStream getInput()
public void setInput(java.io.InputStream input)
public void listen(MessageConsumer callback)
MessageProducer
listen
in interface MessageProducer
protected void fireError(java.lang.Throwable error)
protected void fireStreamClosed(java.lang.Exception cause)
protected void parseHeader(java.lang.String line, StreamMessageProducer.Headers headers)
StreamMessageProducer.Headers
fields.protected boolean handleMessage(java.io.InputStream input, StreamMessageProducer.Headers headers) throws java.io.IOException
true
if we should continue reading from the input stream, false
if we should stopjava.io.IOException
public void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable