From: Hurd, Matthew (hurdm_at_[hidden])
Date: 2003-10-29 21:16:04
> From: Scott Woods [mailto:scottw_at_[hidden]]
> > From: "Hurd, Matthew" <hurdm_at_[hidden]>
> > I wish to do some transparent marshalling...
> > That is, via a policy, or some such, either call a function / functor
> > returning a void or put stuff on a message queue for transportation.
> > This is strictly asynch stuff, hence the void result or putting the
> > in the ether.
> > The message queues I have in mind are tibrv, udp, tcp, shared mem,
> > internal process queue/thread... The important point is boiling down to
> > function call or in-line equivalent with zero friction rather than a
> > com, soap rpc.
> > I see the serialization w.i.p. library will be useful here. Any tips on
> > some useful boost libs / techniques to do this?
> Cant offer any tips but can support your interest. A question though;
> * have you looked at the state-machine work done by Andreas Huber
Yep. Doing a new workflow thing. Did one a while back using hierarchical
graphs using a customized GGCL (now BGL). Did a topological sort and then
event like dynamic execution in a thread pool.
Thinking of making the same extensions to BGL. The state machine might be a
bit too compile time oriented, but perhaps that can fit in with BGL in a way
that I need to find.
Hmmm, a compile time hierarchical graph library that can result in parts
being a state machine or other representation and rest being "dynamic" would
do it, but is probably too big to contemplate.
Am considering doing a code generator from the graph representation...
haven't thought about doing that at compile time... sounds hard.
> I ask because you mention "strictly asynch". Or are you hoping to
> integrate "boost transparent marshalling" with your own async event
Basically I wish to find an abstraction for compile time that results in a
function/functor call, a call to queue fed threaded worker pool, a call to
another process, or, a call to an external machine.
I think of it as another type of sequence point where you can break out into
a different mode of execution... Changing the policy lets you simply change
the system architecture.
> If I am hearing you right then I think the combination of serialization
> state-machine would be interesting to you. Sadly no-one else is pushing
> for this integration (BTW dont know of anything precluding it ;-)
> And we are talking about WIP.
> Would be interested in clarification of "function call or in-line
> [..] zero friction". Thats because of some work I'm doing on a transparent
> marshalling lib.
Just means I want to get down to a functor or function call that has a
pretty equal chance of being optimized, including being inlined, as a normal
native function call. That is, the usual C++ doctrine of not paying for
what you don't use. For example a method that uses a somewhat expensive
callback mechanism might not be so appropriate. Zero friction is just a
colloquialism for "doesn't get in the way".
Susquehanna Pacific P/L
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk