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.