mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-18 21:59:54 +01:00
Exposed getMessageHeaders() through DatabaseComponent interface.
This commit is contained in:
@@ -16,6 +16,7 @@ import net.sf.briar.api.protocol.Batch;
|
|||||||
import net.sf.briar.api.protocol.Group;
|
import net.sf.briar.api.protocol.Group;
|
||||||
import net.sf.briar.api.protocol.GroupId;
|
import net.sf.briar.api.protocol.GroupId;
|
||||||
import net.sf.briar.api.protocol.Message;
|
import net.sf.briar.api.protocol.Message;
|
||||||
|
import net.sf.briar.api.protocol.MessageHeader;
|
||||||
import net.sf.briar.api.protocol.MessageId;
|
import net.sf.briar.api.protocol.MessageId;
|
||||||
import net.sf.briar.api.protocol.Offer;
|
import net.sf.briar.api.protocol.Offer;
|
||||||
import net.sf.briar.api.protocol.SubscriptionUpdate;
|
import net.sf.briar.api.protocol.SubscriptionUpdate;
|
||||||
@@ -128,6 +129,9 @@ public interface DatabaseComponent {
|
|||||||
Map<TransportId, TransportProperties> getLocalTransports()
|
Map<TransportId, TransportProperties> getLocalTransports()
|
||||||
throws DbException;
|
throws DbException;
|
||||||
|
|
||||||
|
/** Returns the headers of all messages in the given group. */
|
||||||
|
Collection<MessageHeader> getMessageHeaders(GroupId g) throws DbException;
|
||||||
|
|
||||||
/** Returns the user's rating for the given author. */
|
/** Returns the user's rating for the given author. */
|
||||||
Rating getRating(AuthorId a) throws DbException;
|
Rating getRating(AuthorId a) throws DbException;
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ import net.sf.briar.api.protocol.BatchId;
|
|||||||
import net.sf.briar.api.protocol.Group;
|
import net.sf.briar.api.protocol.Group;
|
||||||
import net.sf.briar.api.protocol.GroupId;
|
import net.sf.briar.api.protocol.GroupId;
|
||||||
import net.sf.briar.api.protocol.Message;
|
import net.sf.briar.api.protocol.Message;
|
||||||
|
import net.sf.briar.api.protocol.MessageHeader;
|
||||||
import net.sf.briar.api.protocol.MessageId;
|
import net.sf.briar.api.protocol.MessageId;
|
||||||
import net.sf.briar.api.protocol.Offer;
|
import net.sf.briar.api.protocol.Offer;
|
||||||
import net.sf.briar.api.protocol.SubscriptionUpdate;
|
import net.sf.briar.api.protocol.SubscriptionUpdate;
|
||||||
@@ -781,6 +782,25 @@ DatabaseCleaner.Callback {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Collection<MessageHeader> getMessageHeaders(GroupId g)
|
||||||
|
throws DbException {
|
||||||
|
messageLock.readLock().lock();
|
||||||
|
try {
|
||||||
|
T txn = db.startTransaction();
|
||||||
|
try {
|
||||||
|
Collection<MessageHeader> headers =
|
||||||
|
db.getMessageHeaders(txn, g);
|
||||||
|
db.commitTransaction(txn);
|
||||||
|
return headers;
|
||||||
|
} catch(DbException e) {
|
||||||
|
db.abortTransaction(txn);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
messageLock.readLock().unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Rating getRating(AuthorId a) throws DbException {
|
public Rating getRating(AuthorId a) throws DbException {
|
||||||
ratingLock.readLock().lock();
|
ratingLock.readLock().lock();
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import net.sf.briar.api.protocol.BatchId;
|
|||||||
import net.sf.briar.api.protocol.Group;
|
import net.sf.briar.api.protocol.Group;
|
||||||
import net.sf.briar.api.protocol.GroupId;
|
import net.sf.briar.api.protocol.GroupId;
|
||||||
import net.sf.briar.api.protocol.Message;
|
import net.sf.briar.api.protocol.Message;
|
||||||
|
import net.sf.briar.api.protocol.MessageHeader;
|
||||||
import net.sf.briar.api.protocol.MessageId;
|
import net.sf.briar.api.protocol.MessageId;
|
||||||
import net.sf.briar.api.protocol.Offer;
|
import net.sf.briar.api.protocol.Offer;
|
||||||
import net.sf.briar.api.protocol.ProtocolConstants;
|
import net.sf.briar.api.protocol.ProtocolConstants;
|
||||||
@@ -144,6 +145,9 @@ public abstract class DatabaseComponentTest extends TestCase {
|
|||||||
will(returnValue(groupId));
|
will(returnValue(groupId));
|
||||||
oneOf(database).containsSubscription(txn, groupId);
|
oneOf(database).containsSubscription(txn, groupId);
|
||||||
will(returnValue(true));
|
will(returnValue(true));
|
||||||
|
// getMessageHeaders(groupId)
|
||||||
|
oneOf(database).getMessageHeaders(txn, groupId);
|
||||||
|
will(returnValue(Collections.<MessageHeader>emptyList()));
|
||||||
// getSubscriptions()
|
// getSubscriptions()
|
||||||
oneOf(database).getSubscriptions(txn);
|
oneOf(database).getSubscriptions(txn);
|
||||||
will(returnValue(Collections.singletonList(groupId)));
|
will(returnValue(Collections.singletonList(groupId)));
|
||||||
@@ -181,6 +185,7 @@ public abstract class DatabaseComponentTest extends TestCase {
|
|||||||
assertEquals(remoteProperties, db.getRemoteProperties(transportId));
|
assertEquals(remoteProperties, db.getRemoteProperties(transportId));
|
||||||
db.subscribe(group); // First time - check listeners are called
|
db.subscribe(group); // First time - check listeners are called
|
||||||
db.subscribe(group); // Second time - check listeners aren't called
|
db.subscribe(group); // Second time - check listeners aren't called
|
||||||
|
assertEquals(Collections.emptyList(), db.getMessageHeaders(groupId));
|
||||||
assertEquals(Collections.singletonList(groupId), db.getSubscriptions());
|
assertEquals(Collections.singletonList(groupId), db.getSubscriptions());
|
||||||
db.unsubscribe(groupId); // First time - check listeners are called
|
db.unsubscribe(groupId); // First time - check listeners are called
|
||||||
db.unsubscribe(groupId); // Second time - check listeners aren't called
|
db.unsubscribe(groupId); // Second time - check listeners aren't called
|
||||||
|
|||||||
Reference in New Issue
Block a user