Richard Hughes <hughsient <at> gmail.com> writes: > The only functionality that ZifCancellable adds is two methods: > > void zif_cancellable_set_hint (GCancellable *cancellable, gboolean can_cancel) > gboolean zif_cancellable_get_hint (GCancellable *cancellable); > > And added the "hint-changed" signal > I'm not Alex, who has final say on API issues, but I don't think this API should be part of GCancellable. And that's because I think you're treating GCancellable wrong.
GCancellable's only purpose is as a token that ensures function calls can be cancelled over thread or operating system boundaries. In an async program, the same cancellable is often used for multiple calls at the same time. Operation is one-way: The caller cancels the function call. What you want is a way to describe a transaction, where the caller and the function call interact in two directions and one of the interactions is cancellation while another interaction is telling the caller that cancellation is currently disabled. Other transaction information you probably have in PackageKit is progress information. From my POV this is quite a different thing conceptually than what GCancellable does. I should also note that GIO functions put transaction information into separate parameters passed to the function call - g_file_copy() for example has the progress_callback parameters. They do not attach this information to the cancellable. Benjamin _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list