0
|
1 //
|
|
2 // MessagePack for Java
|
|
3 //
|
|
4 // Copyright (C) 2009 - 2013 FURUHASHI Sadayuki
|
|
5 //
|
|
6 // Licensed under the Apache License, Version 2.0 (the "License");
|
|
7 // you may not use this file except in compliance with the License.
|
|
8 // You may obtain a copy of the License at
|
|
9 //
|
|
10 // http://www.apache.org/licenses/LICENSE-2.0
|
|
11 //
|
|
12 // Unless required by applicable law or agreed to in writing, software
|
|
13 // distributed under the License is distributed on an "AS IS" BASIS,
|
|
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15 // See the License for the specific language governing permissions and
|
|
16 // limitations under the License.
|
|
17 //
|
|
18 package org.msgpack.unpacker;
|
|
19
|
|
20 import java.nio.ByteBuffer;
|
|
21
|
|
22 import org.msgpack.MessagePack;
|
|
23 import org.msgpack.io.LinkedBufferInput;
|
|
24
|
|
25 public class MessagePackBufferUnpacker extends MessagePackUnpacker implements BufferUnpacker {
|
|
26 private static final int DEFAULT_BUFFER_SIZE = 512; // TODO default buffer
|
|
27 // size
|
|
28
|
|
29 public MessagePackBufferUnpacker(MessagePack msgpack) {
|
|
30 this(msgpack, DEFAULT_BUFFER_SIZE);
|
|
31 }
|
|
32
|
|
33 public MessagePackBufferUnpacker(MessagePack msgpack, int bufferSize) {
|
|
34 super(msgpack, new LinkedBufferInput(bufferSize));
|
|
35 }
|
|
36
|
|
37 @Override
|
|
38 public MessagePackBufferUnpacker wrap(byte[] b) {
|
|
39 return wrap(b, 0, b.length);
|
|
40 }
|
|
41
|
|
42 @Override
|
|
43 public MessagePackBufferUnpacker wrap(byte[] b, int off, int len) {
|
|
44 ((LinkedBufferInput) in).clear();
|
|
45 ((LinkedBufferInput) in).feed(b, off, len, true);
|
|
46 return this;
|
|
47 }
|
|
48
|
|
49 @Override
|
|
50 public MessagePackBufferUnpacker wrap(ByteBuffer buf) {
|
|
51 ((LinkedBufferInput) in).clear();
|
|
52 ((LinkedBufferInput) in).feed(buf, true);
|
|
53 return this;
|
|
54 }
|
|
55
|
|
56 @Override
|
|
57 public MessagePackBufferUnpacker feed(byte[] b) {
|
|
58 ((LinkedBufferInput) in).feed(b);
|
|
59 return this;
|
|
60 }
|
|
61
|
|
62 @Override
|
|
63 public MessagePackBufferUnpacker feed(byte[] b, boolean reference) {
|
|
64 ((LinkedBufferInput) in).feed(b, reference);
|
|
65 return this;
|
|
66 }
|
|
67
|
|
68 @Override
|
|
69 public MessagePackBufferUnpacker feed(byte[] b, int off, int len) {
|
|
70 ((LinkedBufferInput) in).feed(b, off, len);
|
|
71 return this;
|
|
72 }
|
|
73
|
|
74 @Override
|
|
75 public MessagePackBufferUnpacker feed(byte[] b, int off, int len, boolean reference) {
|
|
76 ((LinkedBufferInput) in).feed(b, off, len, reference);
|
|
77 return this;
|
|
78 }
|
|
79
|
|
80 @Override
|
|
81 public MessagePackBufferUnpacker feed(ByteBuffer b) {
|
|
82 ((LinkedBufferInput) in).feed(b);
|
|
83 return this;
|
|
84 }
|
|
85
|
|
86 @Override
|
|
87 public MessagePackBufferUnpacker feed(ByteBuffer buf, boolean reference) {
|
|
88 ((LinkedBufferInput) in).feed(buf, reference);
|
|
89 return this;
|
|
90 }
|
|
91
|
|
92 @Override
|
|
93 public int getBufferSize() {
|
|
94 return ((LinkedBufferInput) in).getSize();
|
|
95 }
|
|
96
|
|
97 @Override
|
|
98 public void copyReferencedBuffer() {
|
|
99 ((LinkedBufferInput) in).copyReferencedBuffer();
|
|
100 }
|
|
101
|
|
102 @Override
|
|
103 public void clear() {
|
|
104 ((LinkedBufferInput) in).clear();
|
|
105 reset();
|
|
106 }
|
|
107 }
|