summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/slime/BinaryEncoder.java20
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