Skip to content
Snippets Groups Projects
Commit 7238ab78 authored by Julian Dehm's avatar Julian Dehm Committed by bontric
Browse files

temp save

parent 439a1a52
No related branches found
No related tags found
No related merge requests found
......@@ -556,6 +556,7 @@ class IntroducerProtocolEngine
private IntroducerSession abort(Transaction txn,
IntroducerSession s) throws DbException {
// Broadcast abort event for testing
txn.attach(new IntroductionAbortedEvent(s.getSessionId()));
// Send an ABORT message to both introducees
......
......@@ -36,7 +36,8 @@ class OwnerProtocolEngine extends AbstractProtocolEngine<OwnerSession> {
}
@Override
public OwnerSession onRequestAction(Transaction txn, OwnerSession s, long timestamp)
public OwnerSession onRequestAction(Transaction txn, OwnerSession s,
long timestamp)
throws DbException {
switch (s.getState()) {
case START:
......@@ -54,54 +55,82 @@ class OwnerProtocolEngine extends AbstractProtocolEngine<OwnerSession> {
}
@Override
public OwnerSession onAcceptAction(Transaction txn, OwnerSession session, long timestamp) throws DbException {
return null;
public OwnerSession onAcceptAction(Transaction txn, OwnerSession session,
long timestamp) throws DbException {
throw new UnsupportedOperationException();
}
@Override
public OwnerSession onDeclineAction(Transaction txn, OwnerSession session, long timestamp) throws DbException {
return null;
public OwnerSession onDeclineAction(Transaction txn, OwnerSession session,
long timestamp) throws DbException {
throw new UnsupportedOperationException();
}
@Override
public OwnerSession onRequestMessage(Transaction txn, OwnerSession session, RequestMessage m) throws DbException, FormatException {
return null;
public OwnerSession onRequestMessage(Transaction txn, OwnerSession session,
RequestMessage m) throws DbException, FormatException {
return abort(txn, session);
}
@Override
public OwnerSession onAcceptMessage(Transaction txn, OwnerSession session, MailboxAcceptMessage m) throws DbException, FormatException {
return null;
public OwnerSession onMailboxAcceptMessage(Transaction txn, OwnerSession s,
MailboxAcceptMessage m) throws DbException, FormatException {
switch (s.getState()) {
case START:
case AWAIT_RESPONSE_M:
onMailboxAccept(txn, s, m);
case M_DECLINED:
case AWAIT_RESPONSE_B:
case B_DECLINED:
case AWAIT_AUTH_M:
case ADDED:
throw new ProtocolStateException(); // Invalid in these states
default:
throw new AssertionError();
}
}
private void onMailboxAccept(Transaction txn, OwnerSession s,
MailboxAcceptMessage m) {
}
@Override
public OwnerSession onDeclineMessage(Transaction txn, OwnerSession session, DeclineMessage m) throws DbException, FormatException {
public OwnerSession onDeclineMessage(Transaction txn, OwnerSession session,
DeclineMessage m) throws DbException, FormatException {
return null;
}
@Override
public OwnerSession onAuthMessage(Transaction txn, OwnerSession session, MailboxAuthMessage m) throws DbException, FormatException {
public OwnerSession onAuthMessage(Transaction txn, OwnerSession session,
MailboxAuthMessage m) throws DbException, FormatException {
return null;
}
@Override
public OwnerSession onAbortMessage(Transaction txn, OwnerSession session, AbortMessage m) throws DbException, FormatException {
public OwnerSession onAbortMessage(Transaction txn, OwnerSession session,
AbortMessage m) throws DbException, FormatException {
return null;
}
private OwnerSession onLocalRequest(Transaction txn, OwnerSession s, long timestamp)
private OwnerSession onLocalRequest(Transaction txn, OwnerSession s,
long timestamp)
throws DbException {
// Send REQUEST messages
long maxIntroduceeTimestamp =
Math.max(getLocalTimestamp(s, s.getMailbox()), getLocalTimestamp(s, s.getIntroducee()));
Math.max(getLocalTimestamp(s, s.getMailbox()),
getLocalTimestamp(s, s.getIntroducee()));
long localTimestamp = Math.max(timestamp, maxIntroduceeTimestamp);
Message sentMailbox = sendMailboxRequestMessage(txn, s.getMailbox(), localTimestamp);
Message sentMailbox =
sendMailboxRequestMessage(txn, s.getMailbox(), localTimestamp);
/*
// Track the message
messageTracker.trackOutgoingMessage(txn, sentMailbox);
*/
// Move to the AWAIT_RESPONSES state
Introducee mailbox = new Introducee(s.getMailbox(), sentMailbox);
Introducee b = new Introducee(s.getIntroducee().sessionId, s.getIntroducee().groupId, s.getIntroducee().author);
Introducee b = new Introducee(s.getIntroducee().sessionId,
s.getIntroducee().groupId, s.getIntroducee().author);
return new OwnerSession(s.getSessionId(), AWAIT_RESPONSE_M,
localTimestamp, mailbox, b, s.getSessionCounter());
}
......
......@@ -8,7 +8,8 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
@NotNullByDefault
interface ProtocolEngine<S extends Session> {
S onRequestAction(Transaction txn, S session, long timestamp) throws DbException;
S onRequestAction(Transaction txn, S session, long timestamp)
throws DbException;
S onAcceptAction(Transaction txn, S session, long timestamp)
throws DbException;
......@@ -19,7 +20,10 @@ interface ProtocolEngine<S extends Session> {
S onRequestMessage(Transaction txn, S session, RequestMessage m)
throws DbException, FormatException;
S onAcceptMessage(Transaction txn, S session, MailboxAcceptMessage m)
S onMailboxAcceptMessage(Transaction txn, S session, MailboxAcceptMessage m)
throws DbException, FormatException;
S onContactAcceptMessage(Transaction txn, S session, MailboxAcceptMessage m)
throws DbException, FormatException;
S onDeclineMessage(Transaction txn, S session, DeclineMessage m)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment