From a9cd40faeb64fb4858efdf09a2ac93233be0166e Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 5 Jan 2021 11:19:44 -0300 Subject: [PATCH] Add transactions to methods in ForumManager --- .../briarproject/briar/api/forum/ForumManager.java | 11 +++++++++++ .../briarproject/briar/forum/ForumManagerImpl.java | 14 ++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumManager.java b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumManager.java index b8b9f5ca2..7d6bd42a9 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumManager.java @@ -74,6 +74,11 @@ public interface ForumManager { */ Collection getForums() throws DbException; + /** + * Returns all forums to which the user subscribes. + */ + Collection getForums(Transaction txn) throws DbException; + /** * Returns the text of the forum post with the given ID. */ @@ -92,8 +97,14 @@ public interface ForumManager { /** * Returns the group count for the given forum. */ + @Deprecated GroupCount getGroupCount(GroupId g) throws DbException; + /** + * Returns the group count for the given forum. + */ + GroupCount getGroupCount(Transaction txn, GroupId g) throws DbException; + /** * Marks a message as read or unread and updates the group count. */ diff --git a/briar-core/src/main/java/org/briarproject/briar/forum/ForumManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/forum/ForumManagerImpl.java index ee9c578ec..17935ab7b 100644 --- a/briar-core/src/main/java/org/briarproject/briar/forum/ForumManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/forum/ForumManagerImpl.java @@ -165,8 +165,12 @@ class ForumManagerImpl extends BdfIncomingMessageHook implements ForumManager { @Override public Collection getForums() throws DbException { - Collection groups = db.transactionWithResult(true, txn -> - db.getGroups(txn, CLIENT_ID, MAJOR_VERSION)); + return db.transactionWithResult(true, this::getForums); + } + + @Override + public Collection getForums(Transaction txn) throws DbException { + Collection groups = db.getGroups(txn, CLIENT_ID, MAJOR_VERSION); try { List forums = new ArrayList<>(); for (Group g : groups) forums.add(parseForum(g)); @@ -235,6 +239,12 @@ class ForumManagerImpl extends BdfIncomingMessageHook implements ForumManager { return messageTracker.getGroupCount(g); } + @Override + public GroupCount getGroupCount(Transaction txn, GroupId g) + throws DbException { + return messageTracker.getGroupCount(txn, g); + } + @Override public void setReadFlag(GroupId g, MessageId m, boolean read) throws DbException {