Merge branch '2014-messages-sent-event' into '1802-sync-via-removable-storage'

Update MessagesSentEvent to include amount of data sent

See merge request briar/briar!1453
This commit is contained in:
Daniel Lublin
2021-05-10 11:44:27 +00:00
3 changed files with 19 additions and 7 deletions

View File

@@ -18,11 +18,13 @@ public class MessagesSentEvent extends Event {
private final ContactId contactId; private final ContactId contactId;
private final Collection<MessageId> messageIds; private final Collection<MessageId> messageIds;
private final long totalLength;
public MessagesSentEvent(ContactId contactId, public MessagesSentEvent(ContactId contactId,
Collection<MessageId> messageIds) { Collection<MessageId> messageIds, long totalLength) {
this.contactId = contactId; this.contactId = contactId;
this.messageIds = messageIds; this.messageIds = messageIds;
this.totalLength = totalLength;
} }
public ContactId getContactId() { public ContactId getContactId() {
@@ -32,4 +34,8 @@ public class MessagesSentEvent extends Event {
public Collection<MessageId> getMessageIds() { public Collection<MessageId> getMessageIds() {
return messageIds; return messageIds;
} }
public long getTotalLength() {
return totalLength;
}
} }

View File

@@ -415,14 +415,17 @@ class DatabaseComponentImpl<T> implements DatabaseComponent {
throw new NoSuchContactException(); throw new NoSuchContactException();
Collection<MessageId> ids = Collection<MessageId> ids =
db.getMessagesToSend(txn, c, maxLength, maxLatency); db.getMessagesToSend(txn, c, maxLength, maxLatency);
long totalLength = 0;
List<Message> messages = new ArrayList<>(ids.size()); List<Message> messages = new ArrayList<>(ids.size());
for (MessageId m : ids) { for (MessageId m : ids) {
messages.add(db.getMessage(txn, m)); Message message = db.getMessage(txn, m);
totalLength += message.getRawLength();
messages.add(message);
db.updateExpiryTimeAndEta(txn, c, m, maxLatency); db.updateExpiryTimeAndEta(txn, c, m, maxLatency);
} }
if (ids.isEmpty()) return null; if (ids.isEmpty()) return null;
db.lowerRequestedFlag(txn, c, ids); db.lowerRequestedFlag(txn, c, ids);
transaction.attach(new MessagesSentEvent(c, ids)); transaction.attach(new MessagesSentEvent(c, ids, totalLength));
return messages; return messages;
} }
@@ -467,14 +470,17 @@ class DatabaseComponentImpl<T> implements DatabaseComponent {
throw new NoSuchContactException(); throw new NoSuchContactException();
Collection<MessageId> ids = Collection<MessageId> ids =
db.getRequestedMessagesToSend(txn, c, maxLength, maxLatency); db.getRequestedMessagesToSend(txn, c, maxLength, maxLatency);
long totalLength = 0;
List<Message> messages = new ArrayList<>(ids.size()); List<Message> messages = new ArrayList<>(ids.size());
for (MessageId m : ids) { for (MessageId m : ids) {
messages.add(db.getMessage(txn, m)); Message message = db.getMessage(txn, m);
totalLength += message.getRawLength();
messages.add(message);
db.updateExpiryTimeAndEta(txn, c, m, maxLatency); db.updateExpiryTimeAndEta(txn, c, m, maxLatency);
} }
if (ids.isEmpty()) return null; if (ids.isEmpty()) return null;
db.lowerRequestedFlag(txn, c, ids); db.lowerRequestedFlag(txn, c, ids);
transaction.attach(new MessagesSentEvent(c, ids)); transaction.attach(new MessagesSentEvent(c, ids, totalLength));
return messages; return messages;
} }

View File

@@ -136,7 +136,7 @@ internal class MessagingControllerImplTest : ControllerTest() {
val messageId1 = MessageId(getRandomId()) val messageId1 = MessageId(getRandomId())
val messageId2 = MessageId(getRandomId()) val messageId2 = MessageId(getRandomId())
val messageIds = listOf(messageId1, messageId2) val messageIds = listOf(messageId1, messageId2)
val event = MessagesSentEvent(contact.id, messageIds) val event = MessagesSentEvent(contact.id, messageIds, 1234)
every { every {
webSocketController.sendEvent( webSocketController.sendEvent(
@@ -274,7 +274,7 @@ internal class MessagingControllerImplTest : ControllerTest() {
val messageId1 = MessageId(getRandomId()) val messageId1 = MessageId(getRandomId())
val messageId2 = MessageId(getRandomId()) val messageId2 = MessageId(getRandomId())
val messageIds = listOf(messageId1, messageId2) val messageIds = listOf(messageId1, messageId2)
val event = MessagesSentEvent(contact.id, messageIds) val event = MessagesSentEvent(contact.id, messageIds, 1234)
val json = """ val json = """
{ {