From 95c3fb4fed1e29ede203ff12e1b134a0cb0869c0 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Wed, 21 Sep 2011 12:37:19 +0100 Subject: [PATCH] Removed getCapacity() from BatchWriter interface. --- .../sf/briar/api/protocol/writers/BatchWriter.java | 3 --- components/net/sf/briar/db/DatabaseComponentImpl.java | 11 ++++++----- .../sf/briar/protocol/writers/BatchWriterImpl.java | 10 ++-------- test/net/sf/briar/db/DatabaseComponentTest.java | 8 +++----- 4 files changed, 11 insertions(+), 21 deletions(-) diff --git a/api/net/sf/briar/api/protocol/writers/BatchWriter.java b/api/net/sf/briar/api/protocol/writers/BatchWriter.java index b105b249aa..60818ac569 100644 --- a/api/net/sf/briar/api/protocol/writers/BatchWriter.java +++ b/api/net/sf/briar/api/protocol/writers/BatchWriter.java @@ -7,9 +7,6 @@ import net.sf.briar.api.protocol.BatchId; /** An interface for creating a batch packet. */ public interface BatchWriter { - /** Returns the capacity of the batch in bytes. */ - int getCapacity(); - /** * Attempts to add the given raw message to the batch and returns true if * it was added. diff --git a/components/net/sf/briar/db/DatabaseComponentImpl.java b/components/net/sf/briar/db/DatabaseComponentImpl.java index eda2c74c8b..8b8c7d5c98 100644 --- a/components/net/sf/briar/db/DatabaseComponentImpl.java +++ b/components/net/sf/briar/db/DatabaseComponentImpl.java @@ -31,6 +31,7 @@ import net.sf.briar.api.protocol.GroupId; import net.sf.briar.api.protocol.Message; import net.sf.briar.api.protocol.MessageId; import net.sf.briar.api.protocol.Offer; +import net.sf.briar.api.protocol.ProtocolConstants; import net.sf.briar.api.protocol.SubscriptionUpdate; import net.sf.briar.api.protocol.TransportUpdate; import net.sf.briar.api.protocol.writers.AckWriter; @@ -422,7 +423,7 @@ DatabaseCleaner.Callback { try { T txn = db.startTransaction(); try { - int capacity = b.getCapacity(); + int capacity = ProtocolConstants.MAX_PACKET_LENGTH; Collection<MessageId> sendable = db.getSendableMessages(txn, c, capacity); for(MessageId m : sendable) { @@ -486,12 +487,12 @@ DatabaseCleaner.Callback { Iterator<MessageId> it = requested.iterator(); while(it.hasNext()) { MessageId m = it.next(); - byte[] raw = db.getMessageIfSendable(txn, c, m); // If the message is still sendable, try to add - // it to the batch. If the batch is full, don't - // treat the message as considered, and don't - // try to add any further messages. + // it to the batch + byte[] raw = db.getMessageIfSendable(txn, c, m); if(raw != null) { + // If the batch is full, don't treat the + // message as considered if(!b.writeMessage(raw)) break; sent.add(m); } diff --git a/components/net/sf/briar/protocol/writers/BatchWriterImpl.java b/components/net/sf/briar/protocol/writers/BatchWriterImpl.java index bf134f585f..fac083baff 100644 --- a/components/net/sf/briar/protocol/writers/BatchWriterImpl.java +++ b/components/net/sf/briar/protocol/writers/BatchWriterImpl.java @@ -27,12 +27,6 @@ class BatchWriterImpl implements BatchWriter { this.messageDigest = messageDigest; } - public int getCapacity() { - // Allow one byte for the batch tag, one for the list start tag and - // one for the list end tag - return ProtocolConstants.MAX_PACKET_LENGTH - 3; - } - public boolean writeMessage(byte[] message) throws IOException { if(!started) { messageDigest.reset(); @@ -41,8 +35,8 @@ class BatchWriterImpl implements BatchWriter { started = true; } // Allow one byte for the list end tag - int capacity = - ProtocolConstants.MAX_PACKET_LENGTH - (int) w.getBytesWritten() - 1; + int capacity = ProtocolConstants.MAX_PACKET_LENGTH + - (int) w.getBytesWritten() - 1; if(capacity < message.length) return false; // Bypass the writer and write each raw message directly out.write(message); diff --git a/test/net/sf/briar/db/DatabaseComponentTest.java b/test/net/sf/briar/db/DatabaseComponentTest.java index c7b0ba20c1..7540c5b39e 100644 --- a/test/net/sf/briar/db/DatabaseComponentTest.java +++ b/test/net/sf/briar/db/DatabaseComponentTest.java @@ -25,6 +25,7 @@ import net.sf.briar.api.protocol.GroupId; import net.sf.briar.api.protocol.Message; import net.sf.briar.api.protocol.MessageId; import net.sf.briar.api.protocol.Offer; +import net.sf.briar.api.protocol.ProtocolConstants; import net.sf.briar.api.protocol.SubscriptionUpdate; import net.sf.briar.api.protocol.TransportUpdate; import net.sf.briar.api.protocol.writers.AckWriter; @@ -41,8 +42,6 @@ import org.junit.Test; public abstract class DatabaseComponentTest extends TestCase { - private static final int ONE_MEGABYTE = 1024 * 1024; - protected final Object txn = new Object(); protected final AuthorId authorId; protected final BatchId batchId; @@ -740,9 +739,8 @@ public abstract class DatabaseComponentTest extends TestCase { allowing(database).containsContact(txn, contactId); will(returnValue(true)); // Get the sendable messages - oneOf(batchWriter).getCapacity(); - will(returnValue(ONE_MEGABYTE)); - oneOf(database).getSendableMessages(txn, contactId, ONE_MEGABYTE); + oneOf(database).getSendableMessages(txn, contactId, + ProtocolConstants.MAX_PACKET_LENGTH); will(returnValue(sendable)); // Try to add both messages to the writer - only manage to add one oneOf(database).getMessage(txn, messageId); -- GitLab