Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.io.init
on init () {
<<Changes
<<9/1/10; 6:34:41 PM by DW
<<Init prefs and callbacks for following.
<<8/30/10; 7:05:06 PM by DW
<<Init prefs and stats for server-side archving of outlines.
<<8/13/10; 7:29:42 AM by DW
<<Init prefs that control local backup of outline.
<<8/6/10; 9:52:51 AM by DW
<<Created.
local (adrdata = @config.io);
if not defined (adrdata^) {
new (tabletype, adrdata)};
bundle { //client
if not defined (adrdata^.client) {
new (tabletype, @adrdata^.client)};
if not defined (adrdata^.client.buddies) {
if defined (scripting2data.editor.buddies) {
adrdata^.client.buddies = scripting2data.editor.buddies}
else {
new (tabletype, @adrdata^.client.buddies)}};
if not defined (adrdata^.client.buddies.outline) {
new (outlinetype, @adrdata^.client.buddies.outline)};
if not defined (adrdata^.client.buddies.users) {
new (tabletype, @adrdata^.client.buddies.users)};
bundle { //prefs
if not defined (adrdata^.client.prefs) {
new (tabletype, @adrdata^.client.prefs)};
if not defined (adrdata^.client.prefs.enabled) {
adrdata^.client.prefs.enabled = true};
if not defined (adrdata^.client.prefs.username) {
adrdata^.client.prefs.username = ""};
if not defined (adrdata^.client.prefs.password) {
adrdata^.client.prefs.password = ""};
if not defined (adrdata^.client.prefs.server) { //8/7/10 by DW
adrdata^.client.prefs.server = "xmlrpc://instant.opml.org:5337/RPC2"};
if not defined (adrdata^.client.prefs.flBeepOnBuddyUpdate) {
adrdata^.client.prefs.flBeepOnBuddyUpdate = true};
if not defined (adrdata^.client.prefs.flBackupMyOutlineLocally) { //8/13/10 by DW
adrdata^.client.prefs.flBackupMyOutlineLocally = true};
if not defined (adrdata^.client.prefs.backupFolder) { //8/13/10 by DW
local (pc = file.getpathchar ());
adrdata^.client.prefs.backupFolder = frontier.pathstring + "Instant Outliner" + pc + "backups" + pc}};
bundle { //stats
if not defined (adrdata^.client.stats) {
new (tabletype, @adrdata^.client.stats)};
if not defined (adrdata^.client.stats.ctRealtimeEvents) {
adrdata^.client.stats.ctRealtimeEvents = 0};
if not defined (adrdata^.client.stats.ctOutlineUpdates) {
adrdata^.client.stats.ctOutlineUpdates = 0}}};
bundle { //server
if not defined (adrdata^.server) {
new (tabletype, @adrdata^.server)};
if not defined (adrdata^.server.users) {
new (tabletype, @adrdata^.server.users)};
bundle { //prefs
if not defined (adrdata^.server.prefs) {
new (tabletype, @adrdata^.server.prefs)};
if not defined (adrdata^.server.prefs.enabled) {
adrdata^.server.prefs.enabled = false};
if not defined (adrdata^.server.prefs.archiveDomain) { //8/28/10 by DW
adrdata^.server.prefs.archiveDomain = ""}; //the address of the website that serves archived outlines
if adrdata^.server.prefs.archiveDomain != "" {
local (adrconfig = @config.mainresponder.domains.[adrdata^.server.prefs.archiveDomain]);
if not defined (adrconfig^) {
adrconfig^ = @io.server.archiveWebsite}};
if not defined (adrdata^.server.prefs.defaultFollows) { //9/1/10 by DW
new (tabletype, @adrdata^.server.prefs.defaultFollows)}};
bundle { //stats
if not defined (adrdata^.server.stats) {
new (tabletype, @adrdata^.server.stats)}}};
bundle { //misc
if not defined (user.betty.rpcHandlers.io) {
user.betty.rpcHandlers.io = @io.server.rpcHandlers};
if not defined (system.temp.io) {
new (tabletype, @system.temp.io)};
if not defined (user.scheduler.threads.io) {
user.scheduler.threads.io = @io.thread};
if not defined (user.tools.nodeTypes.v4BuddyOutlineElement) {
user.tools.nodeTypes.v4BuddyOutlineElement = @io.client.nodeTypes.v4BuddyOutlineElement}};
<<try
<<if not defined (realtimeData.client.callbacks.handleUpdate.io)
<<realtimeData.client.callbacks.handleUpdate.io = @io.client.incomingUpdate
bundle { //init realtime
local (adrrealtimedata = realtime.init ());
if adrdata^.server.prefs.enabled {
if not defined (adrrealtimedata^.server.callbacks.validatePassword.io) {
adrrealtimedata^.server.callbacks.validatePassword.io = @io.server.validatePassword};
if not defined (adrrealtimedata^.server.callbacks.userFollows.io) { //9/1/10 by DW
adrrealtimedata^.server.callbacks.userFollows.io = @io.server.userFollows}}};
return (adrdata)};
bundle { //test code
init ()}
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.