<bigwig> service: chat
service {
shared string msg0, msg1, msg2, msg3, msg4;
resource msg ;
html Logon = <html> <head><title>Chat Room</title></head><body>
<h1>Welcome to The Chat Room</h1>
Please enter your on-line name:
<input name="name" type="text" size=25>
</body> </html>;
html Update = <html> <head><title>Chat Room</title></head><body>
<h1>The Chat Room Service</h1>
<hr>
<b>Messages so far:</b>
<br>
<[msg0]><br><[msg1]><br><[msg2]><br><[msg3]><br><[msg4]><br>
<hr>
<b>Your new message:</b>
<br>
<input name="msg" type="text" size=50>
<br>
<hr>
<br>
Quit now? ( <input name="quit" type="radio" value="true"> Yes /
<input name="quit" type="radio" checked value="false"> No )
</body> </html>;
html ByeBye = <html> <head><title>Chat Room</title></head><body>
<h1>Thanks for using The Chat Room</h1>
You made <[conns]> connections
and wrote <[msgs]> messages.
</body> </html>;
session Chat() {
html H;
bool quit;
string name, msg;
int connections, written;
show Logon receive [name=name];
while (!quit) {
reader (msg) {
H = Update <[msg0=msg0,
msg1=msg1,
msg2=msg2,
msg3=msg3,
msg4=msg4];
}
show H receive [msg=msg, quit=quit];
connections = connections + 1;
if (msg != "") {
written = written + 1;
writer (msg) {
msg0 = msg1;
msg1 = msg2;
msg2 = msg3;
msg3 = msg4;
msg4 = name + "> " + msg;
}
}
}
exit ByeBye <[conns=connections,
msgs=written];
}
}