1 /* Bindings to the MSG hosts */
3 /* Copyright (c) 2006-2014. The SimGrid Team.
4 * All rights reserved. */
6 /* This program is free software; you can redistribute it and/or modify it
7 * under the terms of the license (GNU LGPL) which comes with this package. */
9 package org.simgrid.msg;
11 import org.simgrid.msg.Storage;
14 * A host object represents a location (any possible place) where a process may run.
15 * Thus it is represented as a physical resource with computing capabilities, some
16 * mailboxes to enable running process to communicate with remote ones, and some private
17 * data that can be only accessed by local process. An instance of this class is always
18 * bound with the corresponding native host. All the native hosts are automatically created
19 * during the call of the method Msg.createEnvironment(). This method take as parameter a
20 * platform file which describes all elements of the platform (host, link, root..).
21 * You cannot create a host yourself.
23 * The best way to get an host instance is to call the static method
26 * For example to get the instance of the host. If your platform
27 * file description contains an host named "Jacquelin" :
33 jacquelin = Host.getByName("Jacquelin");
34 } catch(HostNotFoundException e) {
35 System.err.println(e.toString());
44 * This attribute represents a bind between a java host object and
45 * a native host. Even if this attribute is public you must never
46 * access to it. It is set automatically during the call of the
47 * static method Host.getByName().
49 * @see Host.getByName().
55 protected String name;
69 public String toString (){
75 * This static method gets an host instance associated with a native
76 * host of your platform. This is the best way to get a java host object.
78 * @param name The name of the host to get.
80 * @return The host object with the given name.
81 * @exception HostNotFoundException if the name of the host is not valid.
82 * NativeException if the native version of this method failed.
84 public native static Host getByName(String name)
85 throws HostNotFoundException, NullPointerException;
87 * This static method returns the count of the installed hosts.
89 * @return The count of the installed hosts.
91 public native static int getCount();
94 * This static method return an instance to the host of the current process.
96 * @return The host on which the current process is executed.
98 public native static Host currentHost();
101 * This static method returns all of the hosts of the installed platform.
103 * @return An array containing all the hosts installed.
106 public native static Host[] all();
109 * This static method sets a mailbox to receive in asynchronous mode.
111 * All messages sent to this mailbox will be transferred to
112 * the receiver without waiting for the receive call.
113 * The receive call will still be necessary to use the received data.
114 * If there is a need to receive some messages asynchronously, and some not,
115 * two different mailboxes should be used.
117 * @param mailboxName The name of the mailbox
119 public static native void setAsyncMailbox(String mailboxName);
123 * This method returns the name of a host.
124 * @return The name of the host.
127 public String getName() {
132 * Sets the data of the host.
135 public void setData(Object data) {
139 * Gets the data of the host.
141 * @return The data object associated with the host.
143 public Object getData() {
148 * Checks whether a host has data.
150 * @return True if the host has an associated data object.
152 public boolean hasData() {
153 return null != this.data;
157 * This method start the host if it is off
159 public native void on();
162 * This method stop the host if it is on
164 public native void off();
168 * This method returns the number of tasks currently running on a host.
169 * The external load is not taken in account.
171 * @return The number of tasks currently running on a host.
173 public native int getLoad();
176 * This method returns the speed of the processor of a host,
177 * regardless of the current load of the machine.
179 * @return The speed of the processor of the host in flops.
182 public native double getSpeed();
185 * This method returns the number of core of a host.
187 * @return The speed of the processor of the host in flops.
190 public native double getCoreNumber();
193 * Returns the value of a given host property.
195 public native String getProperty(String name);
198 * Change the value of a given host property.
200 public native void setProperty(String name, String value);
202 /** This method tests if a host is available.
203 * @return True if the host is available.
205 public native boolean isAvail();
207 /** This methods returns the list of mount point names on an host
208 * @return An array containing all mounted storages on the host
210 public native Storage[] getMountedStorage();
212 /** This methods returns the list of storages attached to an host
213 * @return An array containing all storages (name) attached to the host
215 public native String[] getAttachedStorage();
219 * Class initializer, to initialize various JNI stuff
221 public static native void nativeInit();