diff options
| author | Charles Forsyth <charles.forsyth@gmail.com> | 2015-04-29 15:19:07 +0100 |
|---|---|---|
| committer | Charles Forsyth <charles.forsyth@gmail.com> | 2015-04-29 15:19:07 +0100 |
| commit | c714c442442ef137f20ca4ff9707d5480cb9ba7a (patch) | |
| tree | d0d285f05cb4292fa8f1f3c0bc70bec1251e956e /appl/examples/minitel/socket.b | |
| parent | 1ac9729e9325d84db36c04b5cda3b5b1bc0d041f (diff) | |
remove obsolete minitel, but leave source as example
Diffstat (limited to 'appl/examples/minitel/socket.b')
| -rw-r--r-- | appl/examples/minitel/socket.b | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/appl/examples/minitel/socket.b b/appl/examples/minitel/socket.b new file mode 100644 index 00000000..b3ce7fcf --- /dev/null +++ b/appl/examples/minitel/socket.b @@ -0,0 +1,49 @@ +# +# Copyright © 1998 Vita Nuova Limited. All rights reserved. +# + +Socket: adt { + m: ref Module; # common attributes + in: chan of ref Event; + + init: fn(c: self ref Socket); + reset: fn(c: self ref Socket); + run: fn(c: self ref Socket); + quit: fn(c: self ref Socket); +}; + +Socket.init(c: self ref Socket) +{ + c.in = chan of ref Event; + c.reset(); +} + +Socket.reset(c: self ref Socket) +{ + c.m = ref Module(Pscreen, 0); +} + +Socket.run(c: self ref Socket) +{ +Runloop: + for(;;){ + ev := <- c.in; + pick e := ev { + Equit => + break Runloop; + Eproto => + case e.cmd { + Creset => + c.reset(); + * => break; + } + Edata => + } + } + send(nil); +} + +Socket.quit(c: self ref Socket) +{ + if(c==nil); +} |
