Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2023.
[simgrid.git] / src / bindings / java / org / simgrid / msg / VM.java
index b8de0b3..05d7acf 100644 (file)
@@ -1,6 +1,6 @@
 /* Java bindings of the s4u::VirtualMachine */
 
-/* Copyright (c) 2006-2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2006-2023. 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. */
@@ -14,10 +14,10 @@ public class VM extends Host {
        private int coreAmount = 1;
 
        /**
-        * Create a `basic' VM : 1 core and 1GB of RAM.
+        * Create a `basic` VM : 1 core and 1GB of RAM.
         * @param host Host node
         * @param name name of the machine
-        */     
+        */
        public VM(Host host, String name) {
                this(host,name, /*coreAmount*/1, 1024, 0, 0);
        }
@@ -27,7 +27,7 @@ public class VM extends Host {
         * @param host Host node
         * @param name name of the machine
         * @param coreAmount the amount of cores of the VM
-        */     
+        */
        public VM(Host host, String name, int coreAmount) {
                this(host,name, coreAmount, 1024, 0, 0);
        }
@@ -37,9 +37,9 @@ public class VM extends Host {
         * @param host Host node
         * @param name name of the machine
         * @param ramSize size of the RAM that should be allocated (in MBytes)
-        * @param migNetSpeed (network bandwith allocated for migrations in MB/s, if you don't know put zero ;))
+        * @param migNetSpeed (network bandwidth allocated for migrations in MB/s, if you don't know put zero ;))
         * @param dpIntensity (dirty page percentage according to migNetSpeed, [0-100], if you don't know put zero ;))
-        */     
+        */
        public VM(Host host, String name, int ramSize, int migNetSpeed, int dpIntensity){
                this(host, name, /*coreAmount*/1, ramSize, migNetSpeed, dpIntensity);
        }
@@ -50,7 +50,7 @@ public class VM extends Host {
         * @param name name of the machine
         * @param coreAmount the amount of cores of the VM
         * @param ramSize size of the RAM that should be allocated (in MBytes)
-        * @param migNetSpeed (network bandwith allocated for migrations in MB/s, if you don't know put zero ;))
+        * @param migNetSpeed (network bandwidth allocated for migrations in MB/s, if you don't know put zero ;))
         * @param dpIntensity (dirty page percentage according to migNetSpeed, [0-100], if you don't know put zero ;))
         */
        public VM(Host host, String name, int coreAmount, int ramSize, int migNetSpeed, int dpIntensity){
@@ -67,33 +67,37 @@ public class VM extends Host {
        /** Retrieve a VM from its name */
        public static native VM getVMByName(String name);
 
-       /* Make sure that the GC also destroys the C object */
+       /**
+        * Make sure that the GC also destroys the C object
+        * @deprecated (from Java9 onwards)
+        */
+       @Deprecated @Override
        protected void finalize() throws Throwable {
                nativeFinalize();
        }
        private native void nativeFinalize();
 
-       /** Returns whether the given VM is currently suspended */      
-       public native int isCreated();
+       /** Returns whether the given VM is currently suspended */
+       public native boolean isCreated();
 
        /** Returns whether the given VM is currently running */
-       public native int isRunning();
+       public native boolean isRunning();
 
        /** Returns whether the given VM is currently running */
-       public native int isMigrating();
+       public native boolean isMigrating();
 
-       /** Returns whether the given VM is currently suspended */      
-       public native int isSuspended();
+       /** Returns whether the given VM is currently suspended */
+       public native boolean isSuspended();
 
        /** Returns the amount of virtual CPUs provided */
        public int getCoreAmount() {
                return coreAmount;
        }
-       
+
        /**
         * Natively implemented method create the VM.
         * @param ramSize size of the RAM that should be allocated (in MB)
-        * @param migNetSpeed (network bandwith allocated for migrations in MB/s, if you don't know put zero ;))
+        * @param migNetSpeed (network bandwidth allocated for migrations in MB/s, if you don't know put zero ;))
         * @param dpIntensity (dirty page intensity, a percentage of migNetSpeed [0-100],  if you don't know put zero ;))
         */
        private native void create(Host host, String name, int coreAmount, int ramSize, int migNetSpeed, int dpIntensity);
@@ -119,15 +123,15 @@ public class VM extends Host {
 
        /** Change the host on which all processes are running
         * (pre-copy is implemented)
-        */     
+        */
        public void migrate(Host destination) throws HostFailureException{
                try {
                        this.nativeMigration(destination);
                } catch (Exception e){
                  Msg.info("Migration of VM "+this.getName()+" to "+destination.getName()+" is impossible ("+e.getMessage()+")");
-                 throw new HostFailureException();
+                 throw new HostFailureException(e.getMessage());
                }
-               // If the migration correcly returned, then we should change the currentHost value.
+               // If the migration correctly returned, then we should change the currentHost value.
                this.currentHost = destination;
        }
        private native void nativeMigration(Host destination) throws MsgException;
@@ -136,7 +140,7 @@ public class VM extends Host {
         *
         * No suspension cost occurs. If you want to simulate this too, you want to use a @ref File.write() before or
         * after, depending on the exact semantic of VM suspend to you.
-        */     
+        */
        public native void suspend();
 
        /** Immediately resumes the execution of all processes within the given VM