00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 package org.objectweb.proactive.scheduler;
00032
00033 import java.util.Vector;
00034
00035 import org.objectweb.proactive.Body;
00036 import org.objectweb.proactive.Job;
00037 import org.objectweb.proactive.RunActive;
00038 import org.objectweb.proactive.Service;
00039 import org.objectweb.proactive.core.node.Node;
00040
00041
00049 public class JobNoDescriptor implements java.io.Serializable, Job, RunActive {
00050 private GenericJob job;
00051 private RessourceManager ressourceManager;
00052 private boolean flag = false;
00053
00054 public JobNoDescriptor() {
00055 }
00056
00057 public JobNoDescriptor(RessourceManager ressourceManager,
00058 Integer ressourceNb, Integer estimatedTime) {
00059 job = new GenericJob();
00060 job.setRessourceNb(ressourceNb.intValue());
00061 job.setEstimatedTime(estimatedTime.intValue());
00062 job.setMinNbOfNodes(ressourceNb.intValue());
00063 this.ressourceManager = ressourceManager;
00064 }
00065
00066 public String getJobID() {
00067 return this.job.getJobID();
00068 }
00069
00075 public Vector getNodes() {
00076 this.flag = true;
00077 while (!this.ressourceManager.checkReservation(this.getJobID())
00078 .booleanValue())
00079 ;
00080 int ressourceNb = this.job.getRessourceNb();
00081 Node[] nodes = this.ressourceManager.getNodes(this.getJobID(),
00082 ressourceNb);
00083 Vector result = new Vector();
00084
00085 for (int i = 0; i < nodes.length; ++i)
00086 result.add(nodes[i]);
00087
00088 return result;
00089 }
00090
00091 public GenericJob getJobDescription() {
00092 return this.job;
00093 }
00094
00099 public void runActivity(Body body) {
00100 Service service = new Service(body);
00101 while (!this.flag) {
00102 service.waitForRequest();
00103 service.serveOldest();
00104 }
00105 }
00106 }