Skip to content

Commit 6e9d654

Browse files
committed
added BufferUnpacker.copyReferencedBuffer
1 parent 5c92d1d commit 6e9d654

File tree

5 files changed

+41
-28
lines changed

5 files changed

+41
-28
lines changed

src/main/java/org/msgpack/io/LinkedBufferInput.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,16 +216,16 @@ public void feed(byte[] b) {
216216
feed(b, 0, b.length, false);
217217
}
218218

219-
public void feed(byte[] b, boolean nocopy) {
220-
feed(b, 0, b.length, nocopy);
219+
public void feed(byte[] b, boolean reference) {
220+
feed(b, 0, b.length, reference);
221221
}
222222

223223
public void feed(byte[] b, int off, int len) {
224224
feed(b, off, len, false);
225225
}
226226

227-
public void feed(byte[] b, int off, int len, boolean nocopy) {
228-
if (nocopy) {
227+
public void feed(byte[] b, int off, int len, boolean reference) {
228+
if (reference) {
229229
if (writable > 0 && link.peekLast().remaining() == 0) {
230230
link.add(link.size()-1, ByteBuffer.wrap(b, off, len));
231231
return;
@@ -270,8 +270,8 @@ public void feed(ByteBuffer b) {
270270
feed(b, false);
271271
}
272272

273-
public void feed(ByteBuffer buf, boolean nocopy) {
274-
if (nocopy) {
273+
public void feed(ByteBuffer buf, boolean reference) {
274+
if (reference) {
275275
if (writable > 0 && link.peekLast().remaining() == 0) {
276276
link.add(link.size()-1, buf);
277277
return;

src/main/java/org/msgpack/unpacker/BufferUnpacker.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,17 @@ public interface BufferUnpacker extends Unpacker {
3434

3535
public BufferUnpacker feed(byte[] b);
3636

37-
public BufferUnpacker feed(byte[] b, boolean nocopy);
37+
public BufferUnpacker feed(byte[] b, boolean reference);
3838

3939
public BufferUnpacker feed(byte[] b, int off, int len);
4040

41-
public BufferUnpacker feed(byte[] b, int off, int len, boolean nocopy);
41+
public BufferUnpacker feed(byte[] b, int off, int len, boolean reference);
4242

4343
public BufferUnpacker feed(ByteBuffer b);
4444

45-
public BufferUnpacker feed(ByteBuffer buf, boolean nocopy);
45+
public BufferUnpacker feed(ByteBuffer buf, boolean reference);
46+
47+
public void copyReferencedBuffer();
4648

4749
public void clear();
4850
}

src/main/java/org/msgpack/unpacker/MessagePackBufferUnpacker.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ public MessagePackBufferUnpacker feed(byte[] b) {
6060
}
6161

6262
@Override
63-
public MessagePackBufferUnpacker feed(byte[] b, boolean nocopy) {
64-
((LinkedBufferInput) in).feed(b, nocopy);
63+
public MessagePackBufferUnpacker feed(byte[] b, boolean reference) {
64+
((LinkedBufferInput) in).feed(b, reference);
6565
return this;
6666
}
6767

@@ -72,8 +72,8 @@ public MessagePackBufferUnpacker feed(byte[] b, int off, int len) {
7272
}
7373

7474
@Override
75-
public MessagePackBufferUnpacker feed(byte[] b, int off, int len, boolean nocopy) {
76-
((LinkedBufferInput) in).feed(b, off, len, nocopy);
75+
public MessagePackBufferUnpacker feed(byte[] b, int off, int len, boolean reference) {
76+
((LinkedBufferInput) in).feed(b, off, len, reference);
7777
return this;
7878
}
7979

@@ -84,11 +84,16 @@ public MessagePackBufferUnpacker feed(ByteBuffer b) {
8484
}
8585

8686
@Override
87-
public MessagePackBufferUnpacker feed(ByteBuffer buf, boolean nocopy) {
88-
((LinkedBufferInput) in).feed(buf, nocopy);
87+
public MessagePackBufferUnpacker feed(ByteBuffer buf, boolean reference) {
88+
((LinkedBufferInput) in).feed(buf, reference);
8989
return this;
9090
}
9191

92+
@Override
93+
public void copyReferencedBuffer() {
94+
((LinkedBufferInput) in).copyReferencedBuffer();
95+
}
96+
9297
@Override
9398
public void clear() {
9499
((LinkedBufferInput) in).clear();

src/main/java/org/msgpack/util/json/JSONBufferUnpacker.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public JSONBufferUnpacker feed(byte[] b) {
6868
}
6969

7070
@Override
71-
public JSONBufferUnpacker feed(byte[] b, boolean nocopy) {
71+
public JSONBufferUnpacker feed(byte[] b, boolean reference) {
7272
throw new UnsupportedOperationException(
7373
"JSONBufferUnpacker doesn't support feed()");
7474
}
@@ -80,7 +80,7 @@ public JSONBufferUnpacker feed(byte[] b, int off, int len) {
8080
}
8181

8282
@Override
83-
public JSONBufferUnpacker feed(byte[] b, int off, int len, boolean nocopy) {
83+
public JSONBufferUnpacker feed(byte[] b, int off, int len, boolean reference) {
8484
throw new UnsupportedOperationException(
8585
"JSONBufferUnpacker doesn't support feed()");
8686
}
@@ -92,11 +92,17 @@ public JSONBufferUnpacker feed(ByteBuffer buf) {
9292
}
9393

9494
@Override
95-
public JSONBufferUnpacker feed(ByteBuffer buf, boolean nocopy) {
95+
public JSONBufferUnpacker feed(ByteBuffer buf, boolean reference) {
9696
throw new UnsupportedOperationException(
9797
"JSONBufferUnpacker doesn't support feed()");
9898
}
9999

100+
@Override
101+
public void copyReferencedBuffer() {
102+
throw new UnsupportedOperationException(
103+
"JSONBufferUnpacker doesn't support copyReferencedBuffer()");
104+
}
105+
100106
@Override
101107
public void clear() {
102108
reset();

src/test/java/org/msgpack/io/TestLinkedBufferInput.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void testFeedByteArrayCopy() throws IOException {
7373
}
7474

7575
@Test
76-
public void testFeedByteArrayNoCopy() throws IOException {
76+
public void testFeedByteArrayReference() throws IOException {
7777
byte[] small = new byte[8];
7878
small[0] = (byte)1;
7979
small[2] = (byte)1;
@@ -112,7 +112,7 @@ public void testFeedByteArrayNoCopy() throws IOException {
112112
}
113113

114114
@Test
115-
public void testFeedByteArrayCopyNoCopy() throws IOException {
115+
public void testFeedByteArrayCopyReference() throws IOException {
116116
byte[] small = new byte[8];
117117
small[0] = (byte)1;
118118
small[2] = (byte)1;
@@ -325,7 +325,7 @@ public void testFeedByteBufferCopy() throws IOException {
325325
}
326326

327327
@Test
328-
public void testFeedByteBufferNoCopy() throws IOException {
328+
public void testFeedByteBufferReference() throws IOException {
329329
byte[] small = new byte[8];
330330
small[0] = (byte)1;
331331
small[2] = (byte)1;
@@ -364,7 +364,7 @@ public void testFeedByteBufferNoCopy() throws IOException {
364364
}
365365

366366
@Test
367-
public void testFeedByteBufferCopyNoCopy() throws IOException {
367+
public void testFeedByteBufferCopyReference() throws IOException {
368368
byte[] small = new byte[8];
369369
small[0] = (byte)1;
370370
small[2] = (byte)1;
@@ -582,12 +582,12 @@ public void testBufferRecycleByteArray() throws IOException {
582582
assertEquals(32, b.writable); // recycled
583583
assertEquals(true, allocated == b.link.peekLast());
584584

585-
b.feed(data, true); // feed nocopy 1;
585+
b.feed(data, true); // feed reference 1;
586586
assertEquals(2, b.link.size()); // leaves last writable buffer
587587
assertEquals(32, b.writable); // which remains 32 bytes
588588
assertEquals(true, allocated == b.link.peekLast());
589589

590-
b.feed(data, true); // feed nocopy 2;
590+
b.feed(data, true); // feed reference 2;
591591
assertEquals(3, b.link.size()); // leaves last writable buffer
592592
assertEquals(32, b.writable); // which remains 32 bytes
593593
assertEquals(true, allocated == b.link.peekLast());
@@ -613,7 +613,7 @@ public void testBufferRecycleByteArray() throws IOException {
613613
assertEquals(16, b.writable);
614614
assertEquals(true, allocated == b.link.peekLast());
615615

616-
b.feed(data, true); // feed nocopy 2; writable buffer is hidden
616+
b.feed(data, true); // feed reference 2; writable buffer is hidden
617617
assertEquals(n, 16);
618618
assertArrayEquals(data, buf);
619619
assertEquals(2, b.link.size());
@@ -687,12 +687,12 @@ public void testBufferRecycleByteBuffer() throws IOException {
687687
assertEquals(32, b.writable); // recycled
688688
assertEquals(true, allocated == b.link.peekLast());
689689

690-
b.feed(bb.duplicate(), true); // feed nocopy 1;
690+
b.feed(bb.duplicate(), true); // feed reference 1;
691691
assertEquals(2, b.link.size()); // leaves last writable buffer
692692
assertEquals(32, b.writable); // which remains 32 bytes
693693
assertEquals(true, allocated == b.link.peekLast());
694694

695-
b.feed(bb.duplicate(), true); // feed nocopy 2;
695+
b.feed(bb.duplicate(), true); // feed reference 2;
696696
assertEquals(3, b.link.size()); // leaves last writable buffer
697697
assertEquals(32, b.writable); // which remains 32 bytes
698698
assertEquals(true, allocated == b.link.peekLast());
@@ -718,7 +718,7 @@ public void testBufferRecycleByteBuffer() throws IOException {
718718
assertEquals(16, b.writable);
719719
assertEquals(true, allocated == b.link.peekLast());
720720

721-
b.feed(bb.duplicate(), true); // feed nocopy 2; writable buffer is hidden
721+
b.feed(bb.duplicate(), true); // feed reference 2; writable buffer is hidden
722722
assertEquals(n, 16);
723723
assertArrayEquals(data, buf);
724724
assertEquals(2, b.link.size());

0 commit comments

Comments
 (0)