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.