Commit 1c980a4e authored by rodrigo.calheiros's avatar rodrigo.calheiros

CloudSin version String updated to 3.0.

parent 6ef9f1ed
...@@ -38,7 +38,7 @@ import org.cloudbus.cloudsim.core.predicates.PredicateNone; ...@@ -38,7 +38,7 @@ import org.cloudbus.cloudsim.core.predicates.PredicateNone;
public class CloudSim { public class CloudSim {
/** The Constant CLOUDSIM_VERSION_STRING. */ /** The Constant CLOUDSIM_VERSION_STRING. */
private static final String CLOUDSIM_VERSION_STRING = "2.1.1"; private static final String CLOUDSIM_VERSION_STRING = "3.0";
/** The id of CIS entity. */ /** The id of CIS entity. */
private static int cisId = -1; private static int cisId = -1;
...@@ -66,15 +66,21 @@ public class CloudSim { ...@@ -66,15 +66,21 @@ public class CloudSim {
/** /**
* Initialises all the common attributes. * Initialises all the common attributes.
* *
* @param _calendar the _calendar * @param _calendar
* @param _traceFlag the _trace flag * the _calendar
* @param numUser number of users * @param _traceFlag
* @throws Exception This happens when creating this entity before initialising * the _trace flag
* CloudSim package or this entity name is <tt>null</tt> or empty * @param numUser
* number of users
* @throws Exception
* This happens when creating this entity before initialising
* CloudSim package or this entity name is <tt>null</tt> or
* empty
* @pre $none * @pre $none
* @post $none * @post $none
*/ */
private static void initCommonVariable(Calendar _calendar, boolean _traceFlag, int numUser) throws Exception { private static void initCommonVariable(Calendar _calendar, boolean _traceFlag, int numUser)
throws Exception {
initialize(); initialize();
// NOTE: the order for the below 3 lines are important // NOTE: the order for the below 3 lines are important
traceFlag = _traceFlag; traceFlag = _traceFlag;
...@@ -103,14 +109,17 @@ public class CloudSim { ...@@ -103,14 +109,17 @@ public class CloudSim {
* </ul> * </ul>
* <p> * <p>
* *
* @param numUser the number of User Entities created. This parameters indicates * @param numUser
* the number of User Entities created. This parameters indicates
* that {@link gridsim.CloudSimShutdown} first waits for all user * that {@link gridsim.CloudSimShutdown} first waits for all user
* entities's END_OF_SIMULATION signal before issuing terminate * entities's END_OF_SIMULATION signal before issuing terminate
* signal to other entities * signal to other entities
* @param cal starting time for this simulation. If it is <tt>null</tt>, * @param cal
* starting time for this simulation. If it is <tt>null</tt>,
* then the time will be taken from * then the time will be taken from
* <tt>Calendar.getInstance()</tt> * <tt>Calendar.getInstance()</tt>
* @param traceFlag <tt>true</tt> if CloudSim trace need to be written * @param traceFlag
* <tt>true</tt> if CloudSim trace need to be written
* *
* @see gridsim.CloudSimShutdown * @see gridsim.CloudSimShutdown
* @see CloudInformationService.CloudInformationService * @see CloudInformationService.CloudInformationService
...@@ -144,7 +153,8 @@ public class CloudSim { ...@@ -144,7 +153,8 @@ public class CloudSim {
* been setup and added. * been setup and added.
* *
* @return the double * @return the double
* @throws NullPointerException This happens when creating this entity before initialising * @throws NullPointerException
* This happens when creating this entity before initialising
* CloudSim package or this entity name is <tt>null</tt> or * CloudSim package or this entity name is <tt>null</tt> or
* empty. * empty.
* @see gridsim.CloudSim#init(int, Calendar, boolean) * @see gridsim.CloudSim#init(int, Calendar, boolean)
...@@ -176,8 +186,10 @@ public class CloudSim { ...@@ -176,8 +186,10 @@ public class CloudSim {
* should be only called if any of the user defined entities * should be only called if any of the user defined entities
* <b>explicitly</b> want to terminate simulation during execution. * <b>explicitly</b> want to terminate simulation during execution.
* *
* @throws NullPointerException This happens when creating this entity before initialising * @throws NullPointerException
* CloudSim package or this entity name is <tt>null</tt> or empty * This happens when creating this entity before initialising
* CloudSim package or this entity name is <tt>null</tt> or
* empty
* *
* @see gridsim.CloudSim#init(int, Calendar, boolean) * @see gridsim.CloudSim#init(int, Calendar, boolean)
* @see Simulation#runStop() * @see Simulation#runStop()
...@@ -205,12 +217,12 @@ public class CloudSim { ...@@ -205,12 +217,12 @@ public class CloudSim {
} }
/** /**
* This method is called if one wants to terminate the simulation at a * This method is called if one wants to terminate the simulation at a given
* given time. * time.
* *
* @param time the time at which the simulation has to be terminated * @param time
* @return true, if successful * the time at which the simulation has to be terminated
* otherwise. * @return true, if successful otherwise.
*/ */
public static boolean terminateSimulation(double time) { public static boolean terminateSimulation(double time) {
if (time <= clock) { if (time <= clock) {
...@@ -224,8 +236,8 @@ public class CloudSim { ...@@ -224,8 +236,8 @@ public class CloudSim {
/** /**
* Gets a new copy of initial simulation Calendar. * Gets a new copy of initial simulation Calendar.
* *
* @return a new copy of Calendar object or if CloudSim hasn't * @return a new copy of Calendar object or if CloudSim hasn't been
* been initialized * initialized
* @see gridsim.CloudSim#init(int, Calendar, boolean, String[], String[], * @see gridsim.CloudSim#init(int, Calendar, boolean, String[], String[],
* String) * String)
* @see gridsim.CloudSim#init(int, Calendar, boolean) * @see gridsim.CloudSim#init(int, Calendar, boolean)
...@@ -257,8 +269,8 @@ public class CloudSim { ...@@ -257,8 +269,8 @@ public class CloudSim {
* Sends a request to Cloud Information Service (GIS) entity to get the list * Sends a request to Cloud Information Service (GIS) entity to get the list
* of all Cloud hostList. * of all Cloud hostList.
* *
* @return A List containing CloudResource ID (as an Integer object) * @return A List containing CloudResource ID (as an Integer object) or if a
* or if a CIS entity hasn't been created before * CIS entity hasn't been created before
* @pre $none * @pre $none
* @post $none * @post $none
*/ */
...@@ -349,7 +361,8 @@ public class CloudSim { ...@@ -349,7 +361,8 @@ public class CloudSim {
/** /**
* Get the entity with a given id. * Get the entity with a given id.
* *
* @param id the entity's unique id number * @param id
* the entity's unique id number
* @return The entity, or if it could not be found * @return The entity, or if it could not be found
*/ */
public static SimEntity getEntity(int id) { public static SimEntity getEntity(int id) {
...@@ -359,7 +372,8 @@ public class CloudSim { ...@@ -359,7 +372,8 @@ public class CloudSim {
/** /**
* Get the entity with a given name. * Get the entity with a given name.
* *
* @param name The entity's name * @param name
* The entity's name
* @return The entity * @return The entity
*/ */
public static SimEntity getEntity(String name) { public static SimEntity getEntity(String name) {
...@@ -369,7 +383,8 @@ public class CloudSim { ...@@ -369,7 +383,8 @@ public class CloudSim {
/** /**
* Get the id of an entity with a given name. * Get the id of an entity with a given name.
* *
* @param name The entity's name * @param name
* The entity's name
* @return The entity's unique id number * @return The entity's unique id number
*/ */
public static int getEntityId(String name) { public static int getEntityId(String name) {
...@@ -384,7 +399,8 @@ public class CloudSim { ...@@ -384,7 +399,8 @@ public class CloudSim {
/** /**
* Gets name of the entity given its entity ID. * Gets name of the entity given its entity ID.
* *
* @param entityID the entity ID * @param entityID
* the entity ID
* @return the Entity name or if this object does not have one * @return the Entity name or if this object does not have one
* @pre entityID > 0 * @pre entityID > 0
* @post $none * @post $none
...@@ -402,7 +418,8 @@ public class CloudSim { ...@@ -402,7 +418,8 @@ public class CloudSim {
/** /**
* Gets name of the entity given its entity ID. * Gets name of the entity given its entity ID.
* *
* @param entityID the entity ID * @param entityID
* the entity ID
* @return the Entity name or if this object does not have one * @return the Entity name or if this object does not have one
* @pre entityID > 0 * @pre entityID > 0
* @post $none * @post $none
...@@ -434,7 +451,8 @@ public class CloudSim { ...@@ -434,7 +451,8 @@ public class CloudSim {
* with existing simulations since entities are automatically added to the * with existing simulations since entities are automatically added to the
* simulation upon instantiation. * simulation upon instantiation.
* *
* @param e The new entity * @param e
* The new entity
*/ */
public static void addEntity(SimEntity e) { public static void addEntity(SimEntity e) {
SimEvent evt; SimEvent evt;
...@@ -456,7 +474,8 @@ public class CloudSim { ...@@ -456,7 +474,8 @@ public class CloudSim {
* simulation is running. It should <b>not</b> be called from user * simulation is running. It should <b>not</b> be called from user
* simulations. * simulations.
* *
* @param e The new entity * @param e
* The new entity
*/ */
protected static void addEntityDynamically(SimEntity e) { protected static void addEntityDynamically(SimEntity e) {
if (e == null) { if (e == null) {
...@@ -471,8 +490,7 @@ public class CloudSim { ...@@ -471,8 +490,7 @@ public class CloudSim {
* Internal method used to run one tick of the simulation. This method * Internal method used to run one tick of the simulation. This method
* should <b>not</b> be called in simulations. * should <b>not</b> be called in simulations.
* *
* @return true, if successful * @return true, if successful otherwise
* otherwise
*/ */
public static boolean runClockTick() { public static boolean runClockTick() {
SimEntity ent; SimEntity ent;
...@@ -532,8 +550,10 @@ public class CloudSim { ...@@ -532,8 +550,10 @@ public class CloudSim {
/** /**
* Used to hold an entity for some time. * Used to hold an entity for some time.
* *
* @param src the src * @param src
* @param delay the delay * the src
* @param delay
* the delay
*/ */
public static void hold(int src, long delay) { public static void hold(int src, long delay) {
SimEvent e = new SimEvent(SimEvent.HOLD_DONE, clock + delay, src); SimEvent e = new SimEvent(SimEvent.HOLD_DONE, clock + delay, src);
...@@ -544,8 +564,10 @@ public class CloudSim { ...@@ -544,8 +564,10 @@ public class CloudSim {
/** /**
* Used to pause an entity for some time. * Used to pause an entity for some time.
* *
* @param src the src * @param src
* @param delay the delay * the src
* @param delay
* the delay
*/ */
public static void pause(int src, double delay) { public static void pause(int src, double delay) {
SimEvent e = new SimEvent(SimEvent.HOLD_DONE, clock + delay, src); SimEvent e = new SimEvent(SimEvent.HOLD_DONE, clock + delay, src);
...@@ -556,11 +578,16 @@ public class CloudSim { ...@@ -556,11 +578,16 @@ public class CloudSim {
/** /**
* Used to send an event from one entity to another. * Used to send an event from one entity to another.
* *
* @param src the src * @param src
* @param dest the dest * the src
* @param delay the delay * @param dest
* @param tag the tag * the dest
* @param data the data * @param delay
* the delay
* @param tag
* the tag
* @param data
* the data
*/ */
public static void send(int src, int dest, double delay, int tag, Object data) { public static void send(int src, int dest, double delay, int tag, Object data) {
if (delay < 0) { if (delay < 0) {
...@@ -572,13 +599,19 @@ public class CloudSim { ...@@ -572,13 +599,19 @@ public class CloudSim {
} }
/** /**
* Used to send an event from one entity to another, with priority in the queue. * Used to send an event from one entity to another, with priority in the
* queue.
* *
* @param src the src * @param src
* @param dest the dest * the src
* @param delay the delay * @param dest
* @param tag the tag * the dest
* @param data the data * @param delay
* the delay
* @param tag
* the tag
* @param data
* the data
*/ */
public static void sendFirst(int src, int dest, double delay, int tag, Object data) { public static void sendFirst(int src, int dest, double delay, int tag, Object data) {
if (delay < 0) { if (delay < 0) {
...@@ -590,12 +623,15 @@ public class CloudSim { ...@@ -590,12 +623,15 @@ public class CloudSim {
} }
/** /**
* Sets an entity's state to be waiting. The predicate used to wait for an event * Sets an entity's state to be waiting. The predicate used to wait for an
* is now passed to Sim_system. Only events that satisfy the predicate will be * event is now passed to Sim_system. Only events that satisfy the predicate
* passed to the entity. This is done to avoid unnecessary context switches. * will be passed to the entity. This is done to avoid unnecessary context
* switches.
* *
* @param src the src * @param src
* @param p the p * the src
* @param p
* the p
*/ */
public static void wait(int src, Predicate p) { public static void wait(int src, Predicate p) {
entities.get(src).setState(SimEntity.WAITING); entities.get(src).setState(SimEntity.WAITING);
...@@ -606,10 +642,13 @@ public class CloudSim { ...@@ -606,10 +642,13 @@ public class CloudSim {
} }
/** /**
* Checks if events for a specific entity are present in the deferred event queue. * Checks if events for a specific entity are present in the deferred event
* queue.
* *
* @param d the d * @param d
* @param p the p * the d
* @param p
* the p
* *
* @return the int * @return the int
*/ */
...@@ -629,8 +668,10 @@ public class CloudSim { ...@@ -629,8 +668,10 @@ public class CloudSim {
/** /**
* Selects an event matching a predicate. * Selects an event matching a predicate.
* *
* @param src the src * @param src
* @param p the p * the src
* @param p
* the p
* *
* @return the sim event * @return the sim event
*/ */
...@@ -650,8 +691,10 @@ public class CloudSim { ...@@ -650,8 +691,10 @@ public class CloudSim {
/** /**
* Find first deferred event matching a predicate. * Find first deferred event matching a predicate.
* *
* @param src the src * @param src
* @param p the p * the src
* @param p
* the p
* @return the sim event * @return the sim event
*/ */
public static SimEvent findFirstDeferred(int src, Predicate p) { public static SimEvent findFirstDeferred(int src, Predicate p) {
...@@ -669,8 +712,10 @@ public class CloudSim { ...@@ -669,8 +712,10 @@ public class CloudSim {
/** /**
* Removes an event from the event queue. * Removes an event from the event queue.
* *
* @param src the src * @param src
* @param p the p * the src
* @param p
* the p
* *
* @return the sim event * @return the sim event
*/ */
...@@ -689,11 +734,14 @@ public class CloudSim { ...@@ -689,11 +734,14 @@ public class CloudSim {
} }
/** /**
* Removes all events that match a given predicate from the future event queue * Removes all events that match a given predicate from the future event
* returns true if at least one event has been cancelled; false otherwise. * queue returns true if at least one event has been cancelled; false
* otherwise.
* *
* @param src the src * @param src
* @param p the p * the src
* @param p
* the p
* *
* @return true, if successful * @return true, if successful
*/ */
...@@ -717,7 +765,8 @@ public class CloudSim { ...@@ -717,7 +765,8 @@ public class CloudSim {
/** /**
* Processes an event. * Processes an event.
* *
* @param e the e * @param e
* the e
*/ */
private static void processEvent(SimEvent e) { private static void processEvent(SimEvent e) {
int dest, src; int dest, src;
...@@ -742,8 +791,7 @@ public class CloudSim { ...@@ -742,8 +791,7 @@ public class CloudSim {
// Check for matching wait // Check for matching wait
dest = e.getDestination(); dest = e.getDestination();
if (dest < 0) { if (dest < 0) {
throw new IllegalArgumentException( throw new IllegalArgumentException("Attempt to send to a null entity detected.");
"Attempt to send to a null entity detected.");
} else { } else {
int tag = e.getTag(); int tag = e.getTag();
dest_ent = entities.get(dest); dest_ent = entities.get(dest);
...@@ -795,8 +843,7 @@ public class CloudSim { ...@@ -795,8 +843,7 @@ public class CloudSim {
* Check if the simulation is still running. This method should be used by * Check if the simulation is still running. This method should be used by
* entities to check if they should continue executing. * entities to check if they should continue executing.
* *
* @return if the simulation is still running, * @return if the simulation is still running, otherwise
* otherwise
*/ */
public static boolean running() { public static boolean running() {
return running; return running;
...@@ -805,8 +852,7 @@ public class CloudSim { ...@@ -805,8 +852,7 @@ public class CloudSim {
/** /**
* This method is called if one wants to pause the simulation. * This method is called if one wants to pause the simulation.
* *
* @return true, if successful * @return true, if successful otherwise.
* otherwise.
*/ */
public static boolean pauseSimulation() { public static boolean pauseSimulation() {
paused = true; paused = true;
...@@ -817,9 +863,9 @@ public class CloudSim { ...@@ -817,9 +863,9 @@ public class CloudSim {
* This method is called if one wants to pause the simulation at a given * This method is called if one wants to pause the simulation at a given
* time. * time.
* *
* @param time the time at which the simulation has to be paused * @param time
* @return true, if successful * the time at which the simulation has to be paused
* otherwise. * @return true, if successful otherwise.
*/ */
public static boolean pauseSimulation(long time) { public static boolean pauseSimulation(long time) {
if (time <= clock) { if (time <= clock) {
...@@ -834,8 +880,7 @@ public class CloudSim { ...@@ -834,8 +880,7 @@ public class CloudSim {
* This method is called if one wants to resume the simulation that has * This method is called if one wants to resume the simulation that has
* previously been paused. * previously been paused.
* *
* @return if the simulation has been restarted or or * @return if the simulation has been restarted or or otherwise.
* otherwise.
*/ */
public static boolean resumeSimulation() { public static boolean resumeSimulation() {
paused = false; paused = false;
...@@ -862,14 +907,16 @@ public class CloudSim { ...@@ -862,14 +907,16 @@ public class CloudSim {
break; break;
} }
//this block allows termination of simulation at a specific time // this block allows termination of simulation at a specific time
if (terminateAt > 0.0 && clock >= terminateAt) { if (terminateAt > 0.0 && clock >= terminateAt) {
terminateSimulation(); terminateSimulation();
clock = terminateAt; clock = terminateAt;
break; break;
} }
if (pauseAt != -1 && ((future.size() > 0 && clock <= pauseAt && pauseAt <= future.iterator().next().eventTime()) || future.size() == 0 && pauseAt <= clock)) { if (pauseAt != -1
&& ((future.size() > 0 && clock <= pauseAt && pauseAt <= future.iterator().next()
.eventTime()) || future.size() == 0 && pauseAt <= clock)) {
pauseSimulation(); pauseSimulation();
clock = pauseAt; clock = pauseAt;
} }
...@@ -934,7 +981,8 @@ public class CloudSim { ...@@ -934,7 +981,8 @@ public class CloudSim {
/** /**
* Prints a message about the progress of the simulation. * Prints a message about the progress of the simulation.
* *
* @param message the message * @param message
* the message
*/ */
private static void printMessage(String message) { private static void printMessage(String message) {
Log.printLine(message); Log.printLine(message);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment