Add a contactExists() method to the contactManager

This requires exposing the `containsContact()` method to the `DatabaseComponent`
and is needed for finding out efficiently whether a contact already exists.
This commit is contained in:
Torsten Grote
2016-02-18 14:46:43 -02:00
parent e2d64e0a8c
commit 5bde14c694
4 changed files with 44 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import org.briarproject.api.db.DbException;
import org.briarproject.api.db.Transaction;
import org.briarproject.api.identity.Author;
import org.briarproject.api.identity.AuthorId;
import org.briarproject.api.identity.LocalAuthor;
import java.util.Collection;
@@ -44,6 +45,14 @@ public interface ContactManager {
/** Marks a contact as active or inactive. */
void setContactActive(ContactId c, boolean active) throws DbException;
/** Return true if a contact with this name and public key already exists */
boolean contactExists(Transaction txn, AuthorId remoteAuthorID,
AuthorId localAuthorId) throws DbException;
/** Return true if a contact with this name and public key already exists */
boolean contactExists(AuthorId remoteAuthorID, AuthorId localAuthorId)
throws DbException;
interface AddContactHook {
void addingContact(Transaction txn, Contact c) throws DbException;
}

View File

@@ -162,6 +162,13 @@ public interface DatabaseComponent {
Collection<ContactId> getContacts(Transaction txn, AuthorId a)
throws DbException;
/**
* Returns true if the database contains the given contact for the given
* local pseudonym.
*/
boolean containsContact(Transaction txn, AuthorId remote, AuthorId local)
throws DbException;
/**
* Returns the unique ID for this device.
* <p/>