WITH entry: logEntry
SELECT
FROM
StateChange => {
fingerStream.Put[IO.atom[stateChangeAtom], IO.rope[" "]];
fingerStream.Put[IO.atom[IF entry.event = login THEN $login ELSE $logout], IO.rope[" "]];
fingerStream.Put[IO.rope[entry.user], IO.rope[" "]];
fingerStream.Put[IO.time[entry.time], IO.rope["\n"]] };
UserPropChange => {
fingerStream.Put[IO.atom[userPropChangeAtom], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.user]], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.name]], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.val]], IO.rope[" "]];
fingerStream.Put[IO.time[entry.time], IO.rope["\n"]] };
MachinePropChange => {
fingerStream.Put[IO.atom[machinePropChangeAtom], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.name]], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.val]], IO.rope["\n"]] };
AddMachineProp => {
fingerStream.Put[IO.atom[addMachinePropAtom], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.name]], IO.rope[" "]];
fingerStream.Put[IO.int[entry.version], IO.rope["\n"]] };
AddUserProp => {
fingerStream.Put[IO.atom[addUserPropAtom], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.name]], IO.rope[" "]];
fingerStream.Put[IO.int[entry.version], IO.rope["\n"]] };
DeleteUserProp => {
fingerStream.Put[IO.atom[deleteUserPropAtom], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.name]], IO.rope[" "]];
fingerStream.Put[IO.int[entry.version], IO.rope["\n"]] };
DeleteMachineProp => {
fingerStream.Put[IO.atom[deleteMachinePropAtom], IO.rope[" "]];
fingerStream.Put[IO.rope[Convert.RopeFromRope[entry.name]], IO.rope[" "]];
fingerStream.Put[IO.int[entry.version], IO.rope["\n"]]};