view tests/channelThief.ur @ 2119:5439b35c5d0b

Add 'download' attribute to <a/>, part of HTML5
author Sergey Mironov <grrwlf@gmail.com>
date Sun, 26 Oct 2014 14:07:07 +0000
parents a671e5258a2c
children
line wrap: on
line source
table t : { Ch : channel string }

fun go () =
    let
        fun overwrite () =
            dml (DELETE FROM t WHERE TRUE);
            ch <- channel;
            dml (INSERT INTO t (Ch) VALUES ({[ch]}));
            return ch

        fun retrieve () =
            oneRowE1 (SELECT (t.Ch) FROM t)

        fun transmit () =
            ch <- retrieve ();
            send ch "Test"

        fun listenOn ch =
            s <- recv ch;
            alert s
    in
        ch <- overwrite ();
        return <xml><body onload={listenOn ch}>
          <button value="overwrite" onclick={fn _ => ch <- rpc (overwrite ()); listenOn ch}/>
          <button value="retrieve" onclick={fn _ => ch <- rpc (retrieve ()); listenOn ch}/>
          <button value="transmit" onclick={fn _ => rpc (transmit ())}/>
        </body></xml>
    end

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