aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/fs4/DocsumPacket.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/fs4/DocsumPacket.java')
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/DocsumPacket.java33
1 files changed, 31 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/fs4/DocsumPacket.java b/container-search/src/main/java/com/yahoo/fs4/DocsumPacket.java
index 3105b645cd0..ad679e0c53c 100644
--- a/container-search/src/main/java/com/yahoo/fs4/DocsumPacket.java
+++ b/container-search/src/main/java/com/yahoo/fs4/DocsumPacket.java
@@ -1,6 +1,10 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.fs4;
+import com.yahoo.document.GlobalId;
+
+import java.nio.ByteBuffer;
+
/**
* An "extended query result" packet. This is the query result
* packets used today, they allow more flexible sets of parameters
@@ -8,10 +12,15 @@ package com.yahoo.fs4;
*
* @author bratseth
*/
-public class DocsumPacket {
+public class DocsumPacket extends Packet {
+
+ private GlobalId globalId = new GlobalId(new byte[GlobalId.LENGTH]);
private byte[] data;
+ private DocsumPacket() {
+ }
+
/**
* Constructor used by streaming search
*/
@@ -19,11 +28,31 @@ public class DocsumPacket {
data = buffer.clone();
}
+ public static DocsumPacket create() {
+ return new DocsumPacket();
+ }
+
+ public int getCode() { return 205; }
+
+ /**
+ * Fills this packet from a byte buffer positioned at the
+ * first byte of the packet
+ */
+ public void decodeBody(ByteBuffer buffer) {
+ byte[] rawGid = new byte[GlobalId.LENGTH];
+ buffer.get(rawGid);
+ globalId = new GlobalId(rawGid);
+ data=new byte[getLength()-12-GlobalId.LENGTH];
+ buffer.get(data);
+ }
+
+ public GlobalId getGlobalId() { return globalId; }
public byte[] getData() { return data; }
public String toString() {
- return "docsum packet size: " + (data==null ? "(no data)" : data.length + " bytes") + " ]";
+ return "docsum packet [globalId: " + globalId.toString() +
+ ", size: " + (data==null ? "(no data)" : data.length + " bytes") + " ]";
}
}