summaryrefslogtreecommitdiff
path: root/zookeeper-server/src/main/java/org/apache/zookeeper/server/Request.java
diff options
context:
space:
mode:
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.java25
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;