summaryrefslogtreecommitdiff
path: root/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaData.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaData.java')
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaData.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaData.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaData.java
new file mode 100644
index 0000000000..d99adb91fe
--- /dev/null
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaData.java
@@ -0,0 +1,72 @@
+package org.apache.qpid.server.store;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
+import org.apache.qpid.framing.EncodingUtils;
+import org.apache.qpid.server.plugin.MessageMetaDataType;
+import org.apache.qpid.server.store.StorableMessageMetaData;
+import org.apache.qpid.server.util.ByteBufferOutputStream;
+
+public class TestMessageMetaData implements StorableMessageMetaData
+{
+ public static final MessageMetaDataType.Factory<TestMessageMetaData> FACTORY = new TestMessageMetaDataFactory();
+
+ private static final TestMessageMetaDataType TYPE = new TestMessageMetaDataType();
+
+ private int _contentSize;
+ private long _messageId;
+
+ public TestMessageMetaData(long messageId, int contentSize)
+ {
+ _contentSize = contentSize;
+ _messageId = messageId;
+ }
+
+ @Override
+ public int getContentSize()
+ {
+ return _contentSize;
+ }
+
+ @Override
+ public int getStorableSize()
+ {
+ int storeableSize = 8 + //message id, long, 8bytes/64bits
+ 4; //content size, int, 4bytes/32bits
+
+ return storeableSize;
+ }
+
+ @Override
+ public MessageMetaDataType getType()
+ {
+ return TYPE;
+ }
+
+ @Override
+ public boolean isPersistent()
+ {
+ return true;
+ }
+
+ @Override
+ public int writeToBuffer(int offsetInMetaData, ByteBuffer dest)
+ {
+ int oldPosition = dest.position();
+ try
+ {
+ DataOutputStream dataOutputStream = new DataOutputStream(new ByteBufferOutputStream(dest));
+ EncodingUtils.writeLong(dataOutputStream, _messageId);
+ EncodingUtils.writeInteger(dataOutputStream, _contentSize);
+ }
+ catch (IOException e)
+ {
+ // This shouldn't happen as we are not actually using anything that can throw an IO Exception
+ throw new RuntimeException(e);
+ }
+
+ return dest.position() - oldPosition;
+ };
+}