diff options
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java b/vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java index 4d9fdbba6d4..8f654b46032 100644 --- a/vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java +++ b/vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java @@ -1,28 +1,30 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.slime; -import static com.yahoo.slime.BinaryFormat.*; +import static com.yahoo.slime.BinaryFormat.encode_double; +import static com.yahoo.slime.BinaryFormat.encode_type_and_meta; +import static com.yahoo.slime.BinaryFormat.encode_zigzag; final class BinaryEncoder implements ArrayTraverser, ObjectSymbolTraverser { - BufferedOutput out; + private final BufferedOutput out; - public BinaryEncoder(int capacity) { - out = new BufferedOutput(capacity); + BinaryEncoder() { + this(new BufferedOutput()); } - - public BinaryEncoder() { - out = new BufferedOutput(); + BinaryEncoder(BufferedOutput output) { + out = output; } - public byte[] encode(Slime slime) { + BufferedOutput encode(Slime slime) { out.reset(); encodeSymbolTable(slime); encodeValue(slime.get()); - return out.toArray(); + return out; } + void encode_cmpr_long(long value) { byte next = (byte)(value & 0x7f); value >>>= 7; // unsigned shift |