diff options
Diffstat (limited to 'zookeeper-server/src/main/java/org/apache/zookeeper/server/Request.java')
-rw-r--r-- | zookeeper-server/src/main/java/org/apache/zookeeper/server/Request.java | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/Request.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/Request.java index 41e3d7fcd..1aee6aee2 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/Request.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/Request.java @@ -19,6 +19,7 @@ package org.apache.zookeeper.server; import static java.nio.charset.StandardCharsets.UTF_8; +import java.io.IOException; import java.nio.ByteBuffer; import java.util.List; import org.apache.jute.Record; @@ -78,7 +79,29 @@ public class Request { public final int type; - public final ByteBuffer request; + private final ByteBuffer request; + + public void readRequestRecord(Record record) throws IOException { + if (request != null) { + request.rewind(); + ByteBufferInputStream.byteBuffer2Record(request, record); + request.rewind(); + return; + } + throw new IOException(new NullPointerException("request")); + } + + public byte[] readRequestBytes() { + if (request != null) { + request.rewind(); + int len = request.remaining(); + byte[] b = new byte[len]; + request.get(b); + request.rewind(); + return b; + } + return null; + } public final ServerCnxn cnxn; |