Example #1
0
        public static int getSortPriority(EnumQueueEntryStatus status, int priority)
        {
            int sort = (status == null) ? 0 : 10000 - 1000 * status.getValue();

            sort += priority;
            return(sort);
        }
Example #2
0
        ///
        ///	 <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);
            }
        }
Example #3
0
 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);
 }
Example #4
0
 ///
 ///          <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)));
 }
Example #5
0
 //         ---------------------------------------------------------------------
 //        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);
 }
Example #6
0
        ///
        ///	 * <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));
        }
Example #7
0
        ///
        ///	 <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);
        }
Example #8
0
            //
            //		 * (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);
            }