package exercise.voting; import java.io.IOException; import java.util.concurrent.ExecutionException; import org.scribble.main.ScribbleRuntimeException; import org.scribble.net.Buf; import org.scribble.net.ObjectStreamFormatter; import org.scribble.net.session.MPSTEndpoint; import org.scribble.net.session.SocketChannelEndpoint; import exercise.voting.EProtocol.EVoting.EVoting; import exercise.voting.EProtocol.EVoting.channels.V.EVoting_V_1; import exercise.voting.EProtocol.EVoting.channels.V.EVoting_V_2_Cases; import exercise.voting.EProtocol.EVoting.channels.V.EVoting_V_4; import exercise.voting.EProtocol.EVoting.roles.V; public class Voter { public static void main(String[] args) throws IOException, ScribbleRuntimeException, ExecutionException, InterruptedException, ClassNotFoundException { EVoting vp = new EVoting(); try (MPSTEndpoint<EVoting, V> se = new MPSTEndpoint<>(vp, EVoting.V, new ObjectStreamFormatter())) { se.connect(EVoting.V, SocketChannelEndpoint::new, "localhost", 8888); String name = "my name"; EVoting_V_1 s1 = new EVoting_V_1(se); /* EVoting_V_2_Cases cases = s1.receive(EVoting.S, EVoting.Authenticate, name) .branch(EVoting.S);; EVoting_V_4 s3 = null; switch(cases.op){ case Ok: Buf<String> token = new Buf<>(); s3 = cases.receive(EVoting.Ok, token) .send(EVoting.S, EVoting.Maybe, token); break; case Reject: Buf<String> reason = new Buf<>(); s3 = cases.receive(EVoting.S, EVoting.Reject,reason) .send(EVoting.S, EVoting.Yes, name); break; } Buf<String> results = new Buf<>(); s3.receive(EVoting.S, EVoting.Result, results); */ System.out.println("Done:"); } catch (Exception e) { e.printStackTrace(); } } }