Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add/update copyright notices.
[simgrid.git] / src / bindings / java / org / simgrid / msg / Msg.java
index 895fadf..93d4ccd 100644 (file)
@@ -1,13 +1,10 @@
-/*
- * JNI interface to C code for MSG.
- * 
- * Copyright 2006-2012 The SimGrid Team.           
- * All right reserved. 
- *
- * This program is free software; you can redistribute 
- * it and/or modify it under the terms of the license 
- * (GNU LGPL) which comes with this package.
- */
+/* JNI interface to C code for MSG. */
+
+/* Copyright (c) 2006-2014. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package org.simgrid.msg;
 
@@ -25,11 +22,11 @@ public final class Msg {
                        return;
                try {
                        /* prefer the version on disk, if existing */
-                       System.loadLibrary("SG_java");
+                       System.loadLibrary("simgrid-java");
                } catch (UnsatisfiedLinkError e) {
                        /* If not found, unpack the one bundled into the jar file and use it */
                        loadLib("simgrid");
-                       loadLib("SG_java");
+                       loadLib("simgrid-java");
                }
                isNativeInited = true;
        }
@@ -37,7 +34,20 @@ public final class Msg {
                nativeInit();
        }
        private static void loadLib (String name) {
-               String Path = "NATIVE/"+System.getProperty("os.name")+"/"+System.getProperty("os.arch")+"/";
+               String Os = System.getProperty("os.name");
+               String Arch = System.getProperty("os.arch");
+               // Some OS/Arch may be different between Java and Cmake,
+               // which generated the path
+               if (Os.toLowerCase().startsWith("win"))
+                       Os = "Windows";
+               else if (Os.contains("OS X"))
+                       Os = "Darwin";
+               if (Arch.equalsIgnoreCase("x86"))
+                       Arch = "i386";
+               else if (Arch.equalsIgnoreCase("x86_64"))
+                       Arch = "amd64";
+               String Path = "NATIVE/" + Os + "/" + Arch + "/";
+
                String filename=name;
                InputStream in = Msg.class.getClassLoader().getResourceAsStream(Path+filename);
                
@@ -112,7 +122,7 @@ public final class Msg {
        }
 
     /** Retrieve the simulation time
-     * @return
+     * @return The simulation time.
      */
        public final static native double getClock();
        /**
@@ -154,8 +164,6 @@ public final class Msg {
         * The natively implemented method to initialize a MSG simulation.
         *
         * @param args            The arguments of the command line of the simulation.
-        *
-        * @see                    Msg.init()
         */
        public final static native void init(String[]args);
 
@@ -166,8 +174,6 @@ public final class Msg {
         * {@link #clean()} if you really insist on cleaning the C side), so you can freely 
         * retrieve the informations that you want from the simulation. In particular, retrieving the status 
         * of a process or the current date is perfectly ok. 
-        *
-        * @see                    MSG_run
         */
        public final static native void run() ;
        
@@ -183,6 +189,8 @@ public final class Msg {
         */
        public final static native void createEnvironment(String platformFile);
 
+       public final static native As environmentGetRoutingRoot();
+
        /**
         * The method to deploy the simulation.
         *