
Aaron & the Rest,
Hi again!
I should read up on DBus myself, really. It seems like a "lessons learned" framework based on previous designs.
For things like Corba, RPC, RMI, and the many other remote invocation protocols I've seen, you don't really need the entire framework running if you have the "server" application already running and the client knows the host/port where to look for it.
The framework is necessary for: 1) Discovery. Find the desired service (like with RPC's Portmapper)
2) Activation. Where ActiveX gets its name. If the server isn't already running, start it up and register it (maybe your own instance with parameters). For this, you need the framework itself to be running as a service on a well-known port. The client calls this, requests the port#, then calls the client. At first I thought that this wouldn't be necessary for Inkscape. But many users want to call Inkscape from the command-line and run something internal. It would be too much to require end-users to start Inkscape first before running command-line scripts.
Although it isn't necessary to provide all Inkscape functionality on all platforms, it would be good to prevent them from being weaker second-class implementations.
But this looks like a wonderful idea
On a different note: ================== Note that this is different from script-bound DOM. (Not Inkscape tools that manipulate DOM, but DOM itself.) That needs to be handled same-process. The code is mostly done, and is on an Hg server I have been using, if anyone wants to help on it. The final solution is to have an IDL-like XML description file of modules and interfaces to be bound. A small Java tool reads this and generates the C++ class to be bound, (.h defs and .cpp stubs) the script that binds to it, and the C++ binding code between them. This gets around the need to generate many thousands of lines of redundant code for the >164 SVG-DOM classes. Also helps prevent typos. And by generating, we can avoid C++ multi-inheritance problems, by MI delegation. For each inherited interface after the first one, we change "is_a" to "has_a", and avoid any diamond problems.
The generated C++ .h and .cpp stubs and script code currently all compile and link. Not bad for such a huge amount.
Email me or give me a shout on IRC/XMPP if you are interested in helping. I could use someone's advice on separating C++ interface and implementation. Like, the generator makes .cpp stubs for all classes and methods, but I already have most of the C++ implementation code already written (like normalize() or adopt()). How to automatically inject that code into the stubs? Put it in the XML file?
bob (ishmal)
On 7/18/2009 3:37 PM, Aaron Spike wrote:
Mat,
I saw your post about a DBus based Inkboard. I was wondering if you were aware of the work Soren has been doing with DBus in Inkscape for Google's Summer of Code. Without knowing a whole lot about how Inkscape can be made to communicate over DBus, I can only assume that there might be some overlap in your DBus integration work. I would like to see both of these projects succeed. Please take a look at how your projects can fit together.
Aaron Spike
Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opporunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
========================= If I had words To make a day for you I sing you a morning golden and new I would make this day Last for all time Give you a night Deep in moonshine