From: <kri...@gm...> - 2007-01-25 12:40:36
|
SGVsbG8sCgpJIHdhcyB0aGlua2luZyBvZiBhZGRpbmcgc29tZSBEYnVzWzFdIGNhcGFiaWxpdHkg dG8gYW4gYXBwLCBhdCB0aGlzCm1vbWVudCBvbmx5IHRvIGNvbm5lY3QgdG8gb3RoZXIgYXBwbGlj YXRpb25zLCBub3QgdG8gZXhwb3NlIGFueQppbnRlcmZhY2UgbXlzZWxmLgoKVGhlcmUgYXJlIHNv bWUgYmluZGluZ3MgYXZhaWxhYmxlIGZvciBydWJ5WzJdLCBidXQgdGhleSBhcmUgb2xkIGFuZAp1 bm1haW50YWluZWQgYW5kIHNvIGhhdmUgYml0cm90dGVkIHNvIGZhciB0aGV5IGFyZSB1bmJ1aWxk YWJsZSAoYW5kIEkKZG9uJ3Qga25vdyBob3cgdG8gZml4IGl0IG9yIGV2ZW4gaWYgaXQncyBlYXN5 L3dvcnRoIGl0KS4KCkl0IGxvb2tzIGxpa2UgR05PTUUgKGFuZCBLREUsIGFuZCBtb3JlKSBhcmUg cHVzaGluZyB0aGlzIHRlY2hub2xvZ3kgYQpsb3Qgbm93LCBzbyBpdCBsb29rcyBsaWtlIGl0J3Mg Z29pbmcgdG8gYmUgdmVyeSBjb252ZW5pZW50IHRvIGhhdmUgaXQKZm9yIHJ1YnktZ25vbWUgYXBw bGljYXRpb25zLiBUaGVyZSBhcmUgYSBsb3Qgb2YgYmluZGluZ3MgZm9yIG90aGVyCmxhbmd1YWdl c1szXSwgaW5jbHVkaW5nIGEgR2xpYiBiaW5kaW5nLCB3aGljaCBpcyB3aGF0IGJyaW5ncyBtZSBo ZXJlOgppcyB0aGlzIHNvbWV0aGluZyB0aGF0IHRoaXMgcHJvamVjdCBpcyB0aGlua2luZyBhYm91 dCBpbmNsdWRpbmcgaW4gdGhlCmZ1dHVyZT8gKE9yIGRvZXMgYW55b25lIGtub3cgb2YgYW55IG90 aGVyIHNvbHV0aW9uLCBmb3IgdGhhdCBtYXR0ZXIpLgoKMS4gaHR0cDovL3d3dy5mcmVlZGVza3Rv cC5vcmcvd2lraS9Tb2Z0d2FyZS9kYnVzCjIuIGh0dHA6Ly9ydWJ5Zm9yZ2Uub3JnL3Byb2plY3Rz L2RidXMtcnVieS8KMy4gaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvd2lraS9Tb2Z0d2FyZV8y ZkRCdXNCaW5kaW5ncwoKVGhhbmtzLAoKLS0ga3Jpc3RvZmZlcgoKLS0gCktyaXN0b2ZmZXIgTHVu ZMOpbgrinIkga3Jpc3RvZmZlci5sdW5kZW5AZ21haWwuY29tCuKciSBrcmlzdG9mZmVyLmx1bmRl bkBnYW1lbWFrZXIubnUKaHR0cDovL3d3dy5nYW1lbWFrZXIubnUvCuKYjiAwNzA0IDQ4IDk4IDc3 Cg== |
From: Nikolai W. <no...@bi...> - 2007-01-25 12:50:35
|
On 1/25/07, Kristoffer Lund=E9n <kri...@gm...> wrote: > I was thinking of adding some Dbus[1] capability to an app, at this > moment only to connect to other applications, not to expose any > interface myself. > > There are some bindings available for ruby[2], but they are old and > unmaintained and so have bitrotted so far they are unbuildable (and I > don't know how to fix it or even if it's easy/worth it). I think the best place to add these bindings would be to the DBus distribution, as they really belong together with the other bindings (such as the GLib and Python bindings), not with the ruby-gnome2 bindings. nikolai |
From: Nikolai W. <no...@bi...> - 2007-01-25 12:57:43
|
On 1/25/07, Nikolai Weibull <no...@bi...> wrote: > On 1/25/07, Kristoffer Lund=E9n <kri...@gm...> wrote: > > > I was thinking of adding some Dbus[1] capability to an app, at this > > moment only to connect to other applications, not to expose any > > interface myself. > > > > There are some bindings available for ruby[2], but they are old and > > unmaintained and so have bitrotted so far they are unbuildable (and I > > don't know how to fix it or even if it's easy/worth it). > > I think the best place to add these bindings would be to the DBus > distribution, as they really belong together with the other bindings > (such as the GLib and Python bindings), not with the ruby-gnome2 > bindings. http://www.freedesktop.org/wiki/Software_2fDBusBindings However, I realize now that you might need the GLib mainloop for D-Bus (which apparently is the proper spelling), so perhaps you'll depend on glib2 anyway and ruby-gnome2 is the right forum after all. I'll shut up now. nikolai |
From: <kri...@gm...> - 2007-01-25 13:09:19
|
T24gMS8yNS8wNywgTmlrb2xhaSBXZWlidWxsIDxub3dAYml0d2kuc2U+IHdyb3RlOgo+IE9uIDEv MjUvMDcsIE5pa29sYWkgV2VpYnVsbCA8bm93QGJpdHdpLnNlPiB3cm90ZToKPiA+IEkgdGhpbmsg dGhlIGJlc3QgcGxhY2UgdG8gYWRkIHRoZXNlIGJpbmRpbmdzIHdvdWxkIGJlIHRvIHRoZSBEQnVz Cj4gPiBkaXN0cmlidXRpb24sIGFzIHRoZXkgcmVhbGx5IGJlbG9uZyB0b2dldGhlciB3aXRoIHRo ZSBvdGhlciBiaW5kaW5ncwo+ID4gKHN1Y2ggYXMgdGhlIEdMaWIgYW5kIFB5dGhvbiBiaW5kaW5n cyksIG5vdCB3aXRoIHRoZSBydWJ5LWdub21lMgo+ID4gYmluZGluZ3MuCj4KPiBodHRwOi8vd3d3 LmZyZWVkZXNrdG9wLm9yZy93aWtpL1NvZnR3YXJlXzJmREJ1c0JpbmRpbmdzCj4KPiBIb3dldmVy LCBJIHJlYWxpemUgbm93IHRoYXQgeW91IG1pZ2h0IG5lZWQgdGhlIEdMaWIgbWFpbmxvb3AgZm9y IEQtQnVzCj4gKHdoaWNoIGFwcGFyZW50bHkgaXMgdGhlIHByb3BlciBzcGVsbGluZyksIHNvIHBl cmhhcHMgeW91J2xsIGRlcGVuZCBvbgo+IGdsaWIyIGFueXdheSBhbmQgcnVieS1nbm9tZTIgaXMg dGhlIHJpZ2h0IGZvcnVtIGFmdGVyIGFsbC4KPgoKVG8gYmUgaG9uZXN0LCBJIGRvbid0IGtub3cg bXlzZWxmLiA6KSBJIGRvIGFncmVlIHRoYXQgcnVieSBuZWVkcyBpdCdzCm93biBzZXBhcmF0ZSBi aW5kaW5ncywgYnV0IHRoZSByZWFzb24gZm9yIGFza2luZyBoZXJlIHdhcyB0aGF0IEkgc2F3CnRo b3NlIEdMaWIgYmluZGluZ3MgYW5kIHRob3VnaHQgdGhleSBtaWdodCBmaXQgaW4gd2l0aCB0aGlz IHByb2plY3QuCldoZXRoZXIgSSBjb3VsZCB1c2UgZWl0aGVyIHNob3VsZCBuZWVkIG9uZSBvciB0 aGUgb3RoZXIgaXMgc2FkbHkgYWJvdmUKbXkgaGVhZC4uLiA6KQoKVGhhbmtzIGZvciB0aGUgYW5z d2VyIQoKLS0gS3Jpc3RvZmZlcgoKCi0tIApLcmlzdG9mZmVyIEx1bmTDqW4K4pyJIGtyaXN0b2Zm ZXIubHVuZGVuQGdtYWlsLmNvbQrinIkga3Jpc3RvZmZlci5sdW5kZW5AZ2FtZW1ha2VyLm51Cmh0 dHA6Ly93d3cuZ2FtZW1ha2VyLm51LwrimI4gMDcwNCA0OCA5OCA3Nwo= |
From: <sj...@sp...> - 2007-01-25 13:17:52
|
On Thu, Jan 25, 2007 at 01:57:38PM +0100, Nikolai Weibull wrote: > On 1/25/07, Nikolai Weibull <no...@bi...> wrote: > > On 1/25/07, Kristoffer Lund=E9n <kri...@gm...> wrote: > > > > > I was thinking of adding some Dbus[1] capability to an app, at this > > > moment only to connect to other applications, not to expose any > > > interface myself. > > > > > > There are some bindings available for ruby[2], but they are old and > > > unmaintained and so have bitrotted so far they are unbuildable (and= I > > > don't know how to fix it or even if it's easy/worth it). > > > > I think the best place to add these bindings would be to the DBus > > distribution, as they really belong together with the other bindings > > (such as the GLib and Python bindings), not with the ruby-gnome2 > > bindings. >=20 > http://www.freedesktop.org/wiki/Software_2fDBusBindings >=20 > However, I realize now that you might need the GLib mainloop for D-Bus > (which apparently is the proper spelling), so perhaps you'll depend on > glib2 anyway and ruby-gnome2 is the right forum after all. You don't need the GLib mainloop (well not strictly) for D-Bus. Although = it's always nice to integrate with the GLib mainloop if you've got one anyway. I've thought about starting with D-Bus bindings from time to time, but i = just don't have the time for it. Anyway if your going to start with the bindings, do consider doing it ent= irely in Ruby instead of on top of libdbus. From discussion i've had with the g= uy implementing the new C# bindings, this might make various aspect actually easier. See [0] for the full protocol specification. Sjoerd 0: http://dbus.freedesktop.org/doc/dbus-specification.html --=20 All life evolves by the differential survival of replicating entities. -- Dawkins |
From: <kri...@gm...> - 2007-01-25 15:40:17
|
T24gMS8yNS8wNywgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQHNwcmluZy5sdW9uLm5ldD4gd3JvdGU6 Cj4gSSd2ZSB0aG91Z2h0IGFib3V0IHN0YXJ0aW5nIHdpdGggRC1CdXMgYmluZGluZ3MgZnJvbSB0 aW1lIHRvIHRpbWUsIGJ1dCBpIGp1c3QKPiBkb24ndCBoYXZlIHRoZSB0aW1lIGZvciBpdC4KPgo+ IEFueXdheSBpZiB5b3VyIGdvaW5nIHRvIHN0YXJ0IHdpdGggdGhlIGJpbmRpbmdzLCBkbyBjb25z aWRlciBkb2luZyBpdCBlbnRpcmVseQo+IGluIFJ1YnkgaW5zdGVhZCBvZiBvbiB0b3Agb2YgbGli ZGJ1cy4gRnJvbSBkaXNjdXNzaW9uIGkndmUgaGFkIHdpdGggdGhlIGd1eQo+IGltcGxlbWVudGlu ZyB0aGUgbmV3IEMjIGJpbmRpbmdzLCB0aGlzIG1pZ2h0IG1ha2UgdmFyaW91cyBhc3BlY3QgYWN0 dWFsbHkKPiBlYXNpZXIuIFNlZSBbMF0gZm9yIHRoZSBmdWxsIHByb3RvY29sIHNwZWNpZmljYXRp b24uCgpUaGlzIGlzIHByb2JhYmx5IGEgZ29vZCBpZGVhIHRvIGdldCBhIG1vcmUgcnVieWlzaCBp bnRlcmZhY2UgZnJvbSB0aGUKc3RhcnQgYXMgd2VsbCwgaW5zdGVhZCBvZiB3cmFwcGluZyBjIGlu dGVyZmFjZXMsIHRoZW4gd3JhcHBpbmcgdGhvc2UKYW5kIHRoZW4gbWFpbnRhaW4gYm90aC4gIDop CgpIb3dldmVyLCBiZWZvcmUgc29tZW9uZSBzdGFydHMgdGhpcywgdGhlcmUgbWlnaHQgYmUgYSBw cm9ibGVtIC0gSQpsb29rZWQgYXQgdGhlIHNwZWMgYW5kIHRoZW4gSSB0cmllZCB0byBjb25uZWN0 IHRvIHRoZSBzb2NrZXQgb24gbXkKbWFjaGluZSBqdXN0IHRvIHNlZSBpZiBJIGNvdWxkIGdldCBh IHJlc3BvbnNlLCBidXQgSSBjb3VsZG4ndCBnZXQgYQpjb25uZWN0aW9uIGF0IGFsbC4gUmVhc29u IGZvciB0aGlzIGlzIHRoYXQgRC1CVVMgY2FuLCBhbmQgb24gbXkKbWFjaGluZSAoVWJ1bnR1KSBk b2VzLCB1c2Ugc29tZXRoaW5nIGNhbGxlZCBhbiBhYnN0cmFjdCB1bml4IHNvY2tldCwKd2hpY2gg c2VlbXMgdG8gYmUgc29tZSBraW5kIG9mIHZpcnR1YWwgc29ja2V0Li4uIGl0IGhhcyBhIHBhdGgg KGluCi90bXAgaW4gdGhpcyBjYXNlKSBidXQgaXNuJ3QgaW4gdGhlIGZpbGVzeXN0ZW0sIGFuZCBz byB0aGUgU29ja2V0CmxpYnJhcnkgY291bGQgbm90IGZpbmQgaXQuLi4gbWF5YmUgSSdtIGRvaW5n IHNvbWV0aGluZyB3cm9uZywgYnV0IEkKY291bGRuJ3QgZmluZCBhbnl0aGluZyBhYm91dCBjb25u ZWN0aW5nIHRvIHRoZXNlIHRoaW5ncyBpbiBSdWJ5LgoKSnVzdCBhIGhlYWRzIHVwLgoKLS0gS3Jp c3RvZmZlcgoKCi0tIApLcmlzdG9mZmVyIEx1bmTDqW4K4pyJIGtyaXN0b2ZmZXIubHVuZGVuQGdt YWlsLmNvbQrinIkga3Jpc3RvZmZlci5sdW5kZW5AZ2FtZW1ha2VyLm51Cmh0dHA6Ly93d3cuZ2Ft ZW1ha2VyLm51LwrimI4gMDcwNCA0OCA5OCA3Nwo= |
From: <sj...@sp...> - 2007-01-25 16:06:00
|
On Thu, Jan 25, 2007 at 04:40:14PM +0100, Kristoffer Lund=E9n wrote: >=20 > However, before someone starts this, there might be a problem - I > looked at the spec and then I tried to connect to the socket on my > machine just to see if I could get a response, but I couldn't get a > connection at all. Reason for this is that D-BUS can, and on my > machine (Ubuntu) does, use something called an abstract unix socket, > which seems to be some kind of virtual socket... it has a path (in > /tmp in this case) but isn't in the filesystem, and so the Socket > library could not find it... maybe I'm doing something wrong, but I > couldn't find anything about connecting to these things in Ruby. You connect to an abstract socket by specifying the first byte of the pat= h as '\0', unfortunately the ruby socket layer doesn't allow you to do this.. = It gives you: ArgumentError: string contains null byte Seems to be quite trivial to patch though. Although you really want ruby upstream to support it and i have no idea how hard that is (Not too diffi= cult hopefully) Sjoerd --=20 No amount of careful planning will ever replace dumb luck. |
From: <kri...@gm...> - 2007-01-25 16:22:34
|
T24gMS8yNS8wNywgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQHNwcmluZy5sdW9uLm5ldD4gd3JvdGU6 Cj4gWW91IGNvbm5lY3QgdG8gYW4gYWJzdHJhY3Qgc29ja2V0IGJ5IHNwZWNpZnlpbmcgdGhlIGZp cnN0IGJ5dGUgb2YgdGhlIHBhdGggYXMKPiAnXDAnLCB1bmZvcnR1bmF0ZWx5IHRoZSBydWJ5IHNv Y2tldCBsYXllciBkb2Vzbid0IGFsbG93IHlvdSB0byBkbyB0aGlzLi4gSXQKPiBnaXZlcyB5b3U6 Cj4gICBBcmd1bWVudEVycm9yOiBzdHJpbmcgY29udGFpbnMgbnVsbCBieXRlCj4KPiBTZWVtcyB0 byBiZSBxdWl0ZSB0cml2aWFsIHRvIHBhdGNoIHRob3VnaC4gQWx0aG91Z2ggeW91IHJlYWxseSB3 YW50IHJ1YnkKPiB1cHN0cmVhbSB0byBzdXBwb3J0IGl0IGFuZCBpIGhhdmUgbm8gaWRlYSBob3cg aGFyZCB0aGF0IGlzIChOb3QgdG9vIGRpZmZpY3VsdAo+IGhvcGVmdWxseSkKPgoKTG9va3Mgc3Ry YWlnaHRmb3J3YXJkIGVub3VnaDoKaHR0cDovL3d3dy5ydWJ5LWxhbmcub3JnL2VuL2NvbW11bml0 eS9ydWJ5LWNvcmUvI3BhdGNoaW5nLXJ1YnkKCkRpZG4ndCBmaW5kIGFueSBidWcgYWJvdXQgdGhp cyBpbiB0aGUgYnVnIHRyYWNrZXIuCgotLSBLcmlzdG9mZmVyCgoKLS0gCktyaXN0b2ZmZXIgTHVu ZMOpbgrinIkga3Jpc3RvZmZlci5sdW5kZW5AZ21haWwuY29tCuKciSBrcmlzdG9mZmVyLmx1bmRl bkBnYW1lbWFrZXIubnUKaHR0cDovL3d3dy5nYW1lbWFrZXIubnUvCuKYjiAwNzA0IDQ4IDk4IDc3 Cg== |
From: jals <rub...@an...> - 2007-03-16 01:36:02
|
I found myself in the very same situation, so I started a new project at Rubyforge, and have uploaded initial code for a ruby only implementation of the dbus protocol. Right now, it's quite unusable, though you can connect to the system bus (no session bus, you know, that abstract socket thing), and may send simple messages and receive the reply. Right now, there's no implicit glib main loop integration, but I think it can still work with glib or gtk applications. So give it a try, and if you can provide some help, it will be really welcome Kristoffer Lundén wrote: > Hello, > > I was thinking of adding some Dbus[1] capability to an app, at this > moment only to connect to other applications, not to expose any > interface myself. > > There are some bindings available for ruby[2], but they are old and > unmaintained and so have bitrotted so far they are unbuildable (and I > don't know how to fix it or even if it's easy/worth it). > > It looks like GNOME (and KDE, and more) are pushing this technology a > lot now, so it looks like it's going to be very convenient to have it > for ruby-gnome applications. There are a lot of bindings for other > languages[3], including a Glib binding, which is what brings me here: > is this something that this project is thinking about including in the > future? (Or does anyone know of any other solution, for that matter). > > 1. http://www.freedesktop.org/wiki/Software/dbus > 2. http://rubyforge.org/projects/dbus-ruby/ > 3. http://www.freedesktop.org/wiki/Software_2fDBusBindings > > Thanks, > > -- kristoffer > > -- > Kristoffer Lundén > ✉ kri...@gm... > ✉ kri...@ga... > http://www.gamemaker.nu/ > ☎ 0704 48 98 77 > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV -- Posted via http://www.ruby-forum.com/. |
From: <kri...@gm...> - 2007-03-16 05:16:53
|
V2VsbCB0aGVyZSBJIGdldCBmb3IgZm9yZ2V0dGluZyB0byB0ZWxsIHRoZSB3b3JsZC4gOy0pCgpB bnlob3csIEkgYWxzbyB3ZW50IGFoZWFkIGFuZCBjcmVhdGVkIGEgbGlicmFyeSwgdGhvdWdoIEkg aGF2ZW4ndApzdGFydGVkIGEgUnVieWZvcmdlIHByb2plY3QgZm9yIGl0IHlldC4gQW5kIEkga25v dyBvZiBhdCBsZWFzdCBvbmUKbW9yZSBwcm9qZWN0IGxpa2UgdGhpcywgYnV0IHRoYXQgb25lIGhh ZCB2ZXJ5IGRpZmZlcmVudCBnb2FscyBpdApzZWVtZWQuCgpJdCdzIGFjdHVhbGx5IHN0YXJ0aW5n IHRvIGJlIHVzYWJsZSwgSSBhbSBjdXJyZW50bHkgc2l0dGluZyBoZXJlIGFuZApjb250cm9sbGlu ZyBSaHl0aG1ib3ggd2l0aCBpdC4gSXQgc3VwcG9ydHMgc2Vzc2lvbiBhbmQgc3lzdGVtIChhbmQg YW55CnJhbmRvbSkgYnVzLCBhcyBJIGZvdW5kIG91dCB0aGF0IGFic3RyYWN0IHNvY2tldHMgYXJl IHBvc3NpYmxlIHVzaW5nCmNvbm5lY3QoKS4gSXQgc3VwcG9ydHMgYXV0aGVudGljYXRpb25zIGFu ZCBtZXNzYWdlcywgcmVwbGllcywgYXN5bmMKcmVwbGllcyBhbmQgc28gb24uIEluIGZhY3QsIGZv ciB0aGUgY2xpZW50IHBhcnRzLCBhbG1vc3QgYWxsIG9mIHRoZQpmb3VuZGF0aW9uIGlzIHRoZXJl LgoKSSBoYXZlIG15IG93biBtYWluIGxvb3AgaW5zdGVhZCwgYXMgSSBoYXZlIGFzIG9uZSBnb2Fs IHRoYXQgdGhlcmUKc2hvdWxkIGJlIHplcm8gbmVlZGVkIGRlcGVuZGVuY2llcyBvdXRzaWRlIFJ1 YnkgKyBTdGRsaWIuIER1bm5vIGhvdwp0aGF0IHdvcmtzIHdpdGggR2xpYiwgYnV0IHRoZXJlIHNo b3VsZCBiZSBubyBwcm9ibGVtIGFkZGluZyBhbgpvcHRpb25hbCBleHRyYS4gVGhlIEFQSSBmZWVs cyBwcmV0dHkgcnVieWlzaCB0b28uIDstKQoKVGhlcmUncyBzdGlsbCBzb21lIHdvcmsgdG8gZG8g YmVmb3JlIGl0J3MgcmVhZHkgZm9yIGluaXRpYWwgcmVsZWFzZQpJTU8sIGJ1dCBub3QgdG9vIG11 Y2g6IFN0YWJpbGl6aW5nIHRoZSBtYXJzaGFsaW5nLCB1c2luZyBpbnRyb3NwZWN0aW9uCmF1dG9t YXRpY2FsbHksIGFkZGluZyBzaWduYWxzLCBjb21wbGV0aW5nIHRoZSB0ZXN0IHN1aXRlLCBsaWNl bnNpbmcgaXQKcHJvcGVybHkuIE1heWJlIGV4cG9ydGluZyBvYmplY3RzIHRob3VnaCB0aGF0IGNh biB3YWl0IGEgbGl0dGxlLiBBcGFydApmcm9tIGdldHRpbmcgdGhlIG1hcnNoYWxpbmcgZXhhY3Rs eSByaWdodCwgd2hpY2ggbWF5IG9yIG1heSBub3QgYmUKaGFyZCwgbm9uZSBvZiB0aGlzIHNob3Vs ZCBiZSB0b28gYmlnIGEgdGFzaywgc28gSSBleHBlY3QgdG8gYmUgcmVhZHkKcHJldHR5IHNvb24s IGJhcnJpbmcgYW55IHN1cnByaXNlcy4KCk5vdCBrZWVwaW5nIGl0IGF3YXkgZnJvbSB0aGUgbWFz c2VzIGFueSBtb3JlIHRoYXQgSSBoYXZlIHRvLCBwcm9taXNlLgo7LSkgSnVzdCB0cnlpbmcgdG8g bWFrZSBzdXJlIGl0J3MgdXNhYmxlICphbmQqIGhhY2thYmxlIHdoZW4gdGhlIGZpcnN0CnZlcnNp b24gaGl0cyB0aGUgaW50ZXJuZXQsIHNvIEkndmUgYm90aCBidWlsdCBhIHN0cnVjdHVyZSBhbmQg YSBwcmV0dHkKY29tcHJlaGVuc2l2ZSB0ZXN0IHN1aXRlIChSU3BlYykuCgoKLS0gS3Jpc3RvZmZl cgoKCk9uIDMvMTYvMDcsIGphbHMgPHJ1YnktZm9ydW0taW5jb21pbmdAYW5kcmVhcy1zLm5ldD4g d3JvdGU6Cj4gSSBmb3VuZCBteXNlbGYgaW4gdGhlIHZlcnkgc2FtZSBzaXR1YXRpb24sIHNvIEkg c3RhcnRlZCBhIG5ldyBwcm9qZWN0IGF0Cj4gUnVieWZvcmdlLCBhbmQgaGF2ZSB1cGxvYWRlZCBp bml0aWFsIGNvZGUgZm9yIGEgcnVieSBvbmx5IGltcGxlbWVudGF0aW9uCj4gb2YgdGhlIGRidXMg cHJvdG9jb2wuCj4KPiBSaWdodCBub3csIGl0J3MgcXVpdGUgdW51c2FibGUsIHRob3VnaCB5b3Ug Y2FuIGNvbm5lY3QgdG8gdGhlIHN5c3RlbSBidXMKPiAobm8gc2Vzc2lvbiBidXMsIHlvdSBrbm93 LCB0aGF0IGFic3RyYWN0IHNvY2tldCB0aGluZyksIGFuZCBtYXkgc2VuZAo+IHNpbXBsZSBtZXNz YWdlcyBhbmQgcmVjZWl2ZSB0aGUgcmVwbHkuIFJpZ2h0IG5vdywgdGhlcmUncyBubyBpbXBsaWNp dAo+IGdsaWIgbWFpbiBsb29wIGludGVncmF0aW9uLCBidXQgSSB0aGluayBpdCBjYW4gc3RpbGwg d29yayB3aXRoIGdsaWIgb3IKPiBndGsgYXBwbGljYXRpb25zLiBTbyBnaXZlIGl0IGEgdHJ5LCBh bmQgaWYgeW91IGNhbiBwcm92aWRlIHNvbWUgaGVscCwgaXQKPiB3aWxsIGJlIHJlYWxseSB3ZWxj b21lCj4gS3Jpc3RvZmZlciBMdW5kw6luIHdyb3RlOgo+ID4gSGVsbG8sCj4gPgo+ID4gSSB3YXMg dGhpbmtpbmcgb2YgYWRkaW5nIHNvbWUgRGJ1c1sxXSBjYXBhYmlsaXR5IHRvIGFuIGFwcCwgYXQg dGhpcwo+ID4gbW9tZW50IG9ubHkgdG8gY29ubmVjdCB0byBvdGhlciBhcHBsaWNhdGlvbnMsIG5v dCB0byBleHBvc2UgYW55Cj4gPiBpbnRlcmZhY2UgbXlzZWxmLgo+ID4KPiA+IFRoZXJlIGFyZSBz b21lIGJpbmRpbmdzIGF2YWlsYWJsZSBmb3IgcnVieVsyXSwgYnV0IHRoZXkgYXJlIG9sZCBhbmQK PiA+IHVubWFpbnRhaW5lZCBhbmQgc28gaGF2ZSBiaXRyb3R0ZWQgc28gZmFyIHRoZXkgYXJlIHVu YnVpbGRhYmxlIChhbmQgSQo+ID4gZG9uJ3Qga25vdyBob3cgdG8gZml4IGl0IG9yIGV2ZW4gaWYg aXQncyBlYXN5L3dvcnRoIGl0KS4KPiA+Cj4gPiBJdCBsb29rcyBsaWtlIEdOT01FIChhbmQgS0RF LCBhbmQgbW9yZSkgYXJlIHB1c2hpbmcgdGhpcyB0ZWNobm9sb2d5IGEKPiA+IGxvdCBub3csIHNv IGl0IGxvb2tzIGxpa2UgaXQncyBnb2luZyB0byBiZSB2ZXJ5IGNvbnZlbmllbnQgdG8gaGF2ZSBp dAo+ID4gZm9yIHJ1YnktZ25vbWUgYXBwbGljYXRpb25zLiBUaGVyZSBhcmUgYSBsb3Qgb2YgYmlu ZGluZ3MgZm9yIG90aGVyCj4gPiBsYW5ndWFnZXNbM10sIGluY2x1ZGluZyBhIEdsaWIgYmluZGlu Zywgd2hpY2ggaXMgd2hhdCBicmluZ3MgbWUgaGVyZToKPiA+IGlzIHRoaXMgc29tZXRoaW5nIHRo YXQgdGhpcyBwcm9qZWN0IGlzIHRoaW5raW5nIGFib3V0IGluY2x1ZGluZyBpbiB0aGUKPiA+IGZ1 dHVyZT8gKE9yIGRvZXMgYW55b25lIGtub3cgb2YgYW55IG90aGVyIHNvbHV0aW9uLCBmb3IgdGhh dCBtYXR0ZXIpLgo+ID4KPiA+IDEuIGh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3dpa2kvU29m dHdhcmUvZGJ1cwo+ID4gMi4gaHR0cDovL3J1Ynlmb3JnZS5vcmcvcHJvamVjdHMvZGJ1cy1ydWJ5 Lwo+ID4gMy4gaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvd2lraS9Tb2Z0d2FyZV8yZkRCdXNC aW5kaW5ncwo+ID4KPiA+IFRoYW5rcywKPiA+Cj4gPiAtLSBrcmlzdG9mZmVyCj4gPgo+ID4gLS0K PiA+IEtyaXN0b2ZmZXIgTHVuZMOpbgo+ID4g4pyJIGtyaXN0b2ZmZXIubHVuZGVuQGdtYWlsLmNv bQo+ID4g4pyJIGtyaXN0b2ZmZXIubHVuZGVuQGdhbWVtYWtlci5udQo+ID4gaHR0cDovL3d3dy5n YW1lbWFrZXIubnUvCj4gPiDimI4gMDcwNCA0OCA5OCA3Nwo+ID4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ ID4gVGFrZSBTdXJ2ZXlzLiBFYXJuIENhc2guIEluZmx1ZW5jZSB0aGUgRnV0dXJlIG9mIElUCj4g PiBKb2luIFNvdXJjZUZvcmdlLm5ldCdzIFRlY2hzYXkgcGFuZWwgYW5kIHlvdSdsbCBnZXQgdGhl IGNoYW5jZSB0byBzaGFyZQo+ID4geW91cgo+ID4gb3BpbmlvbnMgb24gSVQgJiBidXNpbmVzcyB0 b3BpY3MgdGhyb3VnaCBicmllZiBzdXJ2ZXlzIC0gYW5kIGVhcm4gY2FzaAo+ID4gaHR0cDovL3d3 dy50ZWNoc2F5LmNvbS9kZWZhdWx0LnBocD9wYWdlPWpvaW4ucGhwJnA9c291cmNlZm9yZ2UmQ0lE PURFVkRFVgo+Cj4gLS0KPiBQb3N0ZWQgdmlhIGh0dHA6Ly93d3cucnVieS1mb3J1bS5jb20vLgo+ Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRha2UgU3VydmV5cy4gRWFybiBDYXNoLiBJbmZsdWVuY2Ug dGhlIEZ1dHVyZSBvZiBJVAo+IEpvaW4gU291cmNlRm9yZ2UubmV0J3MgVGVjaHNheSBwYW5lbCBh bmQgeW91J2xsIGdldCB0aGUgY2hhbmNlIHRvIHNoYXJlIHlvdXIKPiBvcGluaW9ucyBvbiBJVCAm IGJ1c2luZXNzIHRvcGljcyB0aHJvdWdoIGJyaWVmIHN1cnZleXMtYW5kIGVhcm4gY2FzaAo+IGh0 dHA6Ly93d3cudGVjaHNheS5jb20vZGVmYXVsdC5waHA/cGFnZT1qb2luLnBocCZwPXNvdXJjZWZv cmdlJkNJRD1ERVZERVYKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IHJ1YnktZ25vbWUyLWRldmVsLWVuIG1haWxpbmcgbGlzdAo+IHJ1YnktZ25vbWUy LWRldmVsLWVuQGxpc3RzLnNvdXJjZWZvcmdlLm5ldAo+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9y Z2UubmV0L2xpc3RzL2xpc3RpbmZvL3J1YnktZ25vbWUyLWRldmVsLWVuCj4KCgotLSAKS3Jpc3Rv ZmZlciBMdW5kw6luCuKciSBrcmlzdG9mZmVyLmx1bmRlbkBnbWFpbC5jb20K4pyJIGtyaXN0b2Zm ZXIubHVuZGVuQGdhbWVtYWtlci5udQpodHRwOi8vd3d3LmdhbWVtYWtlci5udS8K4piOIDA3MDQg NDggOTggNzcK |
From: <sj...@sp...> - 2007-03-16 13:23:24
|
On Fri, Mar 16, 2007 at 06:16:14AM +0100, Kristoffer Lundén wrote: > Well there I get for forgetting to tell the world. ;-) > > Anyhow, I also went ahead and created a library, though I haven't > started a Rubyforge project for it yet. And I know of at least one > more project like this, but that one had very different goals it > seemed. It would be good if you guys talked together.. It won't be very nice to end up with three slightly different implementations of the same thing :) > It's actually starting to be usable, I am currently sitting here and > controlling Rhythmbox with it. It supports session and system (and any > random) bus, as I found out that abstract sockets are possible using > connect(). It supports authentications and messages, replies, async > replies and so on. In fact, for the client parts, almost all of the > foundation is there. Nice work \o/ > I have my own main loop instead, as I have as one goal that there > should be zero needed dependencies outside Ruby + Stdlib. Dunno how > that works with Glib, but there should be no problem adding an > optional extra. The API feels pretty rubyish too. ;-) Your own mainloop is great ofcourse.. But it would really rock if it would have some optional integration with the GLib mainloop was possible.. I really don't want to run a mainloop for dbus, one for GLib, one for whatever framerwork in my applications :) Adding Glib mainloop support is probably nothing more then using a GLib::IOChannel to watch your dbus connection and use that to trigger the demarshalling.. Should be mostly trivial :) Sjoerd -- Nothing is but what is not. |
From: Arnaud C. <rub...@an...> - 2007-03-16 14:55:28
|
>> And I know of at least one >> more project like this, but that one had very different goals it >> seemed. That's probably paul and I. :) > It would be good if you guys talked together.. It won't be very nice to > end up > with three slightly different implementations of the same thing :) Obviously yes. >> It's actually starting to be usable, I am currently sitting here and >> controlling Rhythmbox with it. It supports session and system (and any >> random) bus, as I found out that abstract sockets are possible using >> connect(). It supports authentications and messages, replies, async >> replies and so on. In fact, for the client parts, almost all of the >> foundation is there. I also have a working implementation. I have a working dbus messages marshaller/unmarshaller, signature parser. I also have a ProxyObjectFactory object that generates proxy objects from XML definition, allowing runtime object class definition using D-Bus introspection mecanism. All this works, now what's left to do: - Auth. Right now it's stupid and hardcoded. Works for my tests. That's all. More interesting stuff: - Implement a way to provide methods rather than simply be able to call them. - Implement proper GLib integration. I have no idea on how to do that properly. Given a unix socket I can poll for message, detect their completeness, and process them. I think this will be enough to implement glib main loop integration. The api is definitely not set in stone anyway. > Your own mainloop is great ofcourse.. But it would really rock if it > would have > some optional integration with the GLib mainloop was possible.. I really > don't > want to run a mainloop for dbus, one for GLib, one for whatever > framerwork in > my applications :) It's actually not possible to have multibple mainloops w/o threading. So yeah ! GLib main loop is the de facto standard for main loops. I would like a DBus lib to provide low level stuff to marshall/unmarshall messages, but also a very high level api that gives GObjects to connect signals to. > Adding Glib mainloop support is probably nothing more then using a > GLib::IOChannel to watch your dbus connection and use that to trigger > the demarshalling.. Should be mostly trivial :) Well, you certainly can help me on that. I have a ruby UNIXSocket, and I don't really know how to map it to a GIOChannel. My source is available there: https://trac.luon.net/ruby-dbus/browser/ It's NOT in releasable shape. It needs a patch to the ruby interpeter to work (with linux, for the abstract socket stuff, see the contrib subdir). Feel free to ask me whatever comes to your mind. -- Arnaud Cornet -- Posted via http://www.ruby-forum.com/. |
From: <kri...@gm...> - 2007-03-16 19:22:43
|
U29tZXdoYXQgYml6YXJyZSB0byBrZWVwIHRoaXMgb24gdGhlIFJ1YnktR05PTUUgbGlzdCBwZXJo YXBzLCBidXQgYWgKd2VsbC4gOy0pIEkgd291bGQgbGlrZSBpbnB1dCBvbiB3aGF0IEdMaWIgc3R1 ZmYgd291bGQgaGVscCBHdGsrL0dOT01FCmFwcGxpY2F0aW9ucywgc28gYXMgbG9uZyBhcyBub29u ZSBtaW5kcyB0b28gbXVjaC4uLiA6KQoKT24gMy8xNi8wNywgQXJuYXVkIENvcm5ldCA8cnVieS1m b3J1bS1pbmNvbWluZ0BhbmRyZWFzLXMubmV0PiB3cm90ZToKPiA+PiBBbmQgSSBrbm93IG9mIGF0 IGxlYXN0IG9uZQo+ID4+IG1vcmUgcHJvamVjdCBsaWtlIHRoaXMsIGJ1dCB0aGF0IG9uZSBoYWQg dmVyeSBkaWZmZXJlbnQgZ29hbHMgaXQKPiA+PiBzZWVtZWQuCj4KPiBUaGF0J3MgcHJvYmFibHkg cGF1bCBhbmQgSS4gOikKPgoKVGhhdCdzIHlvdSwgeWVzLiA6KSBJIGhhdmVuJ3QgZm9yZ290dGVu IGFib3V0IHlvdSBndXlzLCBidXQgSSByZWFsbHkKZmVsdCBJIGhhZCB0byBtYWtlIHRoZSBiaWcg Y2xlYW4tdXAgYmVmb3JlIHRoZXJlIHdhcyBhbnkgaWRlYSB0byBwdXQKaXQgYWxsIHVwIHRoZXJl LiBJdCdzIHJhcmUgdGhhdCByZWxlYXNpbmcgYSBtZXNzIHdpbGwgcmVzdWx0IGluIGJldHRlcgpj b2RlLCB1c3VhbGx5IGl0IHdpbGwganVzdCBnZXQgbWVzc2llciwgb3Igbm90IHVzZWQgYXQgYWxs LiA6KSBUaGF0CnNhaWQsIHRoZSBhcmNoaXRlY3R1cmUgaXMgc3RhcnRpbmcgdG8gbG9vayBib3Ro IGxvZ2ljYWwgYW5kIHVzYWJsZSwKYW5kIGFzIHNvb24gYXMgaXQncyBnbHVlZCB0b2dldGhlciBw cm9wZXJseSBmb3IgdGhlIGZpcnN0IHRpbWUsIGl0J2xsCmJlIHJlbGVhc2UgZWFybHkgYW5kIG9m dGVuLgoKSSdtIGFsc28gd29ya2luZyB0byBoYXZlIGEgZ29vZCB0ZXN0IHN1aXRlIGZyb20gdGhl IHN0YXJ0LCBzbyBpdCdsbCBiZQplYXN5IHRvIGtlZXAgd29ya2luZyBhbmQgc3RhYmxlLiBSU3Bl YyBpcyBmYW50YXN0aWMgaWYgeW91IGhhdmVuJ3QKY2hlY2tlZCBpdCBvdXQuCgo+ID4gSXQgd291 bGQgYmUgZ29vZCBpZiB5b3UgZ3V5cyB0YWxrZWQgdG9nZXRoZXIuLiBJdCB3b24ndCBiZSB2ZXJ5 IG5pY2UgdG8KPiA+IGVuZCB1cAo+ID4gd2l0aCB0aHJlZSBzbGlnaHRseSBkaWZmZXJlbnQgaW1w bGVtZW50YXRpb25zIG9mIHRoZSBzYW1lIHRoaW5nIDopCj4KPiBPYnZpb3VzbHkgeWVzLgo+CgpB Z3JlZSwgbGlrZSBJJ3ZlIHNhaWQgYmVmb3JlLiBIb3dldmVyLCBBcm5hdWQgYW5kIEkgaGF2ZSB0 YWxrZWQgYW5kIEkKdGhpbmsgd2UgaGF2ZSB2ZXJ5IGRpZmZlcmVudCBhcHByb2FjaGVzIGFuZCBh bHNvIGRpZmZlcmluZyBnb2Fscywgc28gSQp0aGluayB0aGVyZSBpcyBzb21lIHRoaW5ncyB0byBi ZSB3b24gYnkgbGV0dGluZyB0aGUgZGlmZmVyZW50IHBhdGhzIGdvCnRoZWlyIG1lcnJ5IHdheSBm b3IgYSBsaXR0bGUgd2hpbGUgYW5kIG1heWJlIHNlZSB3aGF0IHdvcmtzLCB3aG8gaXMKInJpZ2h0 IiBpZiB5b3Ugd2lzaC4gOy0pIEkgZG9uJ3QgbWluZCBiZWluZyB3cm9uZy4uLiBpdCdzIGFsc28g cXVpdGUKcG9zc2libGUgdGhhdCB3ZSBjYW4gbWVldCBhbGwgb3VyIGdvYWxzIHRvZ2V0aGVyIGxh dGVyLCBidXQgbm93IGl0CmRpZG4ndCBzZWVtIHRvIGJlIGEgZ29vZCB0aW1lIHRvIG1lLiBTb3Jy eS4KCj4gSSBhbHNvIGhhdmUgYSB3b3JraW5nIGltcGxlbWVudGF0aW9uLiBJIGhhdmUgYSB3b3Jr aW5nIGRidXMgbWVzc2FnZXMKPiBtYXJzaGFsbGVyL3VubWFyc2hhbGxlciwgc2lnbmF0dXJlIHBh cnNlci4gSSBhbHNvIGhhdmUgYQo+IFByb3h5T2JqZWN0RmFjdG9yeSBvYmplY3QgdGhhdCBnZW5l cmF0ZXMgcHJveHkgb2JqZWN0cyBmcm9tIFhNTAo+IGRlZmluaXRpb24sIGFsbG93aW5nIHJ1bnRp bWUgb2JqZWN0IGNsYXNzIGRlZmluaXRpb24gdXNpbmcgRC1CdXMKPiBpbnRyb3NwZWN0aW9uIG1l Y2FuaXNtLgoKSSBoYXZlIGEgc29tZXdoYXQgc2ltaWxhciwgYXBwcm9hY2gsIGJ1dCBJIGRvbid0 IHJlbHkgb24gWE1MIHRvIGFsd2F5cwpiZSBhdmFpbGFibGUsIGFzIGl0IGlzbid0LiBJbiBtYW55 IGNhc2VzIGl0J3MgcXVpdGUgcG9zc2libGUgdG8gZG8gdGhlCnJpZ2h0IHRoaW5nIGFueXdheSwg YW5kIHdoZW4gYWxsIGVsc2UgZmFpbHMgeW91IHNob3VsZCBiZSBhYmxlIHRvIHRlbGwKdGhlIGxp YnJhcnkgd2hhdCB0byBkby4gQ3JlYXRpbmcgYSBQcm94eSBvYmplY3QgZG9lcyBpbnZvbHZlIGFz a2luZwpmb3IgYW4gSW50cm9zcGVjdCBmaXJzdCB0aG91Z2guLi4KCj4gQWxsIHRoaXMgd29ya3Ms IG5vdyB3aGF0J3MgbGVmdCB0byBkbzoKPiAtIEF1dGguIFJpZ2h0IG5vdyBpdCdzIHN0dXBpZCBh bmQgaGFyZGNvZGVkLiBXb3JrcyBmb3IgbXkgdGVzdHMuIFRoYXQncwo+IGFsbC4KCkdvdCB0aGUg c3RhdGUgbWFjaGluZSBhbmQgbWVjaGFuaXNtcyBmcm9tIHRoZSBzcGVjcyBhbmQgaXQncyBlYXN5 IHRvCnBsdWcgbmV3IG9uZXMuCgo+IE1vcmUgaW50ZXJlc3Rpbmcgc3R1ZmY6Cj4gLSBJbXBsZW1l bnQgYSB3YXkgdG8gcHJvdmlkZSBtZXRob2RzIHJhdGhlciB0aGFuIHNpbXBseSBiZSBhYmxlIHRv IGNhbGwKPiB0aGVtLgoKQXJlIHlvdSB0YWxraW5nIGFib3V0IGV4cG9ydGluZyBvYmplY3RzIG9y IHNvbWV0aGluZyBlbHNlPyBFeHBvcnRpbmcKb2JqZWN0cyBpcyBhbiBpbXBvcnRhbnQgZ29hbCBJ TU8sIGFuZCBldmVuIG1vcmUgc28gdG8gZG8gaXQgaW4gYSB3YXkKdGhhdCBmZWVsIG5hdHVyYWwg dG8gUnVieS4gOikKCj4gLSBJbXBsZW1lbnQgcHJvcGVyIEdMaWIgaW50ZWdyYXRpb24uCgpOb3Qg YXQgYWxsIGludGVyZXN0ZWQgaW4gdGhpcywgdW5sZXNzIHRoZXJlIGlzIGEgY29tcGVsbGluZyBy ZWFzb24gLi0Kc2VlIGJlbG93LiA6KQoKPiA+IFlvdXIgb3duIG1haW5sb29wIGlzIGdyZWF0IG9m Y291cnNlLi4gQnV0IGl0IHdvdWxkIHJlYWxseSByb2NrIGlmIGl0Cj4gPiB3b3VsZCBoYXZlCj4g PiBzb21lIG9wdGlvbmFsIGludGVncmF0aW9uIHdpdGggdGhlIEdMaWIgbWFpbmxvb3Agd2FzIHBv c3NpYmxlLi4gSSByZWFsbHkKPiA+IGRvbid0Cj4gPiB3YW50IHRvIHJ1biBhIG1haW5sb29wIGZv ciBkYnVzLCBvbmUgZm9yIEdMaWIsIG9uZSBmb3Igd2hhdGV2ZXIKPiA+IGZyYW1lcndvcmsgaW4K PiA+IG15IGFwcGxpY2F0aW9ucyA6KQo+Cj4gSXQncyBhY3R1YWxseSBub3QgcG9zc2libGUgdG8g aGF2ZSBtdWx0aWJwbGUgbWFpbmxvb3BzIHcvbyB0aHJlYWRpbmcuIFNvCj4geWVhaCAhIEdMaWIg bWFpbiBsb29wIGlzIHRoZSBkZSBmYWN0byBzdGFuZGFyZCBmb3IgbWFpbiBsb29wcy4gSSB3b3Vs ZAo+IGxpa2UgYSBEQnVzIGxpYiB0byBwcm92aWRlIGxvdyBsZXZlbCBzdHVmZiB0byBtYXJzaGFs bC91bm1hcnNoYWxsCj4gbWVzc2FnZXMsIGJ1dCBhbHNvIGEgdmVyeSBoaWdoIGxldmVsIGFwaSB0 aGF0IGdpdmVzIEdPYmplY3RzIHRvIGNvbm5lY3QKPiBzaWduYWxzIHRvLgo+CgpJIHdhcyBhIGJp dCB1bmNsZWFyLiBBY3R1YWxseSBJIGRvbid0IGhhdmUgYSBtYWlubG9vcCBpbiB0aGF0IHNlbnNl LApidXQgYWxsIG1lc3NhZ2VzIGFyZSBzZW50IGFuZCByZWNlaXZlZCBpbiB0aGVpciBvd24gbGln aHR3ZWlnaHQKdGhyZWFkLCB3aGljaCBoYW5kbGVzIHN5bmMgYW5kIGFzeW5jIG1lc3NhZ2VzIGFu ZCBzaWduYWxzIGV0YwpzZWFtbGVzc2x5LiBUaGUgZW5kIHVzZXIgbmV2ZXIgc2VlcyBhbnl0aGln IGFib3V0IHRoaXMsIGJ1dCBvbmx5IG1ha2VzCnRoZSByZXF1ZXN0cy4gRnJvbSB3aGF0IEkgY2Fu IHRlbGwsIGlmIHlvdSBzdGFydCBhIEdsaWIgb3IgYW55IG90aGVyCm1haW5sb29wLCB0aGluZ3Mg d2lsbCBqdXN0IGtlZXAgb24gd29ya2luZyBhcyB0aGV5IHNob3VsZC4KCkkgYXNzdW1lIHRoZXJl J3MgZXh0cmEgYmVuZWZpdHMgaWYgeW91IGhhdmUgYSBHTGliIG1haW5sb29wIGFueXdheXMgdG8K YmUgYWJsZSB0byB1c2UgdGhvc2Ugc2lnbmFscyBuYXRpdmVseSBhbmQgc3R1ZmYsIGJ1dCBJIHRo aW5rIHRoYXQKY291bGQgZWFzaWx5IGJlIHNvbHZlZCBieSBpbXBvcnRpbmcgYW4gZXh0cmEgbGli IHdoZW4gaXQncyBhdmFpbGFibGUgSQp0aGluay4gSSdtIG5vdCBhY3R1YWxseSBzdXJlIHdoYXQg cGVvcGxlIHdhbnQgaGVyZSwgYnV0IEkgYW0KaW50ZXJlc3RlZCB0byBrbm93LiA6KQoKQW5kIHBl cnNvbmFsbHkgSSB0aGluayB0aGF0IEdMaWIgY2FuIGJlIGFsbCB0aGUgZGUgZmFjdG8gc3RhbmRh cmQgaXQKd2FudHMsIGJ1dCBpdCB3b3VsZCBiZSBob3JyaWJsZSB0byBoYXZlIHRoYXQgYXMgYW55 dGhpbmcgYnV0IGFuCm9wdGlvbmFsIGRlcGVuZGVuY3kuIDopCgo+IEl0IG5lZWRzIGEgcGF0Y2gg dG8gdGhlIHJ1YnkgaW50ZXJwZXRlciB0bwo+IHdvcmsgKHdpdGggbGludXgsIGZvciB0aGUgYWJz dHJhY3Qgc29ja2V0IHN0dWZmLCBzZWUgdGhlIGNvbnRyaWIKPiBzdWJkaXIpLgoKQGNvbm5lY3Rp b25faW5mbyBpcyBhIGhhc2ggbWFkZSBmcm9tIHRoZSBzZXJ2ZXIgYWRkcmVzcyBwYXJ0cywgc2hv dWxkCmJlIHByZXR0eSBvYnZpb3VzIGZyb20gdGhlcmU6CgogICAgY2xhc3MgVU5JWFRyYW5zcG9y dCA8IEFic3RyYWN0VHJhbnNwb3J0CiAgICAgIGRlZiBjcmVhdGVfc29ja2V0CiAgICAgICAgaWYg QGNvbm5lY3Rpb25faW5mby5oYXNfa2V5PygnYWJzdHJhY3QnKQogICAgICAgICAgQHNvY2tldCA9 IFNvY2tldC5uZXcoU29ja2V0OjpBRl9VTklYLCBTb2NrZXQ6OlNPQ0tfU1RSRUFNLCAwKQogICAg ICAgICAgQHNvY2tldC5jb25uZWN0KCJcMVwwXDAje0Bjb25uZWN0aW9uX2luZm9bJ2Fic3RyYWN0 J119IikKICAgICAgICBlbHNpZiBAY29ubmVjdGlvbl9pbmZvLmhhc19rZXk/KCdwYXRoJykKICAg ICAgICAgIEBzb2NrZXQgPSBVTklYU29ja2V0Lm9wZW4oQGNvbm5lY3Rpb25faW5mb1sncGF0aCdd KQogICAgICAgIGVuZAogICAgICBlbmQKICAgIGVuZAoKVWdseSwgaXNuJ3QgaXQ/IDopIEJ1dCBu byBuZWVkIGZvciBwYXRjaGVzLi4uIEkgZ290IHRoZSBiYXNlIGZvciB0aGlzCmZyb20gdGhlIGJ1 ZyByZXBvcnQgSSBmaWxlZC4gRnJvbSB3aGF0IEkgdW5kZXJzdG9vZCwgSSB0aGluayBhdCBsZWFz dApzb21lIGRldnMgdGhvdWdodCB0aGlzIHNob3VsZCBub3QgYmUgcGF0Y2hlZCBpbiBtYWluLCBl dmVyLgoKCi0tIEtyaXN0b2ZmZXIKCgpLcmlzdG9mZmVyIEx1bmTDqW4K4pyJIGtyaXN0b2ZmZXIu bHVuZGVuQGdtYWlsLmNvbQrinIkga3Jpc3RvZmZlci5sdW5kZW5AZ2FtZW1ha2VyLm51Cmh0dHA6 Ly93d3cuZ2FtZW1ha2VyLm51LwrimI4gMDcwNCA0OCA5OCA3Nwo= |
From: <sj...@sp...> - 2007-03-18 13:39:32
|
On Fri, Mar 16, 2007 at 08:22:38PM +0100, Kristoffer Lundén wrote: > I was a bit unclear. Actually I don't have a mainloop in that sense, > but all messages are sent and received in their own lightweight > thread, which handles sync and async messages and signals etc > seamlessly. The end user never sees anythig about this, but only makes > the requests. From what I can tell, if you start a Glib or any other > mainloop, things will just keep on working as they should. Could you be a little more specific about this ? Maybe some (pseudo)-code examples ? The approach sounds a little bit problamatic to me. But then again I really dislike threads being spawned behind the users back, but maybe you can prove me wrong here :) > I assume there's extra benefits if you have a GLib mainloop anyways to > be able to use those signals natively and stuff, but I think that > could easily be solved by importing an extra lib when it's available I > think. I'm not actually sure what people want here, but I am > interested to know. :) > And personally I think that GLib can be all the de facto standard it > wants, but it would be horrible to have that as anything but an > optional dependency. :) I'd never ask to make it a mandatory dependency, that would be really bad. Sjoerd -- The following statement is not true. The previous statement is true. |
From: Jaime A. L. S. <rub...@an...> - 2007-03-18 23:28:30
|
Kristoffer Lundén wrote: > Somewhat bizarre to keep this on the Ruby-GNOME list perhaps, but ah > well. ;-) I would like input on what GLib stuff would help Gtk+/GNOME > applications, so as long as noone minds too much... :) I think you are right. I propose that we all start using a mailing list in one of our created projects. Of course I offer mine ;) (pr-dbus) for which I have already requested a mailing list. We can always use ruby forge's forums. The truth is this thread prompted me to start writing something, and I think we now need a proper place for discussion. So, please hangout at http://rubyforge.org/projects/pr-dbus/ Or if you have another idea, please tell. > > On 3/16/07, Arnaud Cornet <rub...@an...> wrote: >> >> And I know of at least one >> >> more project like this, but that one had very different goals it >> >> seemed. >> >> That's probably paul and I. :) >> > > That's you, yes. :) I haven't forgotten about you guys, but I really > felt I had to make the big clean-up before there was any idea to put > it all up there. It's rare that releasing a mess will result in better > code, usually it will just get messier, or not used at all. :) That > said, the architecture is starting to look both logical and usable, > and as soon as it's glued together properly for the first time, it'll > be release early and often. > I have had the very same feelings, but I decided I should start releasing now. In fact you can download from the subversion repository what I have right now, which seems to be a bit less than what you have. On the licensing side, I am using the LGPL right now. > I'm also working to have a good test suite from the start, so it'll be > easy to keep working and stable. RSpec is fantastic if you haven't > checked it out. > >> > It would be good if you guys talked together.. It won't be very nice to >> > end up >> > with three slightly different implementations of the same thing :) >> >> Obviously yes. >> > > Agree, like I've said before. However, Arnaud and I have talked and I > think we have very different approaches and also differing goals, so I > think there is some things to be won by letting the different paths go > their merry way for a little while and maybe see what works, who is > "right" if you wish. ;-) I don't mind being wrong... it's also quite > possible that we can meet all our goals together later, but now it > didn't seem to be a good time to me. Sorry. > >> I also have a working implementation. I have a working dbus messages >> marshaller/unmarshaller, signature parser. I also have a >> ProxyObjectFactory object that generates proxy objects from XML >> definition, allowing runtime object class definition using D-Bus >> introspection mecanism. > > I have a somewhat similar, approach, but I don't rely on XML to always > be available, as it isn't. In many cases it's quite possible to do the > right thing anyway, and when all else fails you should be able to tell > the library what to do. Creating a Proxy object does involve asking > for an Introspect first though... > >> All this works, now what's left to do: >> - Auth. Right now it's stupid and hardcoded. Works for my tests. That's >> all. > > Got the state machine and mechanisms from the specs and it's easy to > plug new ones. > >> More interesting stuff: >> - Implement a way to provide methods rather than simply be able to call >> them. > > Are you talking about exporting objects or something else? Exporting > objects is an important goal IMO, and even more so to do it in a way > that feel natural to Ruby. :) > >> - Implement proper GLib integration. > > Not at all interested in this, unless there is a compelling reason .- > see below. :) > >> like a DBus lib to provide low level stuff to marshall/unmarshall >> messages, but also a very high level api that gives GObjects to connect >> signals to. >> > > I was a bit unclear. Actually I don't have a mainloop in that sense, > but all messages are sent and received in their own lightweight > thread, which handles sync and async messages and signals etc > seamlessly. The end user never sees anythig about this, but only makes > the requests. From what I can tell, if you start a Glib or any other > mainloop, things will just keep on working as they should. > > I assume there's extra benefits if you have a GLib mainloop anyways to > be able to use those signals natively and stuff, but I think that > could easily be solved by importing an extra lib when it's available I > think. I'm not actually sure what people want here, but I am > interested to know. :) > > And personally I think that GLib can be all the de facto standard it > wants, but it would be horrible to have that as anything but an > optional dependency. :) > >> It needs a patch to the ruby interpeter to >> work (with linux, for the abstract socket stuff, see the contrib >> subdir). > > @connection_info is a hash made from the server address parts, should > be pretty obvious from there: > > class UNIXTransport < AbstractTransport > def create_socket > if @connection_info.has_key?('abstract') > @socket = Socket.new(Socket::AF_UNIX, Socket::SOCK_STREAM, 0) > @socket.connect("\1\0\0#{@connection_info['abstract']}") > elsif @connection_info.has_key?('path') > @socket = UNIXSocket.open(@connection_info['path']) > end > end > end > > Ugly, isn't it? :) But no need for patches... I got the base for this > from the bug report I filed. From what I understood, I think at least > some devs thought this should not be patched in main, ever. So, to wrap it all... We all seem to have similar goals, so lets start working in the same direction. -- Posted via http://www.ruby-forum.com/. |
From: <sj...@sp...> - 2007-03-19 21:18:08
|
On Mon, Mar 19, 2007 at 12:28:26AM +0100, Jaime Atahualpa Lopez Sollano wrote: > Kristoffer Lundén wrote: > > Somewhat bizarre to keep this on the Ruby-GNOME list perhaps, but ah > > well. ;-) I would like input on what GLib stuff would help Gtk+/GNOME > > applications, so as long as noone minds too much... :) > > I think you are right. I propose that we all start using a mailing list > in one of our created projects. Of course I offer mine ;) (pr-dbus) for > which I have already requested a mailing list. We can always use ruby > forge's forums. > > The truth is this thread prompted me to start writing something, and I > think we now need a proper place for discussion. So, please hangout at > http://rubyforge.org/projects/pr-dbus/ I'd say: https://lists.luon.net/listinfo/ruby-dbus-devel :) Which is closely related to https://trac.luon.net/ruby-dbus. I think they deserve some credit for being the first to actually have some working code online.. Sjoerd -- Life may have no meaning, or, even worse, it may have a meaning of which you disapprove. |
From: <kri...@gm...> - 2007-03-18 23:44:48
|
T24gMy8xOC8wNywgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQHNwcmluZy5sdW9uLm5ldD4gd3JvdGU6 Cj4KPiBDb3VsZCB5b3UgYmUgYSBsaXR0bGUgbW9yZSBzcGVjaWZpYyBhYm91dCB0aGlzID8gTWF5 YmUgc29tZSAocHNldWRvKS1jb2RlCj4gZXhhbXBsZXMgPyBUaGUgYXBwcm9hY2ggc291bmRzIGEg bGl0dGxlIGJpdCBwcm9ibGFtYXRpYyB0byBtZS4gQnV0IHRoZW4gYWdhaW4KPiBJIHJlYWxseSBk aXNsaWtlIHRocmVhZHMgYmVpbmcgc3Bhd25lZCBiZWhpbmQgdGhlIHVzZXJzIGJhY2ssIGJ1dCBt YXliZSB5b3UKPiBjYW4gcHJvdmUgbWUgd3JvbmcgaGVyZSA6KQo+CgpJIGNhbiB0cnkuIDopIElu IGdlbmVyYWwsIEkgYWdyZWUgd2l0aCB5b3UuIFRocmVhZHMgc3Bhd25lZCBiZWhpbmQgdGhlCmJh Y2sgY2FuIGJlIHJlYWxseSBiYWQsIGFuZCBJJ20gbm90IHNheWluZyB0aGF0IHRoaXMgd2lsbCBu b3QgY2hhbmdlLAphdCBsZWFzdCBmb3IgdGhlIGRlZmF1bHQuIFRoZSBtYWluIHJlYXNvbnMgZm9y IGRvaW5nIGl0IHRoaXMgd2F5IGlzCnRoYXQKCmEpIGl0IHByb3ZpZGVzICphbGwqIHRoZSBtZXNz YWdlIHR5cGVzIGFuZCB0cmFuc3BvcnRzIGV2ZXIgbmVlZGVkIGZvcgphIGNsaWVudCB3aXRoIHZl cnkgZmV3IGxpbmVzIG9mIGNvZGUsIG1ha2luZyBpdCBlYXN5IHRvIG1haW50YWluLCBhbmQKCmIp IGVhc2Utb2YtdXNlIGZvciB0aGUgZW5kIHVzZXIgLSAqYXNzdW1pbmcqIHRoYXQgdGhlIGxpYnJh cnkgaXMKYnVnLWZyZWUsIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgdG8gY2FyZSBhYm91dCBhbnkg bG9vcHMgb3IgYW55dGhpbmcKdW5sZXNzIGhlIGFic29sdXRlbHkgd2FudHMgdG8uCgoKSSBkb24n dCBrbm93IGFib3V0IHBzZXVkby1jb2RlLCBidXQgaW4gZ2VuZXJhbCwgeW91IGNhbiBkbyB0aGlu Z3MgbGlrZQp0aGlzICh3b3JrcyB0b2RheSk6CgogICMgUGxhaW4gbm8gZnJpbGxzIHN5bmMgY2Fs bAogIHB1dHMgb2JqZWN0LkdldFNvbWVEYXRhCgogICMgQXN5bmMgY2FsbAogIG9iamVjdC5Eb1Nv bWVUYWtlQUxvbmdUaW1lT3BlcmF0aW9uIHsgfHJlc3VsdHwKICAgIHB1dHMgcmVzdWx0cwogIH0K CiAgcHV0cyAiTWVhbndoaWxlLi4uIgoKV2hpY2ggd291bGQgcHJpbnQgdGhlIFNvbWVEYXRhLCAi TWVhbndoaWxlLi4uIiBhbmQgbGFzdGx5IHJlc3VsdHMuCkl0J3MgYWxsIHRha2VuIGNhcmUgb2Ys IGp1c3QgZ2l2ZSB0aGUgbWV0aG9kIGEgYmxvY2sgYW5kIG1vdmUgb24uIFRoaXMKYWxzbyBtZWFu cyB5b3UgY2FuIG1ha2UgYSBsb3Qgb2YgY2FsbHMgaW4gcGFyYWxsZWxsLgoKVGhlIHRocmVhZCBn b2VzIGF3YXkgd2hlbiB0aGUgYnVzIGdvZXMgYXdheSwgYW5kIEkgdGhpbmsgSSdsbCBhZGQKYmxv Y2tzIHRvIHRoZSBidXMgY29ubmVjdGlvbnMsIGxpa2UgbWFueSBvdGhlciBSdWJ5IGxpYnMsIHRo YXQgd2lsbApzY29wZSB0aGUgbG9vcCBhbmQgdGhlIG9iamVjdCB0byB0aGF0OgoKCiAgUkJ1cy5z ZXNzaW9uX2J1cyBkbyB8YnVzfAogICAgYnVzLmdldF9vYmplY3QuLi4KICAgIC4uLgogIGVuZAog ICMgSGVyZSB0aGUgdGhyZWFkIGlzIGdvbmUgYW5kIHRoZSBjb25uZWN0aW9uIGNsb3NlZCBldGMu CgpUaHJlYWRzIGNhbiBiZSBzY2FyeSB0aG91Z2gsIGJ1dCBpZiB5b3Uga2VlcCBpdCBlYXN5IGVu b3VnaCwgaXQgc2hvdWxkCmJlIHNhZmUsIGFuZCBSdWJ5IGhhcyB2ZXJ5IGdvb2QgdGhyZWFkcyB0 aGF0IGFyZSBlYXN5IHRvIG1hbmFnZS4KClRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gaXMgYSB2 ZXJ5IHNpbXBsZSBsb29wIHRoYXQgZmV0Y2hlcyBuZXcKbWVzc2FnZXMgYW5kIHRoZSB1c2VzIHRo ZSBPYnNlcnZlciBwYXR0ZXJuIHRvIG5vdGlmeSBhbnkgd2FpdGluZyBjYWxscwpvZiBhIHJlcGx5 LiBXaGVuIGEgY2FsbCBpcyBtYWRlLCBvciBhIHNpZ25hbCByZWdpc3RlcmVkLCBvciBhIG1ldGhv ZApleHBvcnRlZCwgdGhlIGxpYnJhcnkganVzdCBhdHRhY2hlcyBhbiBhcHByb3ByaWF0ZSBPYnNl cnZlciB0aGF0IGtub3dzCndoYXQgdG8gbGlzdGVuIGZvciwgd2hpY2ggdGhlbiBkb2VzIHRoZSBy aWdodCB0aGluZy4gRm9yIHRoZSBzaW1wbGVzdApjYXNlLCB0aGlzIGlzIHdhaXRpbmcgZm9yIGEg cmVwbHksIGZvciBtb3JlIGFzeW5jIGNhbGxzIGV0Yy4gaXQgbWVhbnMKcmVnaXN0ZXJpbmcgYSBj YWxsYmFjay4KClRoZSB3aG9sZSB0aGluZyBpcyBidWlsdCBvbiBhIGNoYWluIG9mIG9iamVjdHMg ZG9pbmcgdGhlaXIgdGhpbmcKdGhvdWdoLCBzbyBJIHRoaW5rIGl0IHdvdWxkIGJlIHZlcnkgZWFz eSB0byBwcm92aWRlIG11bHRpcGxlCmltcGxlbWVudGF0aW9ucyBhbmQgbGV0IHRoZSBlbmQgdXNl ciBjaG9vc2Ugd2hhdCBraW5kIG9mIGZ1bmN0aW9uYWxpdHkKaXMgYXBwcm9wcmlhdGUsIGJ5IHJl cXVpcmluZyBkaWZmZXJlbnQgYmFzZSBsaWJzIHBlcmhhcHM/IFNheQoncmJ1cy9lYXN5JyBmb3Ig dGhlIGF1dG8tdGhyZWFkcywgJ3JidXMnIGZvciBubyBmcmlsbHMsIHN5bmMgb25seSwKJ3JidXMv Z2xpYicgZm9yIHVzaW5nIEdMaWIgSU8gY2hhbm5lbHMgYW5kIHNvIG9uLiBUaGF0IHdvdWxkIHBy b2JhYmx5CnNhdGlzZnkgZXZlcnlvbmUgYW5kIGlmIHRoYXQncyBlYXN5LCBpdCdsbCBiZSBlYXN5 IHRvIGFkZCBtb3JlCmltcGxlbWVudGF0aW9ucyBhcyBuZWVkZWQuCgoKCi0tIApLcmlzdG9mZmVy IEx1bmTDqW4K4pyJIGtyaXN0b2ZmZXIubHVuZGVuQGdtYWlsLmNvbQrinIkga3Jpc3RvZmZlci5s dW5kZW5AZ2FtZW1ha2VyLm51Cmh0dHA6Ly93d3cuZ2FtZW1ha2VyLm51LwrimI4gMDcwNCA0OCA5 OCA3Nwo= |
From: <kri...@gm...> - 2007-03-18 23:48:19
|
V2hvb3BzIHN0dXBpZCBmaW5nZXJzIGp1c3Qgc2VudCBhIG1haWwgdGhhdCB3YXNuJ3QgZmluaXNo ZWQuIEJ1dCBhaCB3ZWxsLgoKSSB3YXMganVzdCBnb2luZyB0byBhc2sgYWJvdXQgdGhlIEdMaWIg SU8gY2hhbm5lbHMsIGhhdmVuJ3QgbG9va2VkCnRoZW0gdXAsIGJ1dCBhbSBJIGNvcnJlY3QgaW4g YXNzdW1pbmcgdGhhdCBmb3IgdGhpcyBpdCdzIGJhc2ljYWxseQpzZWxlY3RzIG9uIGEgc29ja2V0 LCB3aXRoIGEgY2FsbGJhY2s/IFRoYXQnZCBiZSByZWFsbHkgZWFzeSB0byBhZGQuCgpBbmQgYWxz bywgcGxlYXNlIGZlZWwgZnJlZSB0byBhc2sgbW9yZSBxdWVzdGlvbnMsIG9yIGFzayBtZSB0byBs ZWF2ZSwKaXQncyBhIGJpdCBPVCB1bmxlc3MgaXQncyBvZiBpbnRlcmVzdCB0byB0aGlzIGxpc3Qu IDstKQoKLS0gS3Jpc3RvZmZlcgoKCk9uIDMvMTkvMDcsIEtyaXN0b2ZmZXIgTHVuZMOpbiA8a3Jp c3RvZmZlci5sdW5kZW5AZ21haWwuY29tPiB3cm90ZToKPiBPbiAzLzE4LzA3LCBTam9lcmQgU2lt b25zIDxzam9lcmRAc3ByaW5nLmx1b24ubmV0PiB3cm90ZToKPiA+Cj4gPiBDb3VsZCB5b3UgYmUg YSBsaXR0bGUgbW9yZSBzcGVjaWZpYyBhYm91dCB0aGlzID8gTWF5YmUgc29tZSAocHNldWRvKS1j b2RlCj4gPiBleGFtcGxlcyA/IFRoZSBhcHByb2FjaCBzb3VuZHMgYSBsaXR0bGUgYml0IHByb2Js YW1hdGljIHRvIG1lLiBCdXQgdGhlbiBhZ2Fpbgo+ID4gSSByZWFsbHkgZGlzbGlrZSB0aHJlYWRz IGJlaW5nIHNwYXduZWQgYmVoaW5kIHRoZSB1c2VycyBiYWNrLCBidXQgbWF5YmUgeW91Cj4gPiBj YW4gcHJvdmUgbWUgd3JvbmcgaGVyZSA6KQo+ID4KPgo+IEkgY2FuIHRyeS4gOikgSW4gZ2VuZXJh bCwgSSBhZ3JlZSB3aXRoIHlvdS4gVGhyZWFkcyBzcGF3bmVkIGJlaGluZCB0aGUKPiBiYWNrIGNh biBiZSByZWFsbHkgYmFkLCBhbmQgSSdtIG5vdCBzYXlpbmcgdGhhdCB0aGlzIHdpbGwgbm90IGNo YW5nZSwKPiBhdCBsZWFzdCBmb3IgdGhlIGRlZmF1bHQuIFRoZSBtYWluIHJlYXNvbnMgZm9yIGRv aW5nIGl0IHRoaXMgd2F5IGlzCj4gdGhhdAo+Cj4gYSkgaXQgcHJvdmlkZXMgKmFsbCogdGhlIG1l c3NhZ2UgdHlwZXMgYW5kIHRyYW5zcG9ydHMgZXZlciBuZWVkZWQgZm9yCj4gYSBjbGllbnQgd2l0 aCB2ZXJ5IGZldyBsaW5lcyBvZiBjb2RlLCBtYWtpbmcgaXQgZWFzeSB0byBtYWludGFpbiwgYW5k Cj4KPiBiKSBlYXNlLW9mLXVzZSBmb3IgdGhlIGVuZCB1c2VyIC0gKmFzc3VtaW5nKiB0aGF0IHRo ZSBsaWJyYXJ5IGlzCj4gYnVnLWZyZWUsIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgdG8gY2FyZSBh Ym91dCBhbnkgbG9vcHMgb3IgYW55dGhpbmcKPiB1bmxlc3MgaGUgYWJzb2x1dGVseSB3YW50cyB0 by4KPgo+Cj4gSSBkb24ndCBrbm93IGFib3V0IHBzZXVkby1jb2RlLCBidXQgaW4gZ2VuZXJhbCwg eW91IGNhbiBkbyB0aGluZ3MgbGlrZQo+IHRoaXMgKHdvcmtzIHRvZGF5KToKPgo+ICAgIyBQbGFp biBubyBmcmlsbHMgc3luYyBjYWxsCj4gICBwdXRzIG9iamVjdC5HZXRTb21lRGF0YQo+Cj4gICAj IEFzeW5jIGNhbGwKPiAgIG9iamVjdC5Eb1NvbWVUYWtlQUxvbmdUaW1lT3BlcmF0aW9uIHsgfHJl c3VsdHwKPiAgICAgcHV0cyByZXN1bHRzCj4gICB9Cj4KPiAgIHB1dHMgIk1lYW53aGlsZS4uLiIK Pgo+IFdoaWNoIHdvdWxkIHByaW50IHRoZSBTb21lRGF0YSwgIk1lYW53aGlsZS4uLiIgYW5kIGxh c3RseSByZXN1bHRzLgo+IEl0J3MgYWxsIHRha2VuIGNhcmUgb2YsIGp1c3QgZ2l2ZSB0aGUgbWV0 aG9kIGEgYmxvY2sgYW5kIG1vdmUgb24uIFRoaXMKPiBhbHNvIG1lYW5zIHlvdSBjYW4gbWFrZSBh IGxvdCBvZiBjYWxscyBpbiBwYXJhbGxlbGwuCj4KPiBUaGUgdGhyZWFkIGdvZXMgYXdheSB3aGVu IHRoZSBidXMgZ29lcyBhd2F5LCBhbmQgSSB0aGluayBJJ2xsIGFkZAo+IGJsb2NrcyB0byB0aGUg YnVzIGNvbm5lY3Rpb25zLCBsaWtlIG1hbnkgb3RoZXIgUnVieSBsaWJzLCB0aGF0IHdpbGwKPiBz Y29wZSB0aGUgbG9vcCBhbmQgdGhlIG9iamVjdCB0byB0aGF0Ogo+Cj4KPiAgIFJCdXMuc2Vzc2lv bl9idXMgZG8gfGJ1c3wKPiAgICAgYnVzLmdldF9vYmplY3QuLi4KPiAgICAgLi4uCj4gICBlbmQK PiAgICMgSGVyZSB0aGUgdGhyZWFkIGlzIGdvbmUgYW5kIHRoZSBjb25uZWN0aW9uIGNsb3NlZCBl dGMuCj4KPiBUaHJlYWRzIGNhbiBiZSBzY2FyeSB0aG91Z2gsIGJ1dCBpZiB5b3Uga2VlcCBpdCBl YXN5IGVub3VnaCwgaXQgc2hvdWxkCj4gYmUgc2FmZSwgYW5kIFJ1YnkgaGFzIHZlcnkgZ29vZCB0 aHJlYWRzIHRoYXQgYXJlIGVhc3kgdG8gbWFuYWdlLgo+Cj4gVGhlIGFjdHVhbCBpbXBsZW1lbnRh dGlvbiBpcyBhIHZlcnkgc2ltcGxlIGxvb3AgdGhhdCBmZXRjaGVzIG5ldwo+IG1lc3NhZ2VzIGFu ZCB0aGUgdXNlcyB0aGUgT2JzZXJ2ZXIgcGF0dGVybiB0byBub3RpZnkgYW55IHdhaXRpbmcgY2Fs bHMKPiBvZiBhIHJlcGx5LiBXaGVuIGEgY2FsbCBpcyBtYWRlLCBvciBhIHNpZ25hbCByZWdpc3Rl cmVkLCBvciBhIG1ldGhvZAo+IGV4cG9ydGVkLCB0aGUgbGlicmFyeSBqdXN0IGF0dGFjaGVzIGFu IGFwcHJvcHJpYXRlIE9ic2VydmVyIHRoYXQga25vd3MKPiB3aGF0IHRvIGxpc3RlbiBmb3IsIHdo aWNoIHRoZW4gZG9lcyB0aGUgcmlnaHQgdGhpbmcuIEZvciB0aGUgc2ltcGxlc3QKPiBjYXNlLCB0 aGlzIGlzIHdhaXRpbmcgZm9yIGEgcmVwbHksIGZvciBtb3JlIGFzeW5jIGNhbGxzIGV0Yy4gaXQg bWVhbnMKPiByZWdpc3RlcmluZyBhIGNhbGxiYWNrLgo+Cj4gVGhlIHdob2xlIHRoaW5nIGlzIGJ1 aWx0IG9uIGEgY2hhaW4gb2Ygb2JqZWN0cyBkb2luZyB0aGVpciB0aGluZwo+IHRob3VnaCwgc28g SSB0aGluayBpdCB3b3VsZCBiZSB2ZXJ5IGVhc3kgdG8gcHJvdmlkZSBtdWx0aXBsZQo+IGltcGxl bWVudGF0aW9ucyBhbmQgbGV0IHRoZSBlbmQgdXNlciBjaG9vc2Ugd2hhdCBraW5kIG9mIGZ1bmN0 aW9uYWxpdHkKPiBpcyBhcHByb3ByaWF0ZSwgYnkgcmVxdWlyaW5nIGRpZmZlcmVudCBiYXNlIGxp YnMgcGVyaGFwcz8gU2F5Cj4gJ3JidXMvZWFzeScgZm9yIHRoZSBhdXRvLXRocmVhZHMsICdyYnVz JyBmb3Igbm8gZnJpbGxzLCBzeW5jIG9ubHksCj4gJ3JidXMvZ2xpYicgZm9yIHVzaW5nIEdMaWIg SU8gY2hhbm5lbHMgYW5kIHNvIG9uLiBUaGF0IHdvdWxkIHByb2JhYmx5Cj4gc2F0aXNmeSBldmVy eW9uZSBhbmQgaWYgdGhhdCdzIGVhc3ksIGl0J2xsIGJlIGVhc3kgdG8gYWRkIG1vcmUKPiBpbXBs ZW1lbnRhdGlvbnMgYXMgbmVlZGVkLgo+Cj4KPgo+IC0tCj4gS3Jpc3RvZmZlciBMdW5kw6luCj4g 4pyJIGtyaXN0b2ZmZXIubHVuZGVuQGdtYWlsLmNvbQo+IOKciSBrcmlzdG9mZmVyLmx1bmRlbkBn YW1lbWFrZXIubnUKPiBodHRwOi8vd3d3LmdhbWVtYWtlci5udS8KPiDimI4gMDcwNCA0OCA5OCA3 Nwo+CgoKLS0gCktyaXN0b2ZmZXIgTHVuZMOpbgrinIkga3Jpc3RvZmZlci5sdW5kZW5AZ21haWwu Y29tCuKciSBrcmlzdG9mZmVyLmx1bmRlbkBnYW1lbWFrZXIubnUKaHR0cDovL3d3dy5nYW1lbWFr ZXIubnUvCuKYjiAwNzA0IDQ4IDk4IDc3Cg== |
From: Jaime A L. <rub...@an...> - 2007-04-06 23:18:56
|
Kristoffer Lundén wrote: > On 3/19/07, Sjoerd Simons <sj...@sp...> wrote: >> Yeah.. If your bindings have some function which indicates that there is some >> data available, it's trivial.. >> > > Well the socket knows when there's read data available, just as with > selects. Looks like it could listen to that, meaning no problem at > all. > >> So sync return in the thread you start them in, but async run them in the dbus >> thread or does it spawn another one ? >> > > Every async call must by definition run in it's own thread, otherwise > it's not very async :). The actual message passing is in one single > thread so there's no race conditions though. > > -- Kristoffer Hi there. Any news? -- Posted via http://www.ruby-forum.com/. |
From: <kri...@gm...> - 2007-04-08 13:08:46
|
T24gNC83LzA3LCBKYWltZSBBIExvcGV6IDxydWJ5LWZvcnVtLWluY29taW5nQGFuZHJlYXMtcy5u ZXQ+IHdyb3RlOgo+Cj4gSGkgdGhlcmUuCj4KPiBBbnkgbmV3cz8KPgoKSGVsbG8sCgpub3RoaW5n IG5ldyBpbiB0aGUgbGFzdCB3ZWVrIG9yIHNvLCBzaW5jZSBJJ3ZlIGJlZW4gYnVzeSB3aXRoIG90 aGVyCnRoaW5ncywgYnV0IHRoZXJlIGlzIGEgcmVsZWFzZSB1cCBvbiBSdWJ5Zm9yZ2Ugd2l0aCBl dmVyeXRoaW5nCmNsaWVudC1zaWRlIGV4Y2VwdCBleHBvcnRpbmcgb2JqZWN0cywgd2hpY2ggaXMg dGhlIG5leHQgdGhpbmcuIEFsc28KdGhlcmUncyBhIGJ1bmNoIG9mIGV4YW1wbGVzLCBpbmNsdWRp bmcgYW4gaW1wbGVtZW50YXRpb24gb2YgZGJ1cy1zZW5kCihyYnVzLXNlbmQpIGFuZCBhIHR1dG9y aWFsIGFuZCBBUEkgZG9jcy4gU3RpbGwgbm90IDEwMCUgc3VyZSBvbiB0aGUKQVBJLCBpbnB1dCBp cyB3ZWxjb21lLgoKWW91IGNhbiBhbHNvIGdldCBpdCB3aXRoICJnZW0gaW5zdGFsbCByYnVzIi4K CkZlZWwgZnJlZSB0byBnaXZlIGl0IGEgc3BpbiBhbmQgbGV0IG1lIGtub3cgd2hhdCB5b3UgdGhp bmssIGFueQppbnB1dC9jb250cmlidXRpb25zIGFyZSB3ZWxjb21lLiBUaGVyZSdzIGJ1ZyB0cmFj a2VycywgZm9ydW1zLCBsaXN0cwphbmQgc3R1ZmYgbGlrZSB0aGF0IG9uIHRoZSBwcm9qZWN0IHBh Z2UsIG9yIHlvdSBjYW4ganVzdCBlbWFpbCBtZS4KCkhvbWVwYWdlOiBodHRwOi8vcmJ1cy5ydWJ5 Zm9yZ2Uub3JnLwpQcm9qZWN0IHBhZ2U6IGh0dHA6Ly9ydWJ5Zm9yZ2Uub3JnL3Byb2plY3RzL3Ji dXMvCkRvY3MsIHR1dG9yaWFsLCBIQUNLSU5HIGV0YzogaHR0cDovL3JidXMucnVieWZvcmdlLm9y Zy9kb2MvCgpUaGFua3MgZm9yIHRoZSBpbnRlcmVzdCwKCi0tIEtyaXN0b2ZmZXIKCj4gLS0KPiBQ b3N0ZWQgdmlhIGh0dHA6Ly93d3cucnVieS1mb3J1bS5jb20vLgo+Cj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+IFRha2UgU3VydmV5cy4gRWFybiBDYXNoLiBJbmZsdWVuY2UgdGhlIEZ1dHVyZSBvZiBJVAo+ IEpvaW4gU291cmNlRm9yZ2UubmV0J3MgVGVjaHNheSBwYW5lbCBhbmQgeW91J2xsIGdldCB0aGUg Y2hhbmNlIHRvIHNoYXJlIHlvdXIKPiBvcGluaW9ucyBvbiBJVCAmIGJ1c2luZXNzIHRvcGljcyB0 aHJvdWdoIGJyaWVmIHN1cnZleXMtYW5kIGVhcm4gY2FzaAo+IGh0dHA6Ly93d3cudGVjaHNheS5j b20vZGVmYXVsdC5waHA/cGFnZT1qb2luLnBocCZwPXNvdXJjZWZvcmdlJkNJRD1ERVZERVYKPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IHJ1YnktZ25v bWUyLWRldmVsLWVuIG1haWxpbmcgbGlzdAo+IHJ1YnktZ25vbWUyLWRldmVsLWVuQGxpc3RzLnNv dXJjZWZvcmdlLm5ldAo+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3Rp bmZvL3J1YnktZ25vbWUyLWRldmVsLWVuCj4KCgotLSAKS3Jpc3RvZmZlciBMdW5kw6luCuKciSBr cmlzdG9mZmVyLmx1bmRlbkBnbWFpbC5jb20K4pyJIGtyaXN0b2ZmZXIubHVuZGVuQGdhbWVtYWtl ci5udQpodHRwOi8vd3d3LmdhbWVtYWtlci5udS8K4piOIDA3MDQgNDggOTggNzcK |