summaryrefslogtreecommitdiff
path: root/src/YalpServer/InputPluginHandler.java
diff options
context:
space:
mode:
authorguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-24 20:38:37 +0000
committerguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-24 20:38:37 +0000
commitab841adc06acd2a6ff161ea866579674ce5ff99e (patch)
treeb65d8a9028848e4d777bc6fbe777b7adda4b4fbc /src/YalpServer/InputPluginHandler.java
parentf6825ebc115029fcf575033748e3372efb94c87d (diff)
added YalpServer InputPluginHandling (incomplete)
git-svn-id: http://manut.eu/svn/yalp/trunk@5 f059d3a0-6783-47b7-97ff-1fe0bbf25129
Diffstat (limited to 'src/YalpServer/InputPluginHandler.java')
-rw-r--r--src/YalpServer/InputPluginHandler.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/YalpServer/InputPluginHandler.java b/src/YalpServer/InputPluginHandler.java
new file mode 100644
index 0000000..746204a
--- /dev/null
+++ b/src/YalpServer/InputPluginHandler.java
@@ -0,0 +1,48 @@
+package YalpServer;
+
+import java.util.ArrayList;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+
+import YalpInterfaces.*;
+
+public class InputPluginHandler {
+
+ private ArrayList<InputPlugin> plugins;
+ private static int inputIds = 0;
+
+ private String log4jFile = "log4j_server.conf";
+
+ private static Logger logger =
+ Logger.getLogger("Yalp.Server.InputPluginHandler");
+
+ public InputPluginHandler() {
+ PropertyConfigurator.configureAndWatch(log4jFile);
+ logger.debug("InputPluginHandler()");
+ plugins = new ArrayList<InputPlugin>();
+ }
+
+ public PluginInfo addPlugin(InputPlugin plugin)
+ {
+ logger.debug("addPlugin("+plugin.info.name+")");
+ plugin.info.id = inputIds++;
+ plugins.add(plugin);
+ return plugin.info;
+ }
+
+ /*
+ * @todo maybe each request in own thread
+ * timeouts, maximum number of results ...
+ */
+
+ public void search( String str, MediaType[] types, MediasHolder result,
+ YalpErrorHolder err ) {
+ logger.debug("search("+str+")");
+ for( InputPlugin plugin : plugins ) {
+ logger.debug("search for: \""+str+"\" @ plugin: "+plugin.info.name);
+ plugin.itf.search(str, types, result, err);
+ }
+
+ }
+}