view tests/goodbye.ur @ 1836:276fa06428ba

Ignore polymorphism in JavaScript calls to custom FFI functions, allowing a kind of simple dynamic typing (unsafe, of course)
author Adam Chlipala <adam@chlipala.net>
date Tue, 11 Dec 2012 15:58:23 -0500
parents c05e2e4bdde7
children
line wrap: on
line source
table boo : { Client : client, Channel : channel unit }

fun doIt () =
    me <- self;
    ch <- channel;
    dml (INSERT INTO boo (Client, Channel) VALUES ({[me]}, {[ch]}));
    return <xml><body onload={let
                                  fun loop () =
                                      v <- recv ch;
                                      alert "Someone left";
                                      loop ()
                              in
                                  loop ()
                              end}/></xml>

task clientLeaves = fn cl =>
                       debug "Client left";
                       dml (DELETE FROM boo WHERE Client = {[cl]});
                       queryI (SELECT (boo.Channel)
                               FROM boo)
                       (fn r => send r.1 ());
                       debug "Done processing"

fun main () = return <xml><body>
  <form> <submit action={doIt}/> </form>
</body></xml>