Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add checking on getSender/getSource to prevent a SEGFAULT
[simgrid.git] / org / simgrid / msg / MsgNative.java
index e7f7759..f6c28a9 100644 (file)
@@ -9,7 +9,9 @@
  *(GNU LGPL) which comes with this package. 
  */
 
-package simgrid.msg;
+package org.simgrid.msg;
+
+import org.simgrid.msg.Process;
 
 /* FIXME: split into internal classes of Msg, Task, Host etc. */
 
@@ -30,7 +32,7 @@ final class MsgNative {
         * @see  Process constructors.
         */
        final static native
-       void processCreate(Process process, Host host);
+       void processCreate(Process process, String hostName) throws HostNotFoundException;
 
        /**
         * The natively implemented method to kill all the process of the simulation.
@@ -148,7 +150,7 @@ final class MsgNative {
         * @see                Process.migrate()
         * @see                Host.getByName()
         */
-       final static native void processChangeHost(Process process, Host host) ;
+       final static native void processMigrate(Process process, Host host) ;
 
        /**
         * The natively implemented native to request the current process to sleep 
@@ -174,73 +176,6 @@ final class MsgNative {
         * The natively implemented methods connected to the MSG host     *
         ******************************************************************/
 
-       /**
-        * The natively implemented method to get an host from his name.
-        *
-        * @param name            The name of the host to get.
-        *
-        * @return                The host having the specified name.
-        *
-        * @exception            HostNotFoundException if there is no such host
-        *                       
-        *
-        * @see                Host.getByName()
-        */
-       final static native Host hostGetByName(String name) throws HostNotFoundException;
-
-       /**
-        * The natively implemented method to get the name of an MSG host.
-        *
-        * @param host            The host (valid) to get the name.
-        *
-        * @return                The name of the specified host.
-        *
-        * @see                Host.getName()
-        */
-       final static native String hostGetName(Host host);
-
-       /**
-        * The natively implemented method to get the number of hosts of the simulation.
-        *
-        * @return                The number of hosts of the simulation.
-        *
-        * @see                Host.getNumber()
-        */
-       final static native int hostGetCount();
-
-       /**
-        * The natively implemented method to get the host of the current runing process.
-        *
-        * @return                The host of the current running process.
-        *
-        * @see                Host.currentHost()
-        */
-       final static native Host hostSelf();
-
-       /**
-        * The natively implemented method to get the speed of a MSG host.
-        *
-        * @param host            The host to get the host.
-        *
-        * @return                The speed of the specified host.
-        *
-        * @see                Host.getSpeed()
-        */
-
-       final static native double hostGetSpeed(Host host);
-
-       /**
-        * The natively implemented native method to test if an host is avail.
-        *
-        * @param host            The host to test.
-        *
-        * @return                If the host is avail the method returns true. 
-        *                        Otherwise the method returns false.
-        *
-        * @see                Host.isAvail()
-        */
-       final static native boolean hostIsAvail(Host host);
-
        /**
         * The natively implemented native method to get all the hosts of the simulation.
         *
@@ -249,180 +184,4 @@ final class MsgNative {
 
        final static native Host[] allHosts();
 
-       /**
-        * The natively implemented native method to get the number of running tasks on a host.
-        *
-        * @param                The host concerned by the operation.
-        *
-        * @return                The number of running tasks.
-        */
-       final static native int hostGetLoad(Host host);
-
-       /******************************************************************
-        * The natively implemented methods connected to the MSG task     *
-        ******************************************************************/
-
-       /**
-        * The natively implemented method to create a MSG task.
-        *
-        * @param name            The name of th task.
-        * @param computeDuration    A value of the processing amount (in flop) needed 
-        *                        to process the task. If 0, then it cannot be executed
-        *                        with the execute() method. This value has to be >= 0.
-        * @param messageSize        A value of amount of data (in bytes) needed to transfert 
-        *                        this task. If 0, then it cannot be transfered this task. 
-        *                        If 0, then it cannot be transfered with the get() and put() 
-        *                        methods. This value has to be >= 0.
-        * @param task            The java task object to bind with the native task to create.
-        *
-        * @exception             IllegalArgumentException if compute duration <0 or message size <0
-        *
-        * @see                    Task.create()
-        */
-       final static native void taskCreate(Task task, String name,
-                       double computeDuration,
-                       double messageSize)
-       throws IllegalArgumentException;
-
-       /**
-        * The natively implemented method to get the sender of a task.
-        *
-        * @param    task            The task (valid) to get the sender.
-        *
-        * @return                The sender of the task.
-        *
-        * @see                    Task.getSender()
-        */
-       final static native Process taskGetSender(Task task);
-
-       /**
-        * The natively implementd method to get the source of a task.
-        *
-        * @param task            The task to get the source.
-        *
-        * @return                The source of the task.
-        *
-        *
-        * @see                    Task.getSource()
-        */
-       final static native Host taskGetSource(Task task);
-
-       /**
-        * The natively implemented method to get the name of the task.
-        *
-        * @param task            The task to get the name.
-        *
-        * @return                 The name of the specified task.
-        *
-        * @see                    Task.getName()
-        */
-       final static native String taskGetName(Task task);
-
-       /**
-        * The natively implemented method to cancel a task.
-        *
-        * @param task            The task to cancel.
-        *
-        *
-        * @see                    Task.cancel().
-        */
-       final static native void taskCancel(Task task);
-
-       /**
-        * The natively implemented method to create a MSG parallel task.
-        *
-        * @param name                The name of the parallel task.
-        * @param hosts                The list of hosts implied by the parallel task.
-        * @param computeDurations    The total number of operations that have to be performed
-        *                            on the hosts.
-        * @param messageSizes        An array of doubles
-        *
-        * @see                        ParallelTask.create()
-        */
-       final static native void parallelTaskCreate(Task pTask, String name,
-                       Host[]hosts,
-                       double[]computeDurations,
-                       double[]messageSizes)
-       throws NullPointerException, IllegalArgumentException;
-
-       /**
-        * The natively implemented method to get the computing amount of the task.
-        *
-        * @param task            The task to get the computing amount.
-        *
-        * @return                The computing amount of the specified task.
-        *
-        * @see                    Task.getComputeDuration()
-        */
-       final static native double taskGetComputeDuration(Task task);
-
-       /**
-        * The natively implemented method to get the remaining computation
-        *
-        * @param task            The task to get the remaining computation.
-        *
-        * @return                The remaining computation of the specified task.
-        *
-        * @see                    Task.getRemainingDuration()
-        */
-       final static native double taskGetRemainingDuration(Task task);
-
-       /**
-        * The natively implemented method to set the priority of a task.
-        *
-        * @param task            The task to set the priority
-        *
-        * @param priority        The new priority of the specified task.
-        *
-        * @see                    Task.setPriority()
-        */
-       final static native void taskSetPriority(Task task, double priority);
-
-       /**
-        * The natively implemented method to destroy a MSG task.
-        *
-        * @param                    The task to destroy.
-        *
-        *
-        * @see                    Task.destroy()
-        */
-       final static native void taskDestroy(Task task) ;
-
-       /**
-        * The natively implemented method to execute a MSG task.
-        *
-        * @param task            The task to execute.
-        *
-        * @exception             HostFailureException,TaskCancelledException on error in the C world
-        *
-        * @see                    Task.execute()
-        */
-       final static native void taskExecute(Task task) throws HostFailureException,TaskCancelledException;
-
-       /* ****************************************************************
-        * Communication methods thru mailboxes                           *
-        **************************************************************** */
-
-       final static native void taskSend(String alias, Task task, double timeout) throws TransferFailureException,HostFailureException,TimeoutException;
-       final static native Task taskReceive(String alias, double timeout, Host host) throws TransferFailureException,HostFailureException,TimeoutException;
-       final static native int taskListenFrom(String alias);
-       final static native boolean taskListen(String alias);
-       final static native int taskListenFromHost(String alias, Host host);
-
-       /* ***************************************************************
-        * Task sending methods                                          *
-        *************************************************************** */
-
-       /**
-        * The natively implemented method to send a task in a mailbox associated with an alias,  with a bounded transmition
-        * rate.
-        * 
-        * @param alias            The alias of the mailbox.
-        * @param task            The task to put.
-        * @param max_rate        The bounded transmition rate.
-        *
-        * @exception             NativeException on error in the C world
-        */ 
-       final static native void taskSendBounded(String alias, Task task, double maxrate) throws TransferFailureException,HostFailureException,TimeoutException;
-
 }