Class JsonRpcDecoder
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.handler.codec.ByteToMessageDecoder
org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcDecoder
- All Implemented Interfaces:
io.netty.channel.ChannelHandler
,io.netty.channel.ChannelInboundHandler
public class JsonRpcDecoder
extends io.netty.handler.codec.ByteToMessageDecoder
JSON RPC 1.0 compatible decoder capable of decoding JSON messages from a TCP stream.
The stream is framed first by inspecting the json for valid end marker (left curly)
and is passed to a Json parser (jackson) for converting into an object model.
There are no JSON parsers that I am aware of that does non blocking parsing. This approach avoids having to run json parser over and over again on the entire stream waiting for input. Parser is invoked only when we know of a full JSON message in the stream.
-
Nested Class Summary
Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
io.netty.handler.codec.ByteToMessageDecoder.Cumulator
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable
-
Field Summary
Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
int
Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.netty.channel.ChannelHandler
handlerAdded
-
Constructor Details
-
JsonRpcDecoder
public JsonRpcDecoder(int maxFrameLength)
-
-
Method Details
-
decode
protected void decode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf buf, List<Object> out) throws IOException - Specified by:
decode
in classio.netty.handler.codec.ByteToMessageDecoder
- Throws:
IOException
-
getRecordsRead
public int getRecordsRead()
-