pb
This commit is contained in:
@@ -17,6 +17,7 @@ import org.redkale.convert.*;
|
||||
*/
|
||||
public class ProtobufArrayDecoder<T> extends ArrayDecoder<ProtobufReader, T>
|
||||
implements ProtobufTagDecodeable<ProtobufReader, T[]> {
|
||||
|
||||
protected final boolean componentPrimitived;
|
||||
|
||||
protected final boolean componentSimpled;
|
||||
|
||||
@@ -42,7 +42,7 @@ public class ProtobufArrayEncoder<T> extends ArrayEncoder<ProtobufWriter, T>
|
||||
|
||||
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, T[] value) {
|
||||
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
||||
out.writeArrayB(value.length, itemEncoder, value);
|
||||
//out.writeArrayB(value.length, itemEncoder, value);
|
||||
boolean first = true;
|
||||
for (T item : value) {
|
||||
if (!first) {
|
||||
@@ -55,7 +55,7 @@ public class ProtobufArrayEncoder<T> extends ArrayEncoder<ProtobufWriter, T>
|
||||
}
|
||||
first = false;
|
||||
}
|
||||
out.writeArrayE();
|
||||
//out.writeArrayE();
|
||||
}
|
||||
|
||||
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, T[] value) {
|
||||
|
||||
@@ -18,6 +18,8 @@ import org.redkale.util.ByteTuple;
|
||||
*/
|
||||
public class ProtobufBytesWriter extends ProtobufWriter {
|
||||
|
||||
private static final int RESET_MAX_SIZE = DEFAULT_SIZE << 4;
|
||||
|
||||
byte[] content;
|
||||
|
||||
// 链表结构
|
||||
@@ -60,7 +62,7 @@ public class ProtobufBytesWriter extends ProtobufWriter {
|
||||
} while (p != this);
|
||||
}
|
||||
this.delegate = null;
|
||||
if (this.content.length > DEFAULT_SIZE) {
|
||||
if (this.content.length > RESET_MAX_SIZE) {
|
||||
this.content = new byte[DEFAULT_SIZE];
|
||||
}
|
||||
return true;
|
||||
@@ -82,7 +84,7 @@ public class ProtobufBytesWriter extends ProtobufWriter {
|
||||
}
|
||||
ProtobufBytesWriter result = queue.poll();
|
||||
if (result == null) {
|
||||
result = new ProtobufBytesWriter(new byte[256], 0);
|
||||
result = new ProtobufBytesWriter(new byte[DEFAULT_SIZE], 0);
|
||||
}
|
||||
if (delegate == null) {
|
||||
result.parent = this;
|
||||
@@ -171,7 +173,7 @@ public class ProtobufBytesWriter extends ProtobufWriter {
|
||||
protected int expand(int len) {
|
||||
int newcount = count + len;
|
||||
if (newcount > content.length) {
|
||||
byte[] newdata = new byte[Math.max(content.length * 2, newcount)];
|
||||
byte[] newdata = new byte[Math.max(content.length << 1, newcount)];
|
||||
System.arraycopy(content, 0, newdata, 0, count);
|
||||
this.content = newdata;
|
||||
}
|
||||
|
||||
@@ -12,34 +12,7 @@ import java.net.InetSocketAddress;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.*;
|
||||
import org.redkale.convert.SimpledCoder;
|
||||
import org.redkale.convert.ext.AtomicBooleanSimpledCoder;
|
||||
import org.redkale.convert.ext.AtomicIntegerSimpledCoder;
|
||||
import org.redkale.convert.ext.AtomicLongSimpledCoder;
|
||||
import org.redkale.convert.ext.BigDecimalSimpledCoder;
|
||||
import org.redkale.convert.ext.BigIntegerSimpledCoder;
|
||||
import org.redkale.convert.ext.BoolSimpledCoder;
|
||||
import org.redkale.convert.ext.ByteSimpledCoder;
|
||||
import org.redkale.convert.ext.CharSequenceSimpledCoder;
|
||||
import org.redkale.convert.ext.CharSequenceSimpledCoder.StringBuilderSimpledCoder;
|
||||
import org.redkale.convert.ext.CharSimpledCoder;
|
||||
import org.redkale.convert.ext.DateSimpledCoder;
|
||||
import org.redkale.convert.ext.DoubleSimpledCoder;
|
||||
import org.redkale.convert.ext.DurationSimpledCoder;
|
||||
import org.redkale.convert.ext.FloatSimpledCoder;
|
||||
import org.redkale.convert.ext.InetAddressSimpledCoder;
|
||||
import org.redkale.convert.ext.InetAddressSimpledCoder.InetSocketAddressSimpledCoder;
|
||||
import org.redkale.convert.ext.InstantSimpledCoder;
|
||||
import org.redkale.convert.ext.IntSimpledCoder;
|
||||
import org.redkale.convert.ext.LocalDateSimpledCoder;
|
||||
import org.redkale.convert.ext.LocalDateTimeSimpledCoder;
|
||||
import org.redkale.convert.ext.LocalTimeSimpledCoder;
|
||||
import org.redkale.convert.ext.LongAdderSimpledCoder;
|
||||
import org.redkale.convert.ext.LongSimpledCoder;
|
||||
import org.redkale.convert.ext.NumberSimpledCoder;
|
||||
import org.redkale.convert.ext.ShortSimpledCoder;
|
||||
import org.redkale.convert.ext.StringSimpledCoder;
|
||||
import org.redkale.convert.ext.StringWrapperSimpledCoder;
|
||||
import org.redkale.convert.ext.Uint128SimpledCoder;
|
||||
import org.redkale.convert.ext.*;
|
||||
import org.redkale.util.*;
|
||||
|
||||
/**
|
||||
@@ -348,7 +321,7 @@ public abstract class ProtobufCoders {
|
||||
}
|
||||
|
||||
public static class ProtobufStringBuilderSimpledCoder
|
||||
extends StringBuilderSimpledCoder<ProtobufReader, ProtobufWriter>
|
||||
extends CharSequenceSimpledCoder.StringBuilderSimpledCoder<ProtobufReader, ProtobufWriter>
|
||||
implements ProtobufEncodeable<ProtobufWriter, StringBuilder> {
|
||||
|
||||
public static final ProtobufStringBuilderSimpledCoder instance = new ProtobufStringBuilderSimpledCoder();
|
||||
@@ -668,7 +641,7 @@ public abstract class ProtobufCoders {
|
||||
}
|
||||
|
||||
public static class ProtobufInetSocketAddressSimpledCoder
|
||||
extends InetSocketAddressSimpledCoder<ProtobufReader, ProtobufWriter>
|
||||
extends InetAddressSimpledCoder.InetSocketAddressSimpledCoder<ProtobufReader, ProtobufWriter>
|
||||
implements ProtobufEncodeable<ProtobufWriter, InetSocketAddress> {
|
||||
|
||||
public static final ProtobufInetSocketAddressSimpledCoder instance =
|
||||
|
||||
@@ -42,7 +42,7 @@ public class ProtobufCollectionEncoder<T> extends CollectionEncoder<ProtobufWrit
|
||||
|
||||
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, Collection<T> value) {
|
||||
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
||||
out.writeArrayB(value.size(), itemEncoder, value);
|
||||
//out.writeArrayB(value.size(), itemEncoder, value);
|
||||
boolean first = true;
|
||||
for (T item : value) {
|
||||
if (!first) {
|
||||
@@ -55,7 +55,7 @@ public class ProtobufCollectionEncoder<T> extends CollectionEncoder<ProtobufWrit
|
||||
}
|
||||
first = false;
|
||||
}
|
||||
out.writeArrayE();
|
||||
//out.writeArrayE();
|
||||
}
|
||||
|
||||
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, Collection<T> value) {
|
||||
|
||||
@@ -27,8 +27,6 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V>
|
||||
private final EnMember keyMember;
|
||||
|
||||
private final EnMember valueMember;
|
||||
private final boolean keySimpled;
|
||||
private final boolean valueSimpled;
|
||||
|
||||
public ProtobufMapEncoder(ConvertFactory factory, Type type) {
|
||||
super(factory, type);
|
||||
@@ -39,8 +37,6 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V>
|
||||
setTag(valueMember, ProtobufFactory.getTag("value", valueEncoder.getType(), 2, enumtostring));
|
||||
setTagSize(keyMember, ProtobufFactory.computeSInt32SizeNoTag(keyMember.getTag()));
|
||||
setTagSize(valueMember, ProtobufFactory.computeSInt32SizeNoTag(valueMember.getTag()));
|
||||
this.keySimpled = keyEncoder instanceof SimpledCoder;
|
||||
this.valueSimpled = valueEncoder instanceof SimpledCoder;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,7 +51,7 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V>
|
||||
BiFunction<K, V, V> mapFieldFunc = out.mapFieldFunc();
|
||||
ProtobufEncodeable kencoder = (ProtobufEncodeable) this.keyEncoder;
|
||||
ProtobufEncodeable vencoder = (ProtobufEncodeable) this.valueEncoder;
|
||||
out.writeMapB(values.size(), kencoder, vencoder, value);
|
||||
//out.writeMapB(values.size(), kencoder, vencoder, value);
|
||||
AtomicBoolean first = new AtomicBoolean(true);
|
||||
values.forEach((key, val0) -> {
|
||||
if (ignoreColumns == null || !ignoreColumns.contains(key.toString())) {
|
||||
@@ -63,11 +59,7 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V>
|
||||
if (!first.get()) {
|
||||
out.writeField(member);
|
||||
}
|
||||
boolean poll = true;
|
||||
ProtobufWriter subout = poll ? out.pollChild() : out;
|
||||
if (!poll) {
|
||||
subout.writeLength(computeSize(out, key, val));
|
||||
}
|
||||
ProtobufWriter subout = out.pollChild();
|
||||
subout.writeTag(keyMember.getTag());
|
||||
if (key == null) {
|
||||
subout.writeLength(0);
|
||||
@@ -80,16 +72,14 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V>
|
||||
} else {
|
||||
vencoder.convertTo(subout, valueMember, val);
|
||||
}
|
||||
if (poll) {
|
||||
out.offerChild(subout);
|
||||
}
|
||||
out.offerChild(subout);
|
||||
first.set(false);
|
||||
}
|
||||
});
|
||||
out.writeMapE();
|
||||
//out.writeMapE();
|
||||
}
|
||||
|
||||
public int computeSize(ProtobufWriter out, K key, V val) {
|
||||
protected int computeSize(ProtobufWriter out, K key, V val) {
|
||||
ProtobufEncodeable kencoder = (ProtobufEncodeable) this.keyEncoder;
|
||||
ProtobufEncodeable vencoder = (ProtobufEncodeable) this.valueEncoder;
|
||||
int keySize = kencoder.computeSize(out, keyMember.getTagSize(), key);
|
||||
|
||||
@@ -43,7 +43,7 @@ public class ProtobufStreamEncoder<T> extends StreamEncoder<ProtobufWriter, T>
|
||||
|
||||
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, Object[] value) {
|
||||
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
||||
out.writeArrayB(value.length, itemEncoder, value);
|
||||
//out.writeArrayB(value.length, itemEncoder, value);
|
||||
boolean first = true;
|
||||
for (Object item : value) {
|
||||
if (!first) {
|
||||
@@ -56,7 +56,7 @@ public class ProtobufStreamEncoder<T> extends StreamEncoder<ProtobufWriter, T>
|
||||
}
|
||||
first = false;
|
||||
}
|
||||
out.writeArrayE();
|
||||
//out.writeArrayE();
|
||||
}
|
||||
|
||||
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, Object[] value) {
|
||||
|
||||
Reference in New Issue
Block a user