<bigwig> service: guestbook
service {
schema Person {
string name;
int age;
}
protected shared relation tuple Person GuestBook ;
html EnterPersonDoc = <html>
Enter your name: <input type=text name="name"><br>
Enter your age: <input type=text name="age"><br>
</html>;
html GuestBookDoc = <html>
<h1>Guestbook</h1>
<ul>
<[guests]>
</ul>
</html>;
html PersonDoc = <html>
<li>Name: <[name]> (<[age]>).</li>
<[guests]>
</html>;
session Show() {
int i;
html H = GuestBookDoc;
vector tuple Person V;
reader (GuestBook) V = (vector tuple Person)GuestBook;
V = sort(V; name);
for (i = 0 ; i < |V| ; i++) {
H = H <[guests=PersonDoc <[name=V[i].name, age=V[i].age]];
}
exit H;
}
session Sign() {
string name;
int age;
relation tuple Person P, R;
int i;
show EnterPersonDoc receive [name=name, age=age];
writer (GuestBook) {
GuestBook = (Union (GuestBook, relation { tuple { name=name, age=age } }));
}
Show();
}
}