package org.openpixi.pixi.distributed.profile;
import org.openpixi.pixi.profile.Print;
import org.openpixi.pixi.profile.ProfileInfo;
/**
* Holds the information collected by aspectj profiling.
* The informartion is ready after the last call to Simulation.setp() method.
* The fields of this class are filled only when profile profiling is turned on.
* One can turn on profile profiling by enabling maven profile profile-profile.
*/
public class DistributedProfileInfo extends ProfileInfo {
private static long arrivingParticlesWaitingTime;
private static long ghostParticlesWaitingTime;
private static long ghostCellsWaitingTime;
public static long getArrivingParticlesWaitingTime() {
return arrivingParticlesWaitingTime;
}
public static void addArrivingParticlesWaitingTime(long value) {
DistributedProfileInfo.arrivingParticlesWaitingTime += value;
}
public static long getGhostParticlesWaitingTime() {
return ghostParticlesWaitingTime;
}
public static void addGhostParticlesWaitingTime(long value) {
DistributedProfileInfo.ghostParticlesWaitingTime += value;
}
public static long getGhostCellsWaitingTime() {
return ghostCellsWaitingTime;
}
public static void addGhostCellsWaitingTime(long value) {
DistributedProfileInfo.ghostCellsWaitingTime += value;
}
public static void printProfileInfo() {
if (!ProfileInfo.isProfilingOn()) {
System.out.println("Profiling information was not captured.");
return;
}
ProfileInfo.printProfileInfo();
Print.partTime("Arriving particles waiting time",
arrivingParticlesWaitingTime, ProfileInfo.getSimulationTime());
Print.partTime("Ghost particles waiting time",
ghostParticlesWaitingTime, ProfileInfo.getSimulationTime());
Print.partTime("Ghost cells waiting time",
ghostCellsWaitingTime, ProfileInfo.getSimulationTime());
}
}