//$ 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 scratch.scratch1;
import java.io.IOException;
import org.scribble.main.ScribbleRuntimeException;
import org.scribble.net.ObjectStreamFormatter;
import org.scribble.net.session.MPSTEndpoint;
import org.scribble.net.session.SocketChannelEndpoint;
import scratch.scratch1.Scratch1.Proto1.Proto1;
import scratch.scratch1.Scratch1.Proto1.channels.C.Proto1_C_1;
import scratch.scratch1.Scratch1.Proto1.channels.C.Proto1_C_2;
import scratch.scratch1.Scratch1.Proto1.channels.C.ioifaces.Receive_C_S_3_Int;
import scratch.scratch1.Scratch1.Proto1.channels.C.ioifaces.Select_C_S_1;
import scratch.scratch1.Scratch1.Proto1.channels.C.ioifaces.Select_C_S_2_Int__S_4a;
import scratch.scratch1.Scratch1.Proto1.channels.C.ioifaces.Select_C_S_4b;
import scratch.scratch1.Scratch1.Proto1.channels.C.ioifaces.Succ_Out_S_4a;
import scratch.scratch1.Scratch1.Proto1.roles.C;
public class MyC
{
// refactor separate io iface generators
// fix action string canonical ordering
// subtype hierarchy / io iface for handler iface
public static void main(String[] args) throws Exception
{
Proto1 adder = new Proto1();
try (MPSTEndpoint<Proto1, C> se = new MPSTEndpoint<>(adder, Proto1.C, new ObjectStreamFormatter()))
{
se.connect(Proto1.S, SocketChannelEndpoint::new, "localhost", 8888);
Proto1_C_2 s2 = new Proto1_C_1(se).send(Proto1.S, Proto1._1);
/*for (int i = 0; i < 3; i++)
{
s2 =
s2.send(Proto1.S, Proto1._2, 123)
.async(Proto1.S, Proto1._3)
.send(Proto1.S, Proto1._1);
}
s2.send(Proto1.S, Proto1._4).end();*/
/*for (int i = 0; i < 3; i++)
{
s1 =
s1.send(Proto1.S, Proto1._1)
.send(Proto1.S, Proto1._2, 123)
.receive(Proto1.S, Proto1._3, new Buff<>());
}
s1.send(Proto1.S, Proto1._1).send(Proto1.S, Proto1._4).end();*/
foo(s2, 0).to(Select_C_S_4b.cast).send(Proto1.S, Proto1._4b);
}
}
static Succ_Out_S_4a foo(Select_C_S_2_Int__S_4a<?, ?> s, int i) throws ScribbleRuntimeException, IOException
{
return (i < 3)
? foo(
s.send(Proto1.S, Proto1._2, 123)
.to(Receive_C_S_3_Int.cast).async(Proto1.S, Proto1._3)
.to(Select_C_S_1.cast).send(Proto1.S, Proto1._1).to(Select_C_S_2_Int__S_4a.cast), i + 1) //Select_C_S_2_Int__S_4.cast
: s.send(Proto1.S, Proto1._4a);
}
}