Monday, November 08, 2010 at 12:06 AM.
system.verbs.builtins.tcp.im.builtinDrivers.aim.code.core.process_loop
on process_loop(adrSelf) { <<# the "main" loop local { event; ind; id; data}; adrSelf^._threadId = thread.getCurrentId(); while true { try { event = tcp.im.builtinDrivers.aim.code.core.recv_event(adrSelf)} else { try { delete(@adrSelf^._threadId)}; case adrSelf^._debug { 2 { scriptError(tryError)}; 1; 0 { return(1)}}}; if not event { continue}; tcp.im.builtinDrivers.aim.code.core.derror(adrSelf, "RECV :"+ string(event) ); <<#else, fig out what to do with it <<#special case-- login if event[1] == 1 { tcp.im.builtinDrivers.aim.code.core.start_log_in(adrSelf); continue}; if not event[2] contains ':' { data = ""} else { ind = string.patternMatch(":",event[2]); id = string.upper(string.mid(event[2], 0, ind-1)); data = string.mid(event[2], ind+1, infinity)}; <<#handle manually now case id { "SIGN_ON" { tcp.im.builtinDrivers.aim.code.core.c_SIGN_ON(adrSelf, id,data)}; "ERROR" { tcp.im.builtinDrivers.aim.code.core.c_ERROR(adrSelf, id,data)}} else { tcp.im.builtinDrivers.aim.code.core._callsub(adrSelf, id, {adrSelf, data}, flThreaded:adrSelf^._flSpawnCallbackThreads)}; }}
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.