Added ability to measure round-trip latency and to assure message integrity.
diff --git a/apps/foo/src/main/java/org/onlab/onos/foo/TestMessage.java b/apps/foo/src/main/java/org/onlab/onos/foo/TestMessage.java
index b6f1768..4f0c53b 100644
--- a/apps/foo/src/main/java/org/onlab/onos/foo/TestMessage.java
+++ b/apps/foo/src/main/java/org/onlab/onos/foo/TestMessage.java
@@ -2,40 +2,42 @@
import org.onlab.nio.AbstractMessage;
+import static com.google.common.base.Preconditions.checkNotNull;
+
/**
- * Fixed-length message.
+ * Test message for measuring rate and round-trip latency.
*/
public class TestMessage extends AbstractMessage {
- private final byte[] data;
+ private final byte[] padding;
- /**
- * Creates a new message with the specified length.
- *
- * @param length message length
- */
- public TestMessage(int length) {
- this.length = length;
- data = new byte[length];
- }
+ private final long requestorTime;
+ private final long responderTime;
/**
* Creates a new message with the specified data.
*
- * @param data message data
+ * @param requestorTime requester time
+ * @param responderTime responder time
+ * @param padding message padding
*/
- TestMessage(byte[] data) {
- this.length = data.length;
- this.data = data;
+ TestMessage(int length, long requestorTime, long responderTime, byte[] padding) {
+ this.length = length;
+ this.requestorTime = requestorTime;
+ this.responderTime = responderTime;
+ this.padding = checkNotNull(padding, "Padding cannot be null");
}
- /**
- * Gets the backing byte array data.
- *
- * @return backing byte array
- */
- public byte[] data() {
- return data;
+ public long requestorTime() {
+ return requestorTime;
+ }
+
+ public long responderTime() {
+ return responderTime;
+ }
+
+ public byte[] padding() {
+ return padding;
}
}