public Test1: () ==> ()
Test1() == let ch = new MessageChannelBuffer(),
server = new POP3Server(MakeMailDrop(), ch, MakePasswordMap()) in
( dcl mc : MessageChannel := new MessageChannel(); start(server);
ch.Put(mc); let run = TestRun1(),
send = new POP3TestSender("c", run, mc),
listen = new POP3TestListener("l", mc) in
( start(send); start(listen);
listen.IsFinished()
)
);
public Test2: () ==> ()
Test2() == let ch = new MessageChannelBuffer(),
server = new POP3Server(MakeMailDrop(), ch, MakePasswordMap()) in
( dcl mc1 : MessageChannel := new MessageChannel(),
mc2 : MessageChannel := new MessageChannel(); start(server);
ch.Put(mc1);
ch.Put(mc2); let run = TestRun1(),
send1 = new POP3TestSender("c1", run, mc1),
send2 = new POP3TestSender("c2", run, mc2),
listen1 = new POP3TestListener("l1", mc1),
listen2 = new POP3TestListener("l2", mc2) in
( start(send1); start(send2); start(listen1); start(listen2);
listen1.IsFinished();
listen2.IsFinished();
)
);
public POP3Test:() ==> POP3Test
POP3Test() ==
(ch := new MessageChannelBuffer();
server := new POP3Server(MakeMailDrop(), ch, MakePasswordMap());
mc1 := new MessageChannel();
mc2 := new MessageChannel();
mc3 := new MessageChannel();
send1 := new POP3TestSender("c1", TestRun1(), mc1);
send2 := new POP3TestSender("c2", TestRun1(), mc2);
listen1 := new POP3TestListener("l1", mc1);
listen2 := new POP3TestListener("l2", mc2)
);
traces
Two: StartServer(server); --let mc in set {mc1,mc2,mc3} in
(ch.Put(mc1) | ch.Put(mc2) | ch.Put(mc3)){3}; Start(send1); Start(send2); Start(listen1); Start(listen2);
listen1.IsFinished();
listen2.IsFinished();
end POP3Test
class POP3TestSender
instancevariables
id : seqofchar;
cmds : seqof POP3Types`ClientCommand;
mc : MessageChannel
operations
public POP3TestSender: seqofchar * seqof POP3Types`ClientCommand *
MessageChannel ==> POP3TestSender
POP3TestSender(idarg, cmdsarg, mcarg) ==
( id := idarg;
cmds := cmdsarg;
mc := mcarg
);
LogClient: POP3Types`ClientCommand ==> ()
LogClient(cmd) == let io = new IO() ,
- = io.echo("Client " ^ id ^ " says -> "),
- = io.writeval[POP3Types`ClientCommand](cmd) in skip;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.