diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseComponent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseComponent.java index ea05938d4..8835b7526 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseComponent.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseComponent.java @@ -266,6 +266,14 @@ public interface DatabaseComponent { */ Collection getLocalAuthors(Transaction txn) throws DbException; + /** + * Returns the IDs of all messages in the given group. + *

+ * Read-only. + */ + Collection getMessageIds(Transaction txn, GroupId g) + throws DbException; + /** * Returns the IDs of any messages that need to be validated. *

diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/DatabaseComponentImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/db/DatabaseComponentImpl.java index aaab4b9dd..3661039aa 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/DatabaseComponentImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/DatabaseComponentImpl.java @@ -466,6 +466,15 @@ class DatabaseComponentImpl implements DatabaseComponent { return db.getLocalAuthors(txn); } + @Override + public Collection getMessageIds(Transaction transaction, + GroupId g) throws DbException { + T txn = unbox(transaction); + if (!db.containsGroup(txn, g)) + throw new NoSuchGroupException(); + return db.getMessageIds(txn, g); + } + @Override public Collection getMessagesToValidate(Transaction transaction) throws DbException {