Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add a cache on Host.name. Add a cache on some jfieldID/jmethodID on Host/Process
[simgrid.git] / org / simgrid / msg / Host.java
index 186a0ab..905596d 100644 (file)
@@ -50,7 +50,10 @@ public class Host {
         * @see                         Host.getByName().
         */ 
        public long bind;
-
+       /**
+        * Host name
+        */
+       private String name;
 
        /**
         * User data.
@@ -74,31 +77,22 @@ public class Host {
      * @exception              HostNotFoundException if the name of the host is not valid.
         *                                      NativeException if the native version of this method failed.
         */ 
-       public static Host getByName(String name) 
-       throws HostNotFoundException {
-               if (name==null)
-                       throw new NullPointerException("No host can have a null name");
-               return MsgNative.hostGetByName(name);
-       }
-
+       public native static Host getByName(String name) 
+       throws HostNotFoundException, NullPointerException;
        /**
         * This static method returns the count of the installed hosts.
         *
         * @return                      The count of the installed hosts.
-        *
+        * FIXME: Not implemented.
         */ 
-       public static int getCount() {
-               return MsgNative.hostGetCount();
-       }
+       public native static int getCount();
 
        /**
         * This static method return an instance to the host of the current process.
         *
         * @return                      The host on which the current process is executed.
         */ 
-       public static Host currentHost() {
-               return MsgNative.hostSelf();
-       }
+       public native static Host currentHost();
 
        /**
         * This static method returns all of the hosts of the installed platform.
@@ -106,31 +100,25 @@ public class Host {
         * @return                      An array containing all the hosts installed.
         *
         */ 
-       public static Host[] all()  {
-               return MsgNative.allHosts();
-       }
+       public native static Host[] all();
 
        /**
         * This method returns the name of a host.
-        *
         * @return                      The name of the host.
         *
         */ 
-       public String getName()  {
-               return MsgNative.hostGetName(this);
+       public String getName() {
+               return name;
        }
-
        /**
         * Sets the data of the host.
-        *
-     *
      * @param data
      */
        public void setData(Object data) {
                this.data = data;
        } 
        /**
-        * Gets the data of the host.
+        * Gets the d   ata of the host.
      *
      * @return
      */
@@ -153,9 +141,7 @@ public class Host {
         *
         * @return                      The number of tasks currently running on a host.
         */ 
-       public int getLoad() {
-               return MsgNative.hostGetLoad(this);
-       }
+       public native int getLoad();
 
        /**
         * This method returns the speed of the processor of a host,
@@ -164,14 +150,18 @@ public class Host {
         * @return                      The speed of the processor of the host in flops.
         *
         */ 
-       public double getSpeed() {
-               return MsgNative.hostGetSpeed(this);
-       }
+       public native double getSpeed();
 
     /** This method tests if a host is avail.
      * @return
      */
-       public boolean isAvail() {
-               return MsgNative.hostIsAvail(this);
-       }
+       public native boolean isAvail();
+       
+       /**
+        * Class initializer, to initialize various JNI stuff
+        */
+       public static native void nativeInit();
+       static {
+               nativeInit();
+       }       
 }