summaryrefslogtreecommitdiff
path: root/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
diff options
context:
space:
mode:
authorguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-23 21:29:27 +0000
committerguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-23 21:29:27 +0000
commitd6fa96b4cd67cf4fa18b5b9b6739f9bc2494a9f4 (patch)
tree00aa9a27acb6b4c8d9868795a5295e9231f1eb20 /src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
initial import
git-svn-id: http://manut.eu/svn/yalp/trunk@1 f059d3a0-6783-47b7-97ff-1fe0bbf25129
Diffstat (limited to 'src/YalpInputs/YalpPGSqlInput/PGSqlInput.java')
-rw-r--r--src/YalpInputs/YalpPGSqlInput/PGSqlInput.java123
1 files changed, 123 insertions, 0 deletions
diff --git a/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java b/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
new file mode 100644
index 0000000..531f53d
--- /dev/null
+++ b/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2006 Manuel Traut and Volker Dahnke
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors: Manuel Traut and Volker Dahnke
+ */
+
+package YalpInputs.YalpPGSqlInput;
+
+import YalpInterfaces.*;
+
+import org.omg.CosNaming.*;
+import org.omg.CosNaming.NamingContextPackage.*;
+import org.omg.CORBA.*;
+import org.omg.PortableServer.*;
+import org.omg.PortableServer.POA;
+
+/*
+ * Class PGSqlInput
+ *
+ * <em>Postgre SQL database connection</em>
+ *
+ * @author Volker Dahnke / Manuel Traut
+ *
+ * @version 2.0 2008-09-23<br>
+ */
+public class PGSqlInput {
+
+ private static ORB orb;
+ private static POA poa;
+ private static YalpInputPluginImpl psql;
+ private static InputPluginInterface inputPlugin;
+ private static ServerControlInterface srvCon;
+ private static PluginInfo pluginInfo;
+
+ public PGSqlInput(String[] argv) {
+
+ pluginInfo = new PluginInfo();
+ pluginInfo.name = "Postgre SQL Input Plugin";
+ pluginInfo.description = "provides information about files, which are stored on a harddisk and have been indicated to the YALP Postgre SQL database";
+ pluginInfo.type = PluginType.INPUT_PLUGIN;
+ pluginInfo.supportedTypes = new MediaType[3];
+ pluginInfo.supportedTypes[0] = MediaType.IMAGE;
+ pluginInfo.supportedTypes[1] = MediaType.VIDEO;
+ pluginInfo.supportedTypes[2] = MediaType.SOUND;
+ pluginInfo.access = new AccessInfo();
+ pluginInfo.access.name = "local files";
+ pluginInfo.access.description = "";
+ pluginInfo.access.executable = "";
+ pluginInfo.access.params = "";
+ pluginInfo.access.type = AccessType.FILES;
+
+ try {
+ this.orb = ORB.init(argv, null);
+ org.omg.CORBA.Object objRef =
+ orb.resolve_initial_references("NameService");
+ NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
+ poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
+ } catch(Exception e) {
+ /* t.b.d. error handling */
+ System.out.println("couldn't host plugin implementation");
+ }
+
+ try {
+ poa.the_POAManager().activate();
+ } catch(org.omg.PortableServer.POAManagerPackage.AdapterInactive e) {
+ /* t.b.d. error handling */
+ System.out.println("poa inactive");
+ }
+
+ YalpErrorHolder err = new YalpErrorHolder();
+
+ try {
+ org.omg.CORBA.Object objRef =
+ orb.resolve_initial_references("NameService");
+
+ NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
+ String name = "YALP_Server";
+ srvCon = ServerControlInterfaceHelper.narrow(ncRef.resolve_str(name));
+ } catch (Exception e) {
+ System.out.println("Couldn't connect to YALP Server");
+ System.exit(0);
+ }
+
+ psql = new YalpInputPluginImpl();
+ psql.setORB(orb);
+
+ try {
+ poa.activate_object(psql);
+ org.omg.CORBA.Object ref = poa.servant_to_reference(psql);
+ inputPlugin = InputPluginInterfaceHelper.narrow(ref);
+
+ org.omg.CORBA.Object objRef =
+ orb.resolve_initial_references("NameService");
+
+ NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
+ String name = "YALP_Postgre_SQL_Input";
+ NameComponent path[] = ncRef.to_name(name);
+ ncRef.rebind(path, inputPlugin);
+
+ PluginInfoHolder tmp = new PluginInfoHolder(pluginInfo);
+ srvCon.ping(err);
+ System.out.println(err.value.descr);
+ srvCon.registerInputPlugin(inputPlugin, tmp, err );
+ pluginInfo = tmp.value;
+
+ if(err.value.code != YalpErrorCode.OK)
+ System.out.println("registring inputplugin failed");
+ else
+ System.out.println("input plugin registered");
+
+ orb.run();
+
+ } catch (Exception e) {
+ System.out.println("binding plugin failed 1");
+ e.printStackTrace();
+ System.exit(0);
+ }
+ }
+}