summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
41ec700)
This is a tiny improvement: reuse the encoder for initilization of all
three byte arrays.
Change-Id: Ic01e9fcf1667ca6f28e089dae291f9a7acfecd30
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
*/
package org.opendaylight.netconf.nettyutil.handler;
*/
package org.opendaylight.netconf.nettyutil.handler;
-import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.CharacterCodingException;
import java.nio.CharBuffer;
import java.nio.charset.CharacterCodingException;
+import java.nio.charset.CharsetEncoder;
import java.nio.charset.CodingErrorAction;
import java.nio.charset.StandardCharsets;
import org.opendaylight.netconf.util.messages.FramingMechanism;
import java.nio.charset.CodingErrorAction;
import java.nio.charset.StandardCharsets;
import org.opendaylight.netconf.util.messages.FramingMechanism;
* @author Thomas Pantelis
*/
final class MessageParts {
* @author Thomas Pantelis
*/
final class MessageParts {
- static final byte[] END_OF_MESSAGE = asciiBytes(FramingMechanism.EOM_STR);
- static final byte[] START_OF_CHUNK = asciiBytes(FramingMechanism.CHUNK_START_STR);
- static final byte[] END_OF_CHUNK = asciiBytes(FramingMechanism.CHUNK_END_STR);
+ static final byte[] END_OF_MESSAGE;
+ static final byte[] START_OF_CHUNK;
+ static final byte[] END_OF_CHUNK;
- private MessageParts() {
- // Hidden on purpose
- }
+ static {
+ final var encoder = StandardCharsets.US_ASCII.newEncoder()
+ .onMalformedInput(CodingErrorAction.REPORT)
+ .onUnmappableCharacter(CodingErrorAction.REPORT);
- private static byte[] asciiBytes(final String str) {
- final ByteBuffer buf;
- buf = StandardCharsets.US_ASCII.newEncoder()
- .onMalformedInput(CodingErrorAction.REPORT)
- .onUnmappableCharacter(CodingErrorAction.REPORT)
- .encode(CharBuffer.wrap(str));
+ END_OF_MESSAGE = getBytes(encoder, FramingMechanism.EOM_STR);
+ START_OF_CHUNK = getBytes(encoder, FramingMechanism.CHUNK_START_STR);
+ END_OF_CHUNK = getBytes(encoder, FramingMechanism.CHUNK_END_STR);
} catch (CharacterCodingException e) {
throw new ExceptionInInitializerError(e);
}
} catch (CharacterCodingException e) {
throw new ExceptionInInitializerError(e);
}
+ }
+
+ private MessageParts() {
+ // Hidden on purpose
+ }
- final byte[] ret = new byte[buf.remaining()];
- buf.get(ret);
- return ret;
+ private static byte[] getBytes(final CharsetEncoder encoder, final String str) throws CharacterCodingException {
+ final var buf = encoder.encode(CharBuffer.wrap(str));
+ final var bytes = new byte[buf.remaining()];
+ buf.get(bytes);
+ return bytes;