
----- Original Message ----- From: "Stjepan Rajko" <stipe@asu.edu>
The usage example goes something like:
marshall::registry<int> reg;
reg.set<void (int, int)>(2, func2); // register function reg.set<void (int)>(1, func1); // register function reg.set<void ()>(0, func0); // register function
Just a bullet-point review of your example of marshalling in case I'm missing something; * a register of return type+parameter list, keyed on small, unique integer, * generate portable image (string) of a call, i.e. "marshall", * call the registered function using one of several available conventions.
Anyway, If Channel can already do this, cool... If not and someone wants to lead getting a marshalling thing together, or finishing the Boostification of Channel, I can help a little but I need to focus on the signal network library for GSoC.
I would also like to see marshalling in Boost. An early $0.02 worth is that persistence, serialization, async sockets and state machines are all subtly related and that huge benefits might be realized from exploring this. Oh and that marshalling is just a combination of some of the above items.
In any case, I'd be interested in getting some marshalling into boost because that allows for distributed signal networks that can not only pass signals from one computer to another but also execute RPCs.
That would be inherent, i.e. the ability to execute RPCs is a freebie once distributed signaling is working? I dont mean literally, more that an RPC would be achieved through an exchange of a particular set of signals. Scott