とりあえずこんな感じにデザインしてみようか
package test; import java.lang.*; type actor Server is procedure push(String msg); end actor Client is String msg; Server svr; constructor(String msg, Server svr); procedure start(); end implementation procedure Main(String[] args) var Server server; Client client01, client02; begin server = new Server(); client01 = new Client("c01", server); client02 = new Client("c02", server); client01.start(); client02.start(); end procedure Server.push(String msg) begin System.out.println(msg); end constructor Client(String msg, Server svr) begin this.msg = msg; this.svr = svr; end procedure Client.start() var int i; begin for i = 0 to 10 do svr.push(msg + ":" + i); sleep(1000); end end
うーん。ちょっと微妙。もう少し考える。
というより静的型付け止めようかな。記述が冗長すぎて困る。