Skip to content

Commit e798e44

Browse files
nokiaMSrock-git
authored andcommitted
[feat][store] serial refactor for coprocessor and dingo-sdk.
1 parent efeaf60 commit e798e44

34 files changed

+2613
-170
lines changed

java/dingo-sdk/src/main/java/io/dingodb/sdk/common/serial/Buf.java

+18
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,31 @@ public interface Buf {
2424
void writeInt(int i);
2525
void writeLong(long l);
2626

27+
void write(int pos, byte b);
28+
void write(int pos, byte[] b);
29+
void write(int srcPos, byte[] b, int pos, int length);
30+
void writeShort(int pos, short i);
31+
void writeInt(int pos, int i);
32+
void writeLong(int pos, long l);
33+
2734
byte peek();
2835
int peekInt();
2936
long peekLong();
3037

3138
byte read();
3239
byte[] read(int length);
3340
void read(byte[] b, int pos, int length);
41+
short readShort();
3442
int readInt();
3543
long readLong();
3644

45+
byte readAt(int pos);
46+
byte[] readAt(int pos, int length);
47+
void readAt(int srcPos, byte[] b, int pos, int length);
48+
short readShortAt(int pos);
49+
int readIntAt(int pos);
50+
long readLongAt(int pos);
51+
3752
void reverseWrite(byte b);
3853
byte reverseRead();
3954
void reverseWriteInt(int i);
@@ -44,6 +59,9 @@ public interface Buf {
4459
void reverseSkipInt();
4560
void ensureRemainder(int length);
4661
void resize(int oldSize, int newSize);
62+
void setForwardOffset(int pos);
63+
int restReadableSize();
64+
int readOffset();
4765

4866
boolean isEnd();
4967

java/dingo-sdk/src/main/java/io/dingodb/sdk/common/serial/BufImpl.java

+113
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ public class BufImpl implements Buf {
2222
private int forwardPos;
2323
private int reversePos;
2424

25+
private void setForwardPos(int pos) {
26+
this.forwardPos = pos;
27+
}
28+
2529
public BufImpl(int bufSize) {
2630
this.buf = new byte[bufSize];
2731
this.forwardPos = 0;
@@ -34,23 +38,50 @@ public BufImpl(byte[] keyBuf) {
3438
this.reversePos = keyBuf.length - 1;
3539
}
3640

41+
public BufImpl(int bufSize, int dataPos) {
42+
this.buf = new byte[bufSize];
43+
this.forwardPos = dataPos;
44+
this.reversePos = bufSize - 1;
45+
}
46+
3747
@Override
3848
public void write(byte b) {
3949
buf[forwardPos++] = b;
4050
}
4151

52+
@Override
53+
public void write(int pos, byte b) {
54+
buf[pos] = b;
55+
}
56+
4257
@Override
4358
public void write(byte[] b) {
4459
System.arraycopy(b, 0, buf, forwardPos, b.length);
4560
forwardPos += b.length;
4661
}
4762

63+
@Override
64+
public void write(int pos, byte[] b) {
65+
System.arraycopy(b, 0, buf, pos, b.length);
66+
}
67+
4868
@Override
4969
public void write(byte[] b, int pos, int length) {
5070
System.arraycopy(b, pos, buf, forwardPos, length);
5171
forwardPos += length;
5272
}
5373

74+
@Override
75+
public void write(int srcPos, byte[] b, int pos, int length) {
76+
System.arraycopy(b, pos, buf, srcPos, length);
77+
}
78+
79+
@Override
80+
public void writeShort(int pos, short i) {
81+
buf[pos] = (byte) (i >>> 8);
82+
buf[pos + 1] = (byte) i;
83+
}
84+
5485
@Override
5586
public void writeInt(int i) {
5687
buf[forwardPos++] = (byte) (i >>> 24);
@@ -59,6 +90,14 @@ public void writeInt(int i) {
5990
buf[forwardPos++] = (byte) i;
6091
}
6192

93+
@Override
94+
public void writeInt(int pos, int i) {
95+
buf[pos] = (byte) (i >>> 24);
96+
buf[pos + 1] = (byte) (i >>> 16);
97+
buf[pos + 2] = (byte) (i >>> 8);
98+
buf[pos + 3] = (byte) i;
99+
}
100+
62101
@Override
63102
public void writeLong(long l) {
64103
buf[forwardPos++] = (byte) (l >>> 56);
@@ -71,6 +110,18 @@ public void writeLong(long l) {
71110
buf[forwardPos++] = (byte) l;
72111
}
73112

113+
@Override
114+
public void writeLong(int pos, long l) {
115+
buf[pos] = (byte) (l >>> 56);
116+
buf[pos + 1] = (byte) (l >>> 48);
117+
buf[pos + 2] = (byte) (l >>> 40);
118+
buf[pos + 3] = (byte) (l >>> 32);
119+
buf[pos + 4] = (byte) (l >>> 24);
120+
buf[pos + 5] = (byte) (l >>> 16);
121+
buf[pos + 6] = (byte) (l >>> 8);
122+
buf[pos + 7] = (byte) l;
123+
}
124+
74125
@Override
75126
public byte peek() {
76127
return buf[forwardPos];
@@ -101,6 +152,11 @@ public byte read() {
101152
return buf[forwardPos++];
102153
}
103154

155+
@Override
156+
public byte readAt(int pos) {
157+
return buf[pos];
158+
}
159+
104160
@Override
105161
public byte[] read(int length) {
106162
byte[] b = new byte[length];
@@ -109,12 +165,36 @@ public byte[] read(int length) {
109165
return b;
110166
}
111167

168+
@Override
169+
public byte[] readAt(int pos, int length) {
170+
byte[] b = new byte[length];
171+
System.arraycopy(buf, pos, b, 0, length);
172+
return b;
173+
}
174+
112175
@Override
113176
public void read(byte[] b, int pos, int length) {
114177
System.arraycopy(buf, forwardPos, b, pos, length);
115178
forwardPos += length;
116179
}
117180

181+
@Override
182+
public void readAt(int srcPos, byte[] b, int pos, int length) {
183+
System.arraycopy(buf, srcPos, b, pos, length);
184+
}
185+
186+
@Override
187+
public short readShortAt(int pos) {
188+
return (short)(((buf[pos] & 0xFF) << 8)
189+
| buf[pos + 1] & 0xFF);
190+
}
191+
192+
@Override
193+
public short readShort() {
194+
return (short)(((buf[forwardPos++] & 0xFF) << 8)
195+
| buf[forwardPos++] & 0xFF);
196+
}
197+
118198
@Override
119199
public int readInt() {
120200
return (((buf[forwardPos++] & 0xFF) << 24)
@@ -123,6 +203,14 @@ public int readInt() {
123203
| buf[forwardPos++] & 0xFF);
124204
}
125205

206+
@Override
207+
public int readIntAt(int pos) {
208+
return (((buf[pos++] & 0xFF) << 24)
209+
| ((buf[pos++] & 0xFF) << 16)
210+
| ((buf[pos++] & 0xFF) << 8)
211+
| buf[pos++] & 0xFF);
212+
}
213+
126214
@Override
127215
public long readLong() {
128216
long l = buf[forwardPos++] & 0xFF;
@@ -133,6 +221,16 @@ public long readLong() {
133221
return l;
134222
}
135223

224+
@Override
225+
public long readLongAt(int pos) {
226+
long l = buf[pos++] & 0xFF;
227+
for (int i = 0; i < 7; i++) {
228+
l <<= 8;
229+
l |= buf[pos++] & 0xFF;
230+
}
231+
return l;
232+
}
233+
136234
@Override
137235
public void reverseWrite(byte b) {
138236
buf[reversePos--] = b;
@@ -213,11 +311,26 @@ public void resize(int oldSize, int newSize) {
213311
}
214312
}
215313

314+
@Override
315+
public void setForwardOffset(int pos) {
316+
this.forwardPos = pos;
317+
}
318+
216319
@Override
217320
public boolean isEnd() {
218321
return (reversePos - forwardPos + 1) == 0;
219322
}
220323

324+
@Override
325+
public int restReadableSize() {
326+
return this.buf.length - forwardPos - 1;
327+
}
328+
329+
@Override
330+
public int readOffset() {
331+
return forwardPos;
332+
}
333+
221334
@Override
222335
public byte[] getBytes() {
223336
int emptySize = reversePos - forwardPos + 1;

java/dingo-sdk/src/main/java/io/dingodb/sdk/common/serial/Config.java

+3
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,8 @@ public class Config {
2222
public final static int KEY_REVERSE_TAG_SIZE = 4;
2323

2424
public final static byte CODEC_VERSION = 1;
25+
public final static byte CODEC_VERSION_V2 = 2;
2526

27+
public final static int idUnit = 2;
28+
public final static int offsetUnit = 4;
2629
}

0 commit comments

Comments
 (0)