Tom,

I still don't get what a
serializer is.
Is this one of those object system 'isms?

Well, no ... it is not an *ism in the sense of "peculiar feature" of an object-based/oriented system. Streaming an in-memory state into a set of characters based on run-time introspection is not a trait of OO. But for OO, take a look at:

http://www.riehle.org/computer-science/research/1996/plop-1996-serializer.html

Hmmm, why would using TclOO or any other Tcl code require doing anything with the driver thread, or require using ns_ictl?

I assume that you are familiar AOLServer blueprinting mechanism? Tcl introspection (info) is used to stream the state of the interpreter in the driver/main thread of AOLServer to the connection/scheduler/... threads (and beyond, if you take Zoran's tclthread extension into account) early in their life-cycle. This happens in init.tcl->_ns_savenamespaces and helpers. So, in AOLServer Tcl's info + _ns_* family of procs + Tcl's eval represent a procedural serializer. But, as Tcl's info cannot introspect on the XOTcl/TclOO object system, these object systems need to provide their own facility to re-create the object graph (objects + relations) in terms of a script. Take a look at generic/aol-xotcl.tcl in the XOTcl source distribution, it amends standard _ns_savenamespace by a call to the xotcl Serializer object.

So, unless you don't want to call "package req" on XOTcl/TclOO in each connection thread interpreter and want your AOLserver OO-Tcl Module available in AOLServer workers, you need to provide a serialiser. Or, you have the nifty feature of ttrace that comes with Naviserver. Either way is a design problem of its own and non-trivial (especially in the OO case). See the enlightening discussing over at naviserver-devel:

http://www.mail-archive.com/[EMAIL PROTECTED]/msg00136.html


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

Reply via email to