//$ java -cp modules/cli/target/classes/';'modules/core/target/classes';'modules/trace/target/classes';'modules/parser/target/classes';c:\Users\Raymond\.m2\repository\org\antlr\antlr-runtime\3.2\antlr-runtime-3.2.jar;'modules/validation/target/classes/';'modules/projection/target/classes/';C:\Users\Raymond\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.9\jackson-mapper-asl-1.9.9.jar;C:\Users\Raymond\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.9\jackson-core-asl-1.9.9.jar' org.scribble2.cli.CommandLine -path modules/validation/src/test/scrib/src modules/validation/src/test/scrib/src/Test.scr -session Foo -d modules/validation/src/main/java
//$ java -cp modules/cli/target/classes/';'modules/core/target/classes';'modules/trace/target/classes';'modules/parser/target/classes';c:\Users\Raymond\.m2\repository\org\antlr\antlr-runtime\3.2\antlr-runtime-3.2.jar;'modules/validation/target/classes/';'modules/projection/target/classes/';C:\Users\Raymond\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.9\jackson-mapper-asl-1.9.9.jar;C:\Users\Raymond\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.9\jackson-core-asl-1.9.9.jar' org.scribble2.cli.CommandLine -path modules/validation/src/test/scrib/src modules/validation/src/test/scrib/src/Test.scr -api Foo A -d modules/validation/src/main/java
package fib;
import java.io.IOException;
import java.net.UnknownHostException;
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 fib.Fib.Adder.Adder;
import fib.Fib.Adder.channels.C.Adder_C_1;
import fib.Fib.Adder.channels.C.ioifaces.Receive_C_S_BYE;
import fib.Fib.Adder.channels.C.ioifaces.Receive_C_S_RES_Integer;
import fib.Fib.Adder.channels.C.ioifaces.Select_C_S_ADD_Integer_Integer__S_BYE;
import fib.Fib.Adder.channels.C.ioifaces.Succ_Out_S_BYE;
import fib.Fib.Adder.roles.C;
public class AdderClient
{
public static void main(String[] args) throws UnknownHostException, ScribbleRuntimeException, IOException, ClassNotFoundException, ExecutionException, InterruptedException
{
Buf<Integer> i1 = new Buf<>(1);
//Buf<Integer> i2 = new Buf<>(2);
Adder adder = new Adder();
try (MPSTEndpoint<Adder, C> se = new MPSTEndpoint<>(adder, Adder.C, new ObjectStreamFormatter()))
{
se.connect(Adder.S, SocketChannelEndpoint::new, "localhost", 8888);
Adder_C_1 s1 = new Adder_C_1(se);
/*s1.send(Adder.S, Adder.ADD, i1.val, i1.val)
.receive(Adder.S, Adder.RES, i1)
.send(Adder.S, Adder.ADD, i1.val, i1.val)
.receive(Adder.S, Adder.RES, i1)
.send(Adder.S, Adder.BYE)
.receive(Adder.S, Adder.BYE);*/
/*while (i1.val < 100)
{
s1 = s1.send(Adder.S, Adder.ADD, i1.val, i1.val).receive(Adder.S, Adder.RES, i1);
}
s1.send(Adder.S, Adder.BYE).receive(Adder.S, Adder.BYE)
.end();*/
//fib(i1, i2, s1).end();
foo(s1, i1).to(Receive_C_S_BYE.cast).receive(Adder.S, Adder.BYE);
//foo(s1, i1);
System.out.println("Client: " + i1.val);
}
}
private static Succ_Out_S_BYE foo(Select_C_S_ADD_Integer_Integer__S_BYE<?, ?> s, Buf<Integer> i) throws ClassNotFoundException, ScribbleRuntimeException, IOException
//private static EndSocket foo(Select_C_S_ADD_Integer_Integer__S_BYE<?, ?> s, Buf<Integer> i) throws ClassNotFoundException, ScribbleRuntimeException, IOException
{
return (i.val < 100)
? foo(
s.send(Adder.S, Adder.ADD, i.val, i.val)
.to(Receive_C_S_RES_Integer.cast)
.receive(Adder.S, Adder.RES, i)
.to(Select_C_S_ADD_Integer_Integer__S_BYE.cast)
, i)
: s.send(Adder.S, Adder.BYE);
}
/*private static EndSocket<Adder, C> fib(Buf<Integer> i1, Buf<Integer> i2, Adder_C_1 s1) throws ScribbleRuntimeException, IOException, ClassNotFoundException, ExecutionException, InterruptedException
{
return (i1.val < 100)
? fib(i1, i2,
side(i1, i2, s1.send(Adder.S, Adder.ADD, i1.val, i2.val)).receive(Adder.S, Adder.RES, i2)
)
: s1.send(Adder.S, Adder.BYE).receive(Adder.S, Adder.BYE);
}
private static Adder_C_2 side(Buf<Integer> i1, Buf<Integer> i2, Adder_C_2 s2)
{
i1.val = i2.val;
System.out.print(i1.val + " ");
return s2;
}*/
}