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 {
+
+}


Reply via email to