[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gEDA-dev: IPC, HIDs and main loops



Hi folks,

One of the little things that Peter C and I are working on is a HID that 
adds "proper" IPC support to PCB.

Some of the things we think we can do -- without any direct messing about with 
pipes or sockets -- are:

 - When PCB starts, check if there are any other instances of PCB running on
   the system that have the same layout open and warn the user if there are. 
   It might be possible to make PCB open the layout read-only and switch to
   normal mode when the conflicting instance disappears.

 - Allow other programs to call actions and *get return values*.  This will
   make functionality like we've got in xgsch2pcb a bit easier to implement.

We already have a Python script which implements the basic set of features 
we'd like PCB to have, but we're having some difficulty integrating into PCB.  
The technology we're using is D-Bus (a freedesktop.org project that both 
GNOME and KDE are standardising on for IPC -- moving away from DCOP and 
CORBA), and although it's still a little bit "beta" it seems to be quite 
nice.

We're having some problems though -- the recommended C bindings for D-Bus 
require GLib & GObject, and, more importantly, they require a GLib main loop.  
There is a low-level C library, but that's meant only to be used when 
implementing a higher-level binding, and not only would using that require 
writing a couple of thousand lines of code unmaintainable by anyone but a 
D-Bus guru, but we would also have great difficulty ensuring that it works 
with all the other various D-Bus bindings out there -- something which 
the "official" language binding maintainers spend a lot of time making sure 
of.

Clearly, it would be nice to have this as a separate HID.  However, I'm having 
great difficulty thinking of an elegant way to do that, as it is most 
certainly not something as simple as an exporter, and the dependency on GLib 
main loop access is a pain, so perhaps the best option currently would be to 
integrate this into the GTK2 HID, making the IPC *only* available if running 
pcb-gtk.

Any thoughts/suggestions welcomed.

Peter

-- 
Fisher Society publicity officer            http://tinyurl.com/o39w2
CUSBC novices, match and league secretary   http://tinyurl.com/mwrc9

v3sw6YChw7$ln3pr6$ck3ma8u7+Lw3+2m0l7Ci6e4+8t4Gb8en6g6Pa2Xs5Mr4p4
  hackerkey.com                                  peter-b.co.uk

PGP signature



_______________________________________________
geda-dev mailing list
geda-dev@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev