Mercurial > urweb
view tests/DynChannel.ur @ 2195:18e6fb487880
Reduce: add reduction in some spots previously missed, associated with 'case' return types
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Wed, 25 Nov 2015 18:48:17 -0500 |
parents | 3dd041b00087 |
children |
line wrap: on
line source
table channels : {Id : int, Channel:channel xbody} fun dosend (s:string) : transaction unit = c <- oneRow1 (SELECT * FROM channels); debug ("Sending " ^ s ^ " through the channel..."); send c.Channel <xml>{[s]}</xml> fun mkchannel {} : transaction xbody = c <- channel; s <- source <xml/>; dml( DELETE FROM channels WHERE Id >= 0); dml( INSERT INTO channels(Id, Channel) VALUES(0, {[c]}) ); return <xml> <button value="Send" onclick={fn _ => rpc(dosend "blabla")}/> <active code={spawn(x <- recv c; alert ("Got something from the channel"); set s x); return <xml/>}/> <dyn signal={signal s}/> </xml> fun main {} : transaction page = s <- source <xml/>; return <xml> <head/> <body> <button value="Register" onclick={fn _ => x <- rpc(mkchannel {}); set s x }/> <dyn signal={signal s}/> </body> </xml>