Add custom EXI buffer management 69/80069/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 30 Jan 2019 23:25:02 +0000 (00:25 +0100)
committerRobert Varga <nite@hq.sk>
Thu, 31 Jan 2019 15:43:31 +0000 (15:43 +0000)
commit341b37830ff5b4b62c322f6c669f75aa46509ce5
tree9f575d1cbac278494707ad7922b49124e00324b8
parenteb733879a6502b34f5c3bbd596bcc88ecde956d1
Add custom EXI buffer management

Exificient's SAXDecoder by default does not free its internal buffer,
and allocates one for each decoder. With version 1.0.4 we have enough
visibility to perform buffer management.

This adds a thread-local buffer, which is reused during parse operation
and retained if it is under 64kB after the operation completes.

Change-Id: Ie2f7c72b1160d389a07c473fda6739b7eb7212cb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 791a6a25f6670a23d390bfdeb786f70588d622a5)
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXICodec.java
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/ThreadLocalSAXDecoder.java [new file with mode: 0644]
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/ThreadLocalSAXFactory.java [new file with mode: 0644]