Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.realtime.init
on init () { <<Changes <<8/15/10; 7:45:55 PM by DW <<Add call to hourly script. <<8/14/10; 3:52:40 AM by DW <<Init system.temp.realtime.server.longpolls. <<7/11/10; 8:53:54 AM by DW <<Created. local (adrdata); bundle { //temp table if not defined (system.temp.realtime) { new (tabletype, @system.temp.realtime)}; if not defined (system.temp.realtime.stats) { new (tabletype, @system.temp.realtime.stats)}; if not defined (system.temp.realtime.stats.flDataFileOpen) { system.temp.realtime.stats.flDataFileOpen = false}; bundle { //client if not defined (system.temp.realtime.client) { new (tabletype, @system.temp.realtime.client)}; if not defined (system.temp.realtime.client.servers) { //8/7/10 by DW new (tabletype, @system.temp.realtime.client.servers)}}; bundle { //server if not defined (system.temp.realtime.server) { new (tabletype, @system.temp.realtime.server)}; if not defined (system.temp.realtime.server.longpolls) { //8/14/10 by DW new (tabletype, @system.temp.realtime.server.longpolls)}; if not defined (system.temp.realtime.server.stats) { //8/14/10 by DW new (tabletype, @system.temp.realtime.server.stats)}; if not defined (system.temp.realtime.server.stats.longpollSerialnum) { system.temp.realtime.server.stats.longpollSerialnum = 0}}}; bundle { //set adrdata local (flcheck = not system.temp.realtime.stats.flDataFileOpen); adrdata = frontier.opendatafile ("realtimeData", flCheckWindowOpen:flcheck); system.temp.realtime.stats.flDataFileOpen = true}; bundle { //prefs if not defined (adrdata^.prefs) { new (tabletype, @adrdata^.prefs)}}; bundle { //stats if not defined (adrdata^.stats) { new (tabletype, @adrdata^.stats)}; if not defined (adrdata^.stats.ctInits) { adrdata^.stats.ctInits = 0}; adrdata^.stats.ctInits++}; bundle { //misc stuff if not defined (user.scheduler2.hourly.realtime) { user.scheduler2.hourly.realtime = @realtime.everyHour}; if not defined (user.scheduler2.everyMinute.realtime) { user.scheduler2.everyMinute.realtime = @realtime.everyMinute}}; realtime.server.init (adrdata); realtime.client.init (adrdata); return (adrdata)}; bundle { //test code local (tc = clock.ticks (), i); for i = 1 to 1000 { init ()}; dialog.alert (clock.ticks () - tc)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.