DJ - The delegate-job type.DQ - The queue-type for delegate jobs.J - The job type.Q - The queue type for jobs.public class FB<DJ extends AbstractSimJob,DQ extends SimQueue,J extends SimJob,Q extends FB> extends AbstractFeedbackSimQueue<DJ,DQ,J,Q>
Under the hood, a delegate job for each SimJob visits the (single) embedded SimQueue,
and upon departing from that queue, the delegate job is optionally fed back to the embedded queue's input.
Feedback is controlled through a SimQueueFeedbackController, allowing maximum flexibility.
After the delegate job departs the embedded queue and is not fed back, the "real" job departs
from the FB.
This queue uses the LocalStart model as explained with AbstractSimQueueComposite_LocalStart.
See AbstractFeedbackSimQueue for more details on the interplay between
SimQueueFeedbackController and the embedded FeedbackSimQueueSelector,
and how, for instance, reset events are propagated.
Copyright (C) 2005-2017 Jan de Jongh, TNO
This file is covered by the LICENSE file in the root of this project.
AbstractFeedbackSimQueue,
FeedbackSimQueueSelector,
SimQueueFeedbackControllerAbstractSimQueueComposite.RealDelegateJobMapper<J extends SimJob,DJ extends SimJob>AbstractSimEntity.Notifier, AbstractSimEntity.PreNotificationHookSimQueue.AutoRevocationPolicySimEntity.Action, SimEntity.UnknownNotificationTypePolicy, SimEntity.UnknownOperationPolicyrealDelegateJobMappereventsScheduled, SANITYUSE_ARRAY_OPTIMIZATION| Constructor and Description |
|---|
FB(org.javades.jsimulation.r5.SimEventList eventList,
DQ queue,
SimQueueFeedbackController<J,DQ> feedbackController,
DelegateSimJobFactory delegateSimJobFactory)
Creates a feedback queue given an event list, a queue and a feedback controller.
|
| Modifier and Type | Method and Description |
|---|---|
FB<DJ,DQ,J,Q> |
getCopySimQueue()
Returns a new
FB object on the same SimEventList with a copy of of the encapsulated
queue and the same delegate-job factory. |
protected void |
resetEntitySubClass()
Calls super method (and made final).
|
String |
toStringDefault()
Returns "FB[embedded queue]".
|
getEncapsulatedQueue, getFeedbackController, getQoS, getQoSClass, processSubQueueNotificationsgetServiceTimeForJob, insertJobInQueueUponArrival, insertJobInQueueUponStart, isStartArmed, queueAccessVacationDropSubClass, removeJobFromQueueUponDeparture, removeJobFromQueueUponDrop, removeJobFromQueueUponRevokation, rescheduleAfterArrival, rescheduleAfterDeparture, rescheduleAfterDrop, rescheduleAfterRevokation, rescheduleAfterStart, rescheduleForNewServerAccessCredits, setServerAccessCreditsSubClassaddRealJobLocal, getCopySimQueues, getCopySubSimQueues, getDelegateJob, getDelegateJobMild, getDelegateSimJobFactory, getIndex, getIndex, getQueue, getQueue, getQueues, getRealJob, getRealJob, getSimQueueSelector, isDelegateJob, isRealJob, notifyResetEntity, notifyStateChanged, notifyUpdate, removeJobsFromQueueLocal, resetSimQueueSelector, selectFirstQueue, selectNextQueue, setDelegateSimJobFactoryarrive, autoRevoke, cancelDepartureEvent, cancelDepartureEvent, depart, departureFromEventList, drop, getAutoRevocationPolicy, getDepartureEvents, getDepartureEvents, getFirstJob, getFirstJobInServiceArea, getFirstJobInWaitingArea, getJobs, getJobsInServiceArea, getJobsInWaitingArea, getNumberOfJobs, getNumberOfJobsInServiceArea, getNumberOfJobsInWaitingArea, getServerAccessCredits, hasJobs, hasJobsInServiceArea, hasJobsInWaitingArea, hasServerAcccessCredits, isJob, isJobInServiceArea, isJobInWaitingArea, isQueueAccessVacation, registerStdOutSimQueueListener, revoke, revoke, scheduleDepartureEvent, scheduleJobArrival, setAutoRevocationPolicy, setQueueAccessVacation, setServerAccessCredits, start, takeServerAccessCredit, triggerPotentialNewStartArmed, unregisterStdOutSimQueueListeneraddPendingNotification, addPendingNotification, clearAndUnlockPendingNotificationsIfLocked, delegateOperation, doAfterNotifications, doOperation, fireAndLockPendingNotifications, getEventList, getLastUpdateTime, getRegisteredDelegatedOperations, getRegisteredNotificationTypes, getRegisteredOperations, getSimEntityListeners, getUnknownNotificationTypePolicy, getUnknownOperationPolicy, isIgnoreEventListReset, notifyEventListReset, registerDelegatedOperation, registerNotificationType, registerOperation, registerPreEventHook, registerPreNotificationHook, registerPreUpdateHook, registerSimEntityListener, registerStdOutSimEntityListener, removeDelegationForOperation, resetEntity, setIgnoreEventListReset, setName, setUnknownNotificationTypePolicy, setUnknownOperationPolicy, toString, unregisterSimEntityListener, unregisterStdOutSimEntityListener, updateclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitarrive, getAutoRevocationPolicy, getJobs, getJobsInServiceArea, getJobsInWaitingArea, getNumberOfJobs, getNumberOfJobsInServiceArea, getNumberOfJobsInWaitingArea, getServerAccessCredits, isJob, isJobInServiceArea, isJobInWaitingArea, isQueueAccessVacation, revoke, revoke, setAutoRevocationPolicy, setQueueAccessVacation, setServerAccessCreditsdoAfterNotifications, doOperation, getEventList, getLastUpdateTime, getRegisteredNotificationTypes, getRegisteredOperations, getSimEntityListeners, getUnknownNotificationTypePolicy, getUnknownOperationPolicy, isIgnoreEventListReset, registerSimEntityListener, resetEntity, setIgnoreEventListReset, setName, setUnknownNotificationTypePolicy, setUnknownOperationPolicy, unregisterSimEntityListener, updatepublic FB(org.javades.jsimulation.r5.SimEventList eventList,
DQ queue,
SimQueueFeedbackController<J,DQ> feedbackController,
DelegateSimJobFactory delegateSimJobFactory)
eventList - The event list to use.queue - The queue, non-null.feedbackController - The feedback controller, non-null.delegateSimJobFactory - An optional factory for the delegate SimJobs.IllegalArgumentException - If the event list, queue or feedback controller is null.DelegateSimJobFactory,
DefaultDelegateSimJobFactorypublic FB<DJ,DQ,J,Q> getCopySimQueue()
FB object on the same SimEventList with a copy of of the encapsulated
queue and the same delegate-job factory.FB object on the same SimEventList with a copy of the encapsulated
queue and the same delegate-job factory.UnsupportedOperationException - If the encapsulated queue could not be copied through SimQueue.getCopySimQueue().AbstractSimEntity.getEventList(),
AbstractFeedbackSimQueue.getEncapsulatedQueue(),
AbstractFeedbackSimQueue.getFeedbackController(),
AbstractSimQueueComposite.getDelegateSimJobFactory()public String toStringDefault()
toStringDefault in interface SimEntitytoStringDefault in class AbstractSimQueue<J extends SimJob,Q extends FB>SimEntity.setName(java.lang.String),
Object.toString()protected final void resetEntitySubClass()
Note that the SimQueueSelector of this composite queue is reset by our super class.
In turn, the selector will reset the embedded SimQueueFeedbackController.
resetEntitySubClass in class AbstractFeedbackSimQueue<DJ extends AbstractSimJob,DQ extends SimQueue,J extends SimJob,Q extends FB>AbstractSimQueueComposite_LocalStart.removeJobFromQueueUponRevokation(J, double, boolean),
AbstractSimQueueComposite_LocalStart.rescheduleAfterRevokation(J, double, boolean),
SimEntity.resetEntity()Copyright © 2018. All rights reserved.