/*
* 步骤
* 第一步:初始化GirdSim包。应该在创建任何实体之前申明它
* 第二步:创建一个网格作业列表
* 第三步:创建Example31对象,里面包括核心方法去处理GridSim实体间的通信
* 第四步:开始模拟GridSim.startGridSimulation();
* 第五步: 模拟结束之后打印网格作业列表
*/
import java.util.*;
import gridsim.*;
/**
* Example31类创建网格作业并且把他们发送到其他GridSim实体i.e. Test class.
*/
class Example31 extends GridSim
{
private String entityName_;
private GridletList list_;
//从Test对象收到的网格作业的列表
private GridletList receiveList_;
/**
* 分配一个新的Example31对象
* @参数 name 实体名字
* @参数 baud_rate 传输速度
* @参数 list 网格作业的一个列表
* @throws Exception 当在初始化一个GridSim包之前创建了这个实体或者实体名为空时<tt>null</tt> or empty会抛出例外
* @see gridsim.GridSim#Init(int, Calendar, boolean, String[], String[],
* String)
*/
Example31(String name, double baud_rate, GridletList list)throws Exception
{
super(name);
this.list_ = list;
receiveList_ = new GridletList();
//创建一个Test实体,称为一个entityName
entityName_ = "Test";
new Test(entityName_, baud_rate);
}
/**
* 核心方法去处理GridSim实体间的通信
*/
public void body()
{
int size = list_.size();
Gridlet obj, gridlet;
//一个循环:一次得到一个网格作业,并把它发送到其他GridSim实体
for(int i = 0; i < size; i++)
{
obj = (Gridlet) list_.get(i);
System.out.println("在Example3.body()方法内 => 发送网格作业 " +
obj.getGridletID());
//在没有延迟的时刻下发送一个网格作业(使用常量GridSimTags.SCHEDULE_NOW)