Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Stupid me. Arguments should be marked with @a in inline documentation, not @e
[simgrid.git] / src / java / simgrid / msg / Host.java
index 09322d9..101ef96 100644 (file)
@@ -8,9 +8,8 @@
  * it and/or modify it under the terms of the license 
  *(GNU LGPL) which comes with this package. 
  *
- */
-package simgrid.msg;
-
+ */  
+  package simgrid.msg;
 import java.lang.String;
 
 /**
@@ -29,46 +28,44 @@ import java.lang.String;
  * For example to get the instance of the host. If your platform
  * file description contains an host named "Jacquelin" :
  *
- *     Host jacquelin;
- *
- *     try { 
- *             jacquelin = Host.getByName("Jacquelin");
- *     } catch(HostNotFoundException e) {
- *             System.err.println(e.toString());
- *     }
- *     ...
+ * \verbatim
+Host jacquelin;
+
+try { 
+       jacquelin = Host.getByName("Jacquelin");
+} catch(HostNotFoundException e) {
+       System.err.println(e.toString());
+}
+...
+\endverbatim
  *
  * @author  Abdelmalek Cherier
  * @author  Martin Quinson
- * @version 1.00, 07/05/01
- * @see Grid
- * @see Simulation
- * @see Process
  * @since SimGrid 3.3
- * @since JDK1.5011
- */
-public class Host {
-       /**
+ *
+  public class Host {
+  
+        /**
         * This attribute represents a bind between a java host object and
         * a native host. Even if this attribute is public you must never
         * access to it. It is set automaticatly during the call of the 
         * static method Host.getByName().
         *
         * @see                         Host.getByName().
-        */
-       public long bind;
-       
-       /**
+        */ 
+  public long bind;
+
+  
+        /**
         * User data.
-        */
-       private Object data;
-       
-       protected Host() {
-               this.bind = 0;
-               this.data = null;
-       };
-       
-       /**
+        */ 
+    private Object data;
+  protected Host() {
+    this.bind = 0;
+    this.data = null;
+  };
+  
+        /**
         * This static method gets an host instance associated with a native
         * host of your platform. This is the best way to get a java host object.
         *
@@ -76,79 +73,77 @@ public class Host {
         *
         * @exception           HostNotFoundException if the name of the host is not valid.
         *                                      MsgException if the native version of this method failed.
-        */                     
-       public static Host getByName(String name)
-           throws HostNotFoundException, NativeException, JniException {
-
-           return Msg.hostGetByName(name);
-       }
-       
-       /**
+        */ 
+  public static Host getByName(String name) 
+    throws HostNotFoundException, NativeException, JniException {
+    return MsgNative.hostGetByName(name);
+  }
+  
+        /**
         * This static method returns the number of the installed hosts.
         *
         * @return                      The number of the installed hosts.
         *
-        */
-       public static int getNumber()  throws NativeException, JniException {
-               return Msg.hostGetNumber();
-       }
-       
-       /**
+        */ 
+  public static int getNumber() throws NativeException, JniException {
+    return MsgNative.hostGetNumber();
+  }
+  
+        /**
         * This static method return an instance to the host of the current process.
         *
         * @return                      The host on which the current process is executed.
         *
         * @exception           MsgException if the native version of this method failed.
-        */
-       public static Host currentHost()   throws JniException{
-               return Msg.hostSelf();
-       }
-       
-       /**
+        */ 
+    public static Host currentHost() throws JniException {
+    return MsgNative.hostSelf();
+  }
+  
+        /**
         * This static method returns all of the hosts of the installed platform.
         *
         * @return                      An array containing all the hosts installed.
         *
         * @exception           MsgException if the native version of this method failed.
-        */
-       public static Host[] all()  throws JniException, NativeException{
-               return Msg.allHosts();
-       }
-       
-       /**
+        */ 
+    public static Host[] all() throws JniException, NativeException {
+    return MsgNative.allHosts();
+  }
+  
+        /**
         * This method returns the name of a host.
         *
         * @return                      The name of the host.
         *
         * @exception           InvalidHostException if the host is not valid.
-        */
-       public String getName()  throws NativeException, JniException{
-               return Msg.hostGetName(this);
-       }
-       
-       /**
+        */ 
+    public String getName() throws NativeException, JniException {
+    return MsgNative.hostGetName(this);
+  }
+  
+        /**
         * This method sets the data of the host.
         *
-        */
-        public void setData(Object data) {
-               this.data = data;
-       }
-       
-       /**
+        */ 
+    public void setData(Object data) {
+    this.data = data;
+  } 
+        /**
         * This method gets the data of the host.
-        */
-       public Object getData() {
-               return this.data;
-       }
-       
-       /**
+        */ 
+    public Object getData() {
+    return this.data;
+  }
+  
+        /**
         * This function tests if a host has data.
-        */
-        public boolean hasData() {
-               return null != this.data;
-       }
-       
-       /**
+        */ 
+    public boolean hasData() {
+    return null != this.data;
+  }
+  
+        /**
         * This method returns the number of tasks currently running on a host.
         * The external load is not taken in account.
         *
@@ -156,12 +151,12 @@ public class Host {
         *
         * @exception           InvalidHostException if the host is invalid.
         *
-        */
-       public int getLoad() throws JniException{
-               return Msg.hostGetLoad(this);
-       }
-       
-       /**
+        */ 
+  public int getLoad() throws JniException {
+    return MsgNative.hostGetLoad(this);
+  }
+  
+        /**
         * This method returns the speed of the processor of a host,
         * regardless of the current load of the machine.
         *
@@ -169,24 +164,74 @@ public class Host {
         *
         * @exception           InvalidHostException if the host is not valid.
         *
-        */
-
-       public double getSpeed() throws JniException {
-               return Msg.hostGetSpeed(this);
-       }
-       
-       /**
+        */ 
+   public double getSpeed() throws JniException {
+    return MsgNative.hostGetSpeed(this);
+  }
+  
+        /**
         * This method tests if a host is avail.
         * 
-        * @return                      If the host is avail the method returns true.
-        *                                      Otherwise the method returns false.
-        *
         * @exception           JniException if the host is not valid.
-        *
-        *
-        */                      
-       public boolean isAvail()throws JniException {
-               return Msg.hostIsAvail(this);
+        */ 
+    public boolean isAvail() throws JniException {
+    return MsgNative.hostIsAvail(this);
+  }
+  
+   /** Send the given task to the given channel of the host */ 
+   
+    public void put(int channel, Task task) throws JniException,
+    NativeException {
+    MsgNative.hostPut(this, channel, task, -1);
+  } 
+   /** Send the given task to the given channel of the host (waiting at most \a timeout seconds) */ 
+   
+    public void put(int channel, Task task,
+                    double timeout) throws JniException, NativeException {
+    MsgNative.hostPut(this, channel, task, timeout);
+  } 
+  
+  
+   /** Send the given task to the given channel of the host (capping the emision rate to \a maxrate) */ 
+   
+    public void putBounded(int channel, Task task,
+                           double maxrate) throws JniException,
+    NativeException {
+    MsgNative.hostPutBounded(this, channel, task, maxrate);
        }
        
-}
+        /** Send the given task to mailbox identified by the default alias */ 
+       public void send(Task task) throws JniException, NativeException  {
+               String alias = this.getName() + ":" + Process.currentProcess().msgName();       
+       MsgNative.taskSend(alias, task, -1);
+       } 
+       
+       /** Send the given task to the mailbox associated with the specified alias */ 
+   
+    public void send(String alias, Task task) throws JniException, NativeException {
+       MsgNative.taskSend(alias, task, -1);
+       }
+       
+        /** Send the given task in the mailbox associated with the alias of the current host (waiting at most \a timeout seconds) */
+       public void send(Task task, double timeout) throws JniException, NativeException {
+       String alias = this.getName() + ":" + Process.currentProcess().msgName();
+       MsgNative.taskSend(alias, task, timeout);
+       }
+       
+        /** Send the given task to mailbox associated with the specified alias (waiting at most \a timeout seconds) */
+    public void send(String alias, Task task, double timeout) throws JniException, NativeException {
+       MsgNative.taskSend(alias, task, timeout);
+       }
+       
+        /** Send the given task to the mailbox associated with the default alias (capping the emision rate to \a maxrate) */ 
+       public void sendBounded(Task task, double maxrate) throws JniException, NativeException {
+       String alias = this.getName() + ":" + Process.currentProcess().msgName();
+                       
+       MsgNative.taskSendBounded(alias, task, maxrate);
+       }  
+       
+        /** Send the given task to the mailbox associated with the specified alias (capping the emision rate to \a maxrate) */
+       public void sendBounded(String alias, Task task, double maxrate) throws JniException, NativeException {
+       MsgNative.taskSendBounded(alias, task, maxrate);
+       } 
+}