/*
* 步驟
* 第一步:初始化GirdSim包。應該在創(chuàng)建任何實體之前申明它
* 第二步:創(chuàng)建一個網格作業(yè)列表
* 第三步:創(chuàng)建Example31對象,里面包括核心方法去處理GridSim實體間的通信
* 第四步:開始模擬GridSim.startGridSimulation();
* 第五步: 模擬結束之后打印網格作業(yè)列表
*/
import java.util.*;
import gridsim.*;
/**
* Example31類創(chuàng)建網格作業(yè)并且把他們發(fā)送到其他GridSim實體i.e. Test class.
*/
class Example31 extends GridSim
{
private String entityName_;
private GridletList list_;
//從Test對象收到的網格作業(yè)的列表
private GridletList receiveList_;
/**
* 分配一個新的Example31對象
* @參數 name 實體名字
* @參數 baud_rate 傳輸速度
* @參數 list 網格作業(yè)的一個列表
* @throws Exception 當在初始化一個GridSim包之前創(chuàng)建了這個實體或者實體名為空時<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();
//創(chuàng)建一個Test實體,稱為一個entityName
entityName_ = "Test";
new Test(entityName_, baud_rate);
}
/**
* 核心方法去處理GridSim實體間的通信
*/
public void body()
{
int size = list_.size();
Gridlet obj, gridlet;
//一個循環(huán):一次得到一個網格作業(yè),并把它發(fā)送到其他GridSim實體
for(int i = 0; i < size; i++)
{
obj = (Gridlet) list_.get(i);
System.out.println("在Example3.body()方法內 => 發(fā)送網格作業(yè) " +
obj.getGridletID());
//在沒有延遲的時刻下發(fā)送一個網格作業(yè)(使用常量GridSimTags.SCHEDULE_NOW)