[anjuta-devel] libanjuta API change



Hi,


I have done some changes in libanjuta API. Basically I have replaced the AnjutaPluginDescription object by the AnjutaPluginHandle object. This avoid a search in a hash table in most use cases. Here is a detailed list of the changes:

- GObject* anjuta_plugin_manager_get_plugin_by_id (
-               AnjutaPluginManager *plugin_manager,
-               const gchar *plugin_id);
+ GObject* anjuta_plugin_manager_get_plugin_by_handle (
+               AnjutaPluginManager *plugin_manager,
+               const gchar *plugin_handle);

- GObject* anjuta_plugin_manager_unload_plugin_by_id (
-               AnjutaPluginManager *plugin_manager,
-               const gchar *plugin_id);
+ GObject* anjuta_plugin_manager_unload_plugin_by_handle (
+               AnjutaPluginManager *plugin_manager,
+               const gchar *plugin_handle);

- AnjutaPluginDescription*
-       anjuta_plugin_manager_select (
-               AnjutaPluginManager *plugin_manager,
-               gchar *title, gchar *description,
-               GList *plugin_descriptions);
+ AnjutaPluginHandle*
+       anjuta_plugin_manager_select (
+               AnjutaPluginManager *plugin_manager,
+               gchar *title, gchar *description,
+               GList *plugin_descriptions);

- GObject*
-       anjuta_plugin_manager_select_and_activate (
-               AnjutaPluginManager *plugin_manager,
-               gchar *title, gchar *description,
-               GList *plugin_descriptions);
+ GObject*
+       anjuta_plugin_manager_select_and_activate (
+               AnjutaPluginManager *plugin_manager,
+               gchar *title, gchar *description,
+               GList *plugin_handles);

- AnjutaPluginDescription*
-       anjuta_plugin_manager_get_plugin_description (
-               AnjutaPluginManager *plugin_manager,
-               GObject *plugin);
+ AnjutaPluginHandle*
+       anjuta_plugin_manager_get_plugin_handle (
+               AnjutaPluginManager *plugin_manager,
+               GObject *plugin);

- void anjuta_plugin_manager_activate_plugins (
-               AnjutaPluginManager *plugin_manager,
-               GList *plugin_descs);
+ void anjuta_plugin_manager_activate_plugins (
+               AnjutaPluginManager *plugin_manager,
+               GList *plugin_handles);

- void anjuta_profile_add_plugin (AnjutaProfile *profile,
-               AnjutaPluginDescription *plugin);
+ void anjuta_profile_add_plugin (AnjutaProfile *profile,
+               AnjutaPluginHandle *plugin);

- void anjuta_profile_remove_plugin (AnjutaProfile *profile,
-               AnjutaPluginDescription *plugin);
+ void anjuta_profile_remove_plugin (AnjutaProfile *profile,
+               AnjutaPluginHandle *plugin);

- gboolean anjuta_profile_has_plugin (AnjutaProfile *profile,
-               AnjutaPluginDescription *plugin);
+ gboolean anjuta_profile_has_plugin (AnjutaProfile *profile,
+               AnjutaPluginHandle *plugin);


The following functions return a GList of AnjutaPluginHandle instead of AnjutaPluginDescription
  GList* anjuta_profile_get_plugins (AnjutaProfile *profile);
GList* anjuta_plugin_manager_get_active_plugins (AnjutaPluginManager *plugin_manager); Glist* anjuta_plugin_manager_query (AnjutaPluginManager *plugin_manager, const gchar *section_names, const gchar *attribute_names, const gchar *attribute_values, ...); GList* anjuta_plugin_manager_list_query (AnjutaPluginManager *plugin_manager, GList *section_names, GList *attribute_names, GList *attribute_values);

The following signal of the AnjutaPluginManager have changed too

- void(* plugin_activated) (AnjutaPluginManager *self,
-               AnjutaPluginDescription* plugin_desc,
-               GObject *plugin);
+ void(* plugin_activated) (AnjutaPluginManager *self,
+               AnjutaPluginHandle* plugin_handle,
+               GObject *plugin);

- void(* plugin_deactivated) (AnjutaPluginManager *self,
-               AnjutaPluginDescription* plugin_desc,
-               GObject *plugin);
+ void(* plugin_deactivated) (AnjutaPluginManager *self,
+               AnjutaPluginHandle* plugin_handle,
+               GObject *plugin);

I will update the version of libanjuta. Then, do you think I need to keep backward compatibility and keep the old functions marked as deprecated? It's a bit more work and I need to find some new names for some functions but it's possible. For Anjuta, we don't care then I know only one other project using libanjuta: gtkpod but I don't know how useful this will be useful for them.


Regards,

Sébastien


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