2 * Bindings to the MSG hosts
4 * Copyright 2006,2007,2010 The SimGrid Team
7 * This program is free software; you can redistribute
8 * it and/or modify it under the terms of the license
9 *(GNU LGPL) which comes with this package.
12 package org.simgrid.msg;
15 * A host object represents a location (any possible place) where a process may run.
16 * Thus it is represented as a physical resource with computing capabilities, some
17 * mailboxes to enable running process to communicate with remote ones, and some private
18 * data that can be only accessed by local process. An instance of this class is always
19 * binded with the corresponding native host. All the native hosts are automatically created
20 * during the call of the method Msg.createEnvironment(). This method take as parameter a
21 * platform file which describes all elements of the platform (host, link, root..).
22 * You cannot create a host yourself.
24 * The best way to get an host instance is to call the static method
27 * For example to get the instance of the host. If your platform
28 * file description contains an host named "Jacquelin" :
34 jacquelin = Host.getByName("Jacquelin");
35 } catch(HostNotFoundException e) {
36 System.err.println(e.toString());
45 * This attribute represents a bind between a java host object and
46 * a native host. Even if this attribute is public you must never
47 * access to it. It is set automatically during the call of the
48 * static method Host.getByName().
50 * @see Host.getByName().
65 * This static method gets an host instance associated with a native
66 * host of your platform. This is the best way to get a java host object.
68 * @param name The name of the host to get.
70 * @exception HostNotFoundException if the name of the host is not valid.
71 * NativeException if the native version of this method failed.
73 public static Host getByName(String name)
74 throws HostNotFoundException {
76 throw new NullPointerException("No host can have a null name");
77 return MsgNative.hostGetByName(name);
81 * This static method returns the count of the installed hosts.
83 * @return The count of the installed hosts.
86 public static int getCount() {
87 return MsgNative.hostGetCount();
91 * This static method return an instance to the host of the current process.
93 * @return The host on which the current process is executed.
95 public static Host currentHost() {
96 return MsgNative.hostSelf();
100 * This static method returns all of the hosts of the installed platform.
102 * @return An array containing all the hosts installed.
105 public static Host[] all() {
106 return MsgNative.allHosts();
110 * This method returns the name of a host.
112 * @return The name of the host.
115 public String getName() {
116 return MsgNative.hostGetName(this);
120 * Sets the data of the host.
123 public void setData(Object data) {
127 * Gets the data of the host.
129 public Object getData() {
134 * Checks whether a host has data.
136 public boolean hasData() {
137 return null != this.data;
141 * This method returns the number of tasks currently running on a host.
142 * The external load is not taken in account.
144 * @return The number of tasks currently running on a host.
146 public int getLoad() {
147 return MsgNative.hostGetLoad(this);
151 * This method returns the speed of the processor of a host,
152 * regardless of the current load of the machine.
154 * @return The speed of the processor of the host in flops.
157 public double getSpeed() {
158 return MsgNative.hostGetSpeed(this);
161 /** This method tests if a host is avail. */
162 public boolean isAvail() {
163 return MsgNative.hostIsAvail(this);