Hi,<br><br><div><span class="gmail_quote">On 3/1/06, <b class="gmail_sendername">Joe Shaw</b> &lt;<a href="mailto:joeshaw@novell.com">joeshaw@novell.com</a>&gt; wrote:</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
These bindings are definitely a lot cleaner than the old ones, so here<br>are my comments:</blockquote><div><br>Thanks for reading&nbsp; them and your comments. <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Your bindings use the glib main loop, which I think is good<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and should be provided since a lot of the applications that are<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;going to use dbus-sharp will be gtk-sharp apps.&nbsp;&nbsp;But I think<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it's also important to provide your own main loop integration,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;probably by handling the dbus connection in a separate thread.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obviously this isn't a showstopper, but it's something that<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tends to get set aside.</blockquote><div><br>Agreed. <br></div><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* You seem to provide a lot of the low-level APIs.&nbsp;&nbsp;A binding<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shouldn't wrap most of that stuff; it should provide a nice,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;high level API.&nbsp;&nbsp;Providing wrappers for things like additional<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbus connections is nice, but that should be something that<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;probably should be added later.</blockquote><div><br>Sure, though is it not best to keep the low level wrappers in until an api which provides all required functionality is reached? The tarball wasn't intended to be a &quot;release&quot; and is not polished by any standards. Most of my effort so far has just been getting in all the functionality i require :)
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* You provide the concept of a &quot;Service&quot;.&nbsp;&nbsp;This may be because I
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;felt in the past that compatibility with the old bindings (which<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provided a Service) was important, but I don't really thing it<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is anymore[1].&nbsp;&nbsp;Dbus has long since dropped the service metaphor
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and simply calls them &quot;names&quot; now, which merely identify the<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application to other apps on the bus.&nbsp;&nbsp;It doesn't make sense to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;register&quot; objects with the &quot;service&quot; anymore.&nbsp;&nbsp;I think it makes
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a lot more sense to set up filter functions behind the scenes in<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the bindings and pull out all the possible objects by using<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;custom attributes and introspection.&nbsp;&nbsp;That way registration<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;becomes unnecessary.</blockquote><div><br>It would be trivial to modify the constructor to ImportObject to accept a Connection and a service name instead of a service. All the service object really does is to bind a name and a connection. 
I.e.<br><br>public static ImportObject Create (Service service, string target_path, Type [] ifaces)<br><br>would become<br><br>public static ImportObject Create (Connection connection, string service_name, string target_path, Type [] ifaces)
<br><br>I'm not sure I really understand what you are saying about introspection data. Do you mean generating new types based on introspection data?<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* There's no memory management right now.&nbsp;&nbsp;Doing memory<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;management of C objects from C# is a real pain.&nbsp;&nbsp;Partly this is<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;due to a lack of tools, but partly it's because it's just plain<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hard, even in C.&nbsp;&nbsp;Trust me on this one: you really, really want
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to address this issue up front by making all of your objects<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;which wrap C structures IDisposable and make sure you clean up<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;after them.&nbsp;&nbsp;Don't wait until you have the binding mostly<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finished and then go back and add them.
</blockquote><div><br>Yep,&nbsp; this is high on the list of priorities. <br></div></div><br>Adam<br><br>