public static int getSortPriority(EnumQueueEntryStatus status, int priority) { int sort = (status == null) ? 0 : 10000 - 1000 * status.getValue(); sort += priority; return(sort); }
/// /// <summary> * sets the QueueEntry/@Status if the queue is automated, also resorts the queue to reflect the new Status and sets /// * the Queue/@Status based on the maximum number of concurrently running jobs also sets StartTime and EndTime /// * appropriately if the queue is automated /// * </summary> /// * <param name="value"> the queuentry status to set /// * </param> /// * <seealso cref= org.cip4.jdflib.auto.JDFAutoQueueEntry#setQueueEntryStatus(org.cip4.jdflib.auto.JDFAutoQueueEntry.EnumQueueEntryStatus) </seealso> /// public override void setQueueEntryStatus(EnumQueueEntryStatus @value) { EnumQueueEntryStatus oldVal = getQueueEntryStatus(); if (isAutomated() && !ContainerUtil.Equals(oldVal, @value)) { JDFQueue queue = (JDFQueue)getParentNode_KElement(); lock (queue) { base.setQueueEntryStatus(@value); if (isCompleted()) { if (!hasAttribute(AttributeName.ENDTIME)) { base.setEndTime(new JDFDate()); } queue.cleanup(); } if (EnumQueueEntryStatus.Running.Equals(@value)) { if (!hasAttribute(AttributeName.STARTTIME)) { base.setStartTime(new JDFDate()); } removeAttribute(AttributeName.ENDTIME); } queue.sortChildren(); queue.setStatusFromEntries(); } } else if (!ContainerUtil.Equals(oldVal, @value)) // non automated { base.setQueueEntryStatus(@value); } }
static JDFAutoQueueEntry() { atrInfoTable[0] = new AtrInfoTable(AttributeName.DEVICEID, 0x33333311, AttributeInfo.EnumAttributeType.shortString, null, null); atrInfoTable[1] = new AtrInfoTable(AttributeName.ENDTIME, 0x33333311, AttributeInfo.EnumAttributeType.dateTime, null, null); atrInfoTable[2] = new AtrInfoTable(AttributeName.GANGNAME, 0x33333333, AttributeInfo.EnumAttributeType.NMTOKEN, null, null); atrInfoTable[3] = new AtrInfoTable(AttributeName.JOBID, 0x33333333, AttributeInfo.EnumAttributeType.shortString, null, null); atrInfoTable[4] = new AtrInfoTable(AttributeName.JOBPARTID, 0x33333333, AttributeInfo.EnumAttributeType.shortString, null, null); atrInfoTable[5] = new AtrInfoTable(AttributeName.PRIORITY, 0x33333333, AttributeInfo.EnumAttributeType.integer, null, "1"); atrInfoTable[6] = new AtrInfoTable(AttributeName.QUEUEENTRYID, 0x22222222, AttributeInfo.EnumAttributeType.shortString, null, null); atrInfoTable[7] = new AtrInfoTable(AttributeName.STATUS, 0x22222222, AttributeInfo.EnumAttributeType.enumeration, EnumQueueEntryStatus.getEnum(0), null); atrInfoTable[8] = new AtrInfoTable(AttributeName.STARTTIME, 0x33333311, AttributeInfo.EnumAttributeType.dateTime, null, null); atrInfoTable[9] = new AtrInfoTable(AttributeName.SUBMISSIONTIME, 0x33333333, AttributeInfo.EnumAttributeType.dateTime, null, null); elemInfoTable[0] = new ElemInfoTable(ElementName.JOBPHASE, 0x66666611); elemInfoTable[1] = new ElemInfoTable(ElementName.PART, 0x33333311); elemInfoTable[2] = new ElemInfoTable(ElementName.PREVIEW, 0x33333311); }
/// /// <summary> * (9) get attribute Status </summary> /// * <returns> the value of the attribute </returns> /// public virtual EnumQueueEntryStatus getQueueEntryStatus() { return(EnumQueueEntryStatus.getEnum(getAttribute(AttributeName.STATUS, null, null))); }
// --------------------------------------------------------------------- // Methods for Attribute Status // --------------------------------------------------------------------- /// /// <summary> * (5) set attribute Status </summary> /// * <param name="enumVar">: the enumVar to set the attribute to </param> /// public virtual void setQueueEntryStatus(EnumQueueEntryStatus enumVar) { setAttribute(AttributeName.STATUS, enumVar == null ? null : enumVar.getName(), null); }
/// /// * <returns> true if this entry is completed </returns> /// public virtual bool isCompleted() { EnumQueueEntryStatus status = getQueueEntryStatus(); return(EnumQueueEntryStatus.Completed.Equals(status) || EnumQueueEntryStatus.Removed.Equals(status) || EnumQueueEntryStatus.Aborted.Equals(status)); }
/// /// <summary> * get the vector of valid next @Status values for this queue entry based on the current staus based on the table of /// * valid queue entry transitions /// * </summary> /// * <returns> Vector<EnumQueueEntryStatus> the vector of valid new stati </returns> /// public virtual List <EnumQueueEntryStatus> getNextStatusVector() { List <EnumQueueEntryStatus> v = new List <EnumQueueEntryStatus>(); EnumQueueEntryStatus qesThis = getQueueEntryStatus(); if (qesThis == null) { IEnumerator <EnumQueueEntryStatus> it = (IEnumerator <EnumQueueEntryStatus>)EnumQueueEntryStatus.iterator(); while (it.MoveNext()) { v.Add(it.Current); } } else if (EnumQueueEntryStatus.Running.Equals(qesThis)) { v.Add(EnumQueueEntryStatus.Running); v.Add(EnumQueueEntryStatus.PendingReturn); v.Add(EnumQueueEntryStatus.Completed); v.Add(EnumQueueEntryStatus.Aborted); } else if (EnumQueueEntryStatus.Waiting.Equals(qesThis)) { v.Add(EnumQueueEntryStatus.Running); v.Add(EnumQueueEntryStatus.Waiting); v.Add(EnumQueueEntryStatus.Held); v.Add(EnumQueueEntryStatus.Removed); v.Add(EnumQueueEntryStatus.PendingReturn); v.Add(EnumQueueEntryStatus.Aborted); } else if (EnumQueueEntryStatus.Held.Equals(qesThis)) { v.Add(EnumQueueEntryStatus.Waiting); v.Add(EnumQueueEntryStatus.Held); v.Add(EnumQueueEntryStatus.Removed); v.Add(EnumQueueEntryStatus.PendingReturn); v.Add(EnumQueueEntryStatus.Aborted); } else if (EnumQueueEntryStatus.Removed.Equals(qesThis)) { v.Add(EnumQueueEntryStatus.Removed); } else if (EnumQueueEntryStatus.Suspended.Equals(qesThis)) { v.Add(EnumQueueEntryStatus.Running); v.Add(EnumQueueEntryStatus.Suspended); v.Add(EnumQueueEntryStatus.Aborted); } else if (EnumQueueEntryStatus.PendingReturn.Equals(qesThis)) { v.Add(EnumQueueEntryStatus.PendingReturn); v.Add(EnumQueueEntryStatus.Completed); v.Add(EnumQueueEntryStatus.Aborted); } else if (EnumQueueEntryStatus.Completed.Equals(qesThis)) { v.Add(EnumQueueEntryStatus.Waiting); v.Add(EnumQueueEntryStatus.Removed); v.Add(EnumQueueEntryStatus.PendingReturn); v.Add(EnumQueueEntryStatus.Completed); v.Add(EnumQueueEntryStatus.Aborted); } else if (EnumQueueEntryStatus.Aborted.Equals(qesThis)) { v.Add(EnumQueueEntryStatus.Waiting); v.Add(EnumQueueEntryStatus.Removed); v.Add(EnumQueueEntryStatus.PendingReturn); v.Add(EnumQueueEntryStatus.Aborted); } return(v); }
// // * (non-Javadoc) // * // * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) // public virtual int Compare(object a1, object a2) { if (!(a1 is KElement)) { return(-1); } if (!(a2 is KElement)) { return(1); } KElement o1 = (KElement)a1; KElement o2 = (KElement)a2; int i = o1.Name.CompareTo(o2.Name); if (i != 0) { return(i); } if ((o1 is JDFQueueEntry) && (o2 is JDFQueueEntry)) { JDFQueueEntry q1 = (JDFQueueEntry)o1; JDFQueueEntry q2 = (JDFQueueEntry)o2; EnumQueueEntryStatus status1 = q1.getQueueEntryStatus(); EnumQueueEntryStatus status2 = q2.getQueueEntryStatus(); int s1 = (status1 == null) ? 0 : status1.getValue(); int s2 = (status2 == null) ? 0 : status2.getValue(); if (s1 != s2) { return(s1 - s2); } if (q1.isCompleted()) { JDFDate d1 = q1.getEndTime(); JDFDate d2 = q1.getEndTime(); if (d1 != null && d2 != null) { return(d1.CompareTo(d2)); } } else { s1 = q1.getPriority(); s2 = q2.getPriority(); if (s1 != s2) { return(s2 - s1); } } JDFDate d11 = q1.getStartTime(); JDFDate d22 = q2.getStartTime(); int d = ContainerUtil.compare(d11, d22); if (d != 0) { return(d); } d11 = q1.getSubmissionTime(); d22 = q2.getSubmissionTime(); d = ContainerUtil.compare(d11, d22); if (d != 0) { return(d); } } return(0); }