Q - The type of queue supported.public abstract class AbstractSimQueuePredictor_Composite_LocalStart<Q extends AbstractSimQueueComposite_LocalStart> extends AbstractSimQueuePredictor_Composite<Q>
SimQueuePredictor for AbstractSimQueueComposite_LocalStart and derived queues.Copyright (C) 2005-2017 Jan de Jongh, TNO
This file is covered by the LICENSE file in the root of this project.
AbstractSimQueuePredictor_Composite.SubQueueSimpleEventsubQueuePredictors| Constructor and Description |
|---|
AbstractSimQueuePredictor_Composite_LocalStart(List<AbstractSimQueuePredictor> subQueuePredictors) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkSubQueueVisitLogsSet(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet,
SimQueue subQueue,
int subQueueIndex,
DefaultSimQueueState<SimJob,SimQueue> subQueueState,
Set<JobQueueVisitLog<SimJob,Q>> subQueueVisitLogsSet) |
SimQueueState<SimJob,Q> |
createQueueState(Q queue,
boolean isROEL)
Registers a new
SimQueueCompositeStateHandler at the object created by super method,
creating appropriate empty DefaultSimQueueStates for the sub-queues. |
protected void |
departJobs(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimJob> departers,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet) |
void |
doQueueEvents_SQ_SV_ROEL_U(Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimEntitySimpleEventType.Member> queueEventTypes,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet)
Process the next event(s) at a queue with given state.
|
void |
doWorkloadEvents_SQ_SV_ROEL_U(Q queue,
WorkloadSchedule_SQ_SV_ROEL_U workloadSchedule,
SimQueueState<SimJob,Q> queueState,
Set<SimEntitySimpleEventType.Member> workloadEventTypes,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet)
Process the next event(s) from given
WorkloadSchedule at a queue with given state. |
protected void |
dropJobs(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimJob> drops,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet) |
double |
getNextQueueEventTimeBeyond(Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimEntitySimpleEventType.Member> queueEventTypes)
Returns the time and types of the next event(s)
scheduled strictly beyond the time at (the state object of) a specific queue.
|
protected void |
revokeJobs(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimJob> revokers,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet) |
protected void |
startJobs(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimJob> starters,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet) |
void |
updateToTime(Q queue,
SimQueueState queueState,
double newTime)
Updates the queue state to a new time, without processing any events.
|
is_ROEL_U_UnderWorkloadQueueEventClashes, is_U_UnderWorkloadQueueEventClashes, predict_SQ_SV_IOEL_U, predict_SQ_SV_ROEL_Uclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitmatchVisitLogs_SQ_SVcreateWorkloadSchedule_SQ_SV_ROEL_U, createWorkloadSchedule_SQ_SV, doWorkloadEvents_SQ_SVhasServerAccessCredits, isQueueAccessVacation, isStartArmedpublic AbstractSimQueuePredictor_Composite_LocalStart(List<AbstractSimQueuePredictor> subQueuePredictors)
public SimQueueState<SimJob,Q> createQueueState(Q queue, boolean isROEL)
SimQueueCompositeStateHandler at the object created by super method,
creating appropriate empty DefaultSimQueueStates for the sub-queues.createQueueState in interface SimQueueEventPredictor<Q extends AbstractSimQueueComposite_LocalStart>createQueueState in class AbstractSimQueuePredictor_Composite<Q extends AbstractSimQueueComposite_LocalStart>queue - The queue, non-null.isROEL - Whether or not the event list used is a Random-Order Event List.SimQueueState object for this predictor and given queue.public void updateToTime(Q queue, SimQueueState queueState, double newTime)
SimQueueEventPredictor
Implementations must at least set the time on the queue state.
Beware that the old time on the queue state may equal its initial value Double.NaN.
queue - The queue, non-null.queueState - The queue-state, non-null.newTime - The new time.SimQueueState.setTime(double)public double getNextQueueEventTimeBeyond(Q queue, SimQueueState<SimJob,Q> queueState, Set<SimEntitySimpleEventType.Member> queueEventTypes) throws SimQueuePredictionException
SimQueueEventPredictor
The time from which to search must be taken from SimQueueState.getTime(),
and equals Double.NaN after initialization.
queue - The queue, non-null.queueState - The queue-state, non-null.queueEventTypes - A non-null set to store the (possible multiple) event types; it must be cleared upon entry.Double.NaN if no such event exists.SimQueuePredictionException - If the result cannot be computed, e.g., due to invalid input or schedule ambiguities.SimJQSimpleEventType.START,
SimJQSimpleEventType.DEPARTUREpublic void doWorkloadEvents_SQ_SV_ROEL_U(Q queue, WorkloadSchedule_SQ_SV_ROEL_U workloadSchedule, SimQueueState<SimJob,Q> queueState, Set<SimEntitySimpleEventType.Member> workloadEventTypes, Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet) throws SimQueuePredictionException, WorkloadScheduleException
SimQueueEventPredictorWorkloadSchedule at a queue with given state.
The scheduled time and the types of the next events must be known beforehand,
e.g., through WorkloadSchedule.getNextEventTimeBeyond(org.javades.jqueues.r5.entity.jq.queue.SimQueue, double, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>).
The scheduled time has already been set on the SimQueueState object,
and the object has been updated upto that time.
The time on the queue state must not be changed.
Implementations must update the queue state and (if applicable) add suitable entries to the visit logs.
Implementations must not modify the workload schedule.
queue - The queue, non-null.workloadSchedule - The workload schedule, non-null.queueState - The queue-state, non-null.workloadEventTypes - The (pre-calculated) types of the next workload event(s).visitLogsSet - The visit logs, non-null.SimQueuePredictionException - If the result cannot be computed, e.g., due to invalid input or schedule ambiguities.WorkloadScheduleException - If the workload is invalid (e.g., containing ambiguities).WorkloadSchedule.getNextEventTimeBeyond(org.javades.jqueues.r5.entity.jq.queue.SimQueue, double, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>),
SimQueueEventPredictor.updateToTime(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState, double),
SimQueueState.setTime(double)public void doQueueEvents_SQ_SV_ROEL_U(Q queue, SimQueueState<SimJob,Q> queueState, Set<SimEntitySimpleEventType.Member> queueEventTypes, Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet) throws SimQueuePredictionException
SimQueueEventPredictor
The scheduled time and the types of the next events must be known beforehand,
e.g., through SimQueueEventPredictor.getNextQueueEventTimeBeyond(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>).
The scheduled time has already been set on the SimQueueState object,
and the object has been updated upto that time.
The time on the queue state must not be changed.
Implementations must update the queue state and (if applicable) add suitable entries to the visit logs.
queue - The queue, non-null.queueState - The queue-state, non-nullqueueEventTypes - The (pre-calculated) types of the next workload event(s).visitLogsSet - The visit logs, non-null.SimQueuePredictionException - If the result cannot be computed, e.g., due to invalid input or schedule ambiguities.SimQueueEventPredictor.getNextQueueEventTimeBeyond(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>),
SimQueueEventPredictor.updateToTime(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState, double),
SimQueueState.setTime(double)protected void dropJobs(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimJob> drops,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet)
protected void revokeJobs(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimJob> revokers,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet)
protected void startJobs(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimJob> starters,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet)
throws SimQueuePredictionException
SimQueuePredictionExceptionprotected void departJobs(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<SimJob> departers,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet)
throws SimQueuePredictionException
SimQueuePredictionExceptionprotected void checkSubQueueVisitLogsSet(double time,
Q queue,
SimQueueState<SimJob,Q> queueState,
Set<JobQueueVisitLog<SimJob,Q>> visitLogsSet,
SimQueue subQueue,
int subQueueIndex,
DefaultSimQueueState<SimJob,SimQueue> subQueueState,
Set<JobQueueVisitLog<SimJob,Q>> subQueueVisitLogsSet)
throws SimQueuePredictionException
SimQueuePredictionExceptionCopyright © 2018. All rights reserved.