Author: toad
Date: 2006-12-13 21:51:13 +0000 (Wed, 13 Dec 2006)
New Revision: 11384
Added:
trunk/freenet/src/freenet/plugin/api/
trunk/freenet/src/freenet/plugin/api/FreenetPlugin.java
trunk/freenet/src/freenet/plugin/api/FreenetPluginManager.java
Log:
Beginnings of new plugin API.
Added: trunk/freenet/src/freenet/plugin/api/FreenetPlugin.java
===================================================================
--- trunk/freenet/src/freenet/plugin/api/FreenetPlugin.java
(rev 0)
+++ trunk/freenet/src/freenet/plugin/api/FreenetPlugin.java 2006-12-13
21:51:13 UTC (rev 11384)
@@ -0,0 +1,35 @@
+package freenet.plugin.api;
+
+/**
+ * A Freenet plugin. Base interface, must be implemented by all plugins.
+ * Other interfaces provide for e.g. HTTP access. FreenetPluginManager provides
+ * access to variables, factories etc.
+ */
+public interface FreenetPlugin {
+
+ /** The plugin's name */
+ public String name();
+
+ /** The plugin's author (largely to disambiguate name!) */
+ public String author();
+
+ /** The plugin's version number. MUST BE AT LEAST INCREMENTED ON EVERY
RELEASE. */
+ public long version();
+
+ /** The plugin's internal version number e.g. SVN revision number.
Plugins hosted
+ * by FPI will have this as SVN revision number and auto-updated. */
+ public long internalVersion();
+
+ /**
+ * Start the plugin. This will run on a separate thread unless
FreenetPluginThreadless is
+ * implemented.
+ * @param manager The parent FreenetPluginManager. Any variables or
functions the plugin
+ * needs to access will be exposed by the FreenetPluginManager.
+ */
+ public void start(FreenetPluginManager manager);
+
+ /**
+ * Stop the plugin. Perform an orderly shutdown and return in a
reasonable period of time.
+ */
+ public void stop();
+}
Added: trunk/freenet/src/freenet/plugin/api/FreenetPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/plugin/api/FreenetPluginManager.java
(rev 0)
+++ trunk/freenet/src/freenet/plugin/api/FreenetPluginManager.java
2006-12-13 21:51:13 UTC (rev 11384)
@@ -0,0 +1,8 @@
+package freenet.plugin.api;
+
+/**
+ * The plugin's interface to the Freenet node.
+ */
+public interface FreenetPluginManager {
+
+}