home *** CD-ROM | disk | FTP | other *** search
- import java.util.Hashtable;
- import java.util.Vector;
-
- public class JDPSubsystem extends Thread {
- JDPSubsystemMgr manager;
- ThreadGroup thisThreadGroup;
- Hashtable info;
- Vector jobs;
-
- public JDPSubsystem(JDPSubsystemMgr var1, String var2) {
- super(var1.mainThreadGroup, var2);
- this.manager = var1;
- this.thisThreadGroup = new ThreadGroup(var1.mainThreadGroup, var2);
- this.info = new Hashtable();
- this.jobs = new Vector();
- this.setSubsystemName(var2);
- }
-
- public void run() {
- while(!this.manager.shutdownRequested) {
- try {
- Thread.sleep(60000L);
- } catch (Exception var1) {
- }
- }
-
- }
-
- public String getSubsystemName() {
- return (String)this.info.get("SubsystemName");
- }
-
- public void setSubsystemName(String var1) {
- this.info.put("SubsystemName", var1);
- }
-
- public String getSubsystemDesc() {
- return (String)this.info.get("SubsystemDesc");
- }
-
- public void setSubsystemDesc(String var1) {
- this.info.put("SubsystemDesc", var1);
- }
-
- public int getActiveJobCount() {
- return this.jobs.size();
- }
-
- public int getMaxJobs() {
- return (Integer)this.info.get("Maxjobs");
- }
-
- public void setMaxJobs(int var1) {
- this.info.put("Maxjobs", new Integer(var1));
- }
-
- public boolean getSubsystemHeld() {
- return (Boolean)this.info.get("SubsystemHeld");
- }
-
- public void setSubsystemHeld(boolean var1) {
- this.info.put("SubsystemHeld", new Boolean(var1));
-
- for(int var2 = 0; var2 < this.jobs.size(); ++var2) {
- JDPJob var3 = (JDPJob)this.jobs.elementAt(var2);
- if (var1) {
- var3.getActiveJob().suspend();
- var3.setJobStatus(5);
- } else {
- var3.getActiveJob().resume();
- var3.setJobStatus(4);
- }
- }
-
- }
-
- public boolean submitJob(JDPJob var1) {
- if (this.getMaxJobs() != 0 && this.getMaxJobs() <= this.getActiveJobCount()) {
- return false;
- } else {
- var1.setSubsystem(this.getSubsystemName());
- var1.setJobStatus(4);
- this.jobs.addElement(var1);
- return this.startJob(var1);
- }
- }
-
- private boolean startJob(JDPJob var1) {
- JDPActiveJob var2 = new JDPActiveJob(this, var1);
- var1.setActiveJob(var2);
- ((Thread)var2).start();
- ((Thread)var2).setPriority(var1.getJobPriority());
- return true;
- }
-
- public boolean setJobComplete(JDPJob var1) {
- boolean var2 = this.jobs.removeElement(var1);
- this.manager.queueMgr.reOrderQueue();
- return var2;
- }
-
- public boolean holdJob(int var1) {
- JDPJob var2 = this.getJob(var1);
- return var2 != null && var2.setJobStatus(5);
- }
-
- public boolean releaseJob(int var1) {
- JDPJob var2 = this.getJob(var1);
- return var2 != null && var2.setJobStatus(4);
- }
-
- public JDPJob getJob(int var1) {
- for(int var2 = 0; var2 < this.jobs.size(); ++var2) {
- JDPJob var3 = (JDPJob)this.jobs.elementAt(var2);
- if (var3.getJobNumber() == var1) {
- return var3;
- }
- }
-
- return null;
- }
-
- public JDPJob getJob(String var1) {
- for(int var2 = 0; var2 < this.jobs.size(); ++var2) {
- JDPJob var3 = (JDPJob)this.jobs.elementAt(var2);
- if (var3.getJobName().equals(var1)) {
- return var3;
- }
- }
-
- return null;
- }
- }
-