--- a/graphs/plugin.class Sun May 03 09:10:32 2009 -0400
+++ b/graphs/plugin.class Sun May 03 22:48:08 2009 -0500
@@ -4,6 +4,7 @@
<property name="state" type="PurplePluginState" scope="private"/>
<property name="filename" type="gchar *" scope="private"/>
<property name="info" type="PurplePluginInfo" scope="private"/>
+ <property name="priority" type="gint" scope="private"/> <method name="purple_plugin_get_state" type="PurplePluginState" scope="public">
@@ -15,6 +16,9 @@
<method name="purple_plugin_get_info" type="PurplePluginInfo *" scope="public">
<argument name="plugin" type="const PurplePlugin *"/>
+ <method name="purple_plugin_get_priority" type="gint" scope="public"> + <argument name="plugin" type="const PurplePlugin *"/> --- a/graphs/plugins.hierarchy Sun May 03 09:10:32 2009 -0400
+++ b/graphs/plugins.hierarchy Sun May 03 22:48:08 2009 -0500
@@ -2,22 +2,37 @@
<object name="GObject" type="abstract"/>
+ <object name="GInterface" type="interface"/> + <object name="GTypePlugin" type="interface"/> <object name="PurpleObject" type="abstract"/>
<object name="PurplePlugin" type="abstract"/>
<object name="PurplePluginInfo" type="boxed"/>
+ <object name="PurplePluginActionIface" type="interface"/> <object name="PurpleNativePlugin" type="concrete"/>
<object name="PurplePerlPlugin" type="concrete"/>
<object name="PurpleTCLPlugin" type="concrete"/>
<object name="PurpleMonoPlugin" type="concrete"/>
+ <relation start="GTypePlugin" end="GInterface" type="is-a"/> <relation start="PurpleObject" end="GObject" type="is-a"/>
<relation start="PurplePlugin" end="PurpleObject" type="is-a"/>
<relation start="PurpleNativePlugin" end="PurplePlugin" type="is-a"/>
+ <relation start="PurpleNativePlugin" end="GTypePlugin" type="implements"/> <relation start="PurplePerlPlugin" end="PurplePlugin" type="is-a"/>
<relation start="PurpleTCLPlugin" end="PurplePlugin" type="is-a"/>
<relation start="PurpleMonoPlugin" end="PurplePlugin" type="is-a"/>
<relation start="PurplePlugin" end="PurplePluginInfo" type="has-a"/>
+ <relation start="PurplePluginActionIface" end="GInterface" type="is-a"/> --- a/xml/plugins.xml Sun May 03 09:10:32 2009 -0400
+++ b/xml/plugins.xml Sun May 03 22:48:08 2009 -0500
@@ -11,7 +11,13 @@
+ The obvious changes in <xref linkend="plugin-hierarchy"/> is that + PurplePlugin is now an abstract class and there is a new + PurpleNativePlugin class. These changes have been made to avoid having + to shoehorn the Perl, TCL, and Mono plugins into the C centric + PurplePlugin that we currently have. The PurplePluginLoader's will do + the actual work of translating between the purple C/GObject API and the + language to which the loader is implementing. <figure id="plugin-hierarchy">
@@ -20,6 +26,16 @@
<graphic fileref="graphs/plugins.png"/>
+ Theres a noticable size difference in the PurplePlugin shown in + <xref linkend="plugin-class"/>. All of the meta information has been + moved to the new boxed type PurplePluginInfo. The versioning info has + been moved to be loader dependent as well. PurplePluginType is thrown + out since we can the use of interfaces for PurpleProtocolPlugin, + PurplePluginLoader, and so on, are all interfaces and can be checked + by the usual GObject methods. <figure id="plugin-class">
<title>Plugin Class</title>