Class Source
- All Implemented Interfaces:
Serializable,Cloneable,Copyable
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Map<JobClass,DiscreteDistribution> protected List<ServiceBinding>protected Distributionprotected SchedStrategyFields inherited from class jline.lang.nodes.Station
balkingStrategies, balkingThresholds, batchRejectProb, cap, classCap, dropRule, impatienceTypes, lcdScaling, lcdScalingPeak, ljdScaling, ljdScalingPeak, lldScaling, numberOfServers, orbitImpatienceDistributions, orbitMaxJobs, patienceDistributions, retrialDelayDistributions, retrialMaxAttempts, retrialPolicies, switchoverTimesFields inherited from class jline.lang.nodes.ServiceNode
schedPolicy, schedStrategyPar, serviceProcessesFields inherited from class jline.lang.nodes.Node
dropStrategy, input, model, nodeIndex, output, sdrDeclarations, server, statefulIdx, stationIdx -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidDrop the marked-arrival binding, leaving whatever per-class arrival processes are currently set.booleancontainsJobClass(JobClass jobClass) Checks if this source has an arrival process configured for the specified job class.getArrivalBatch(JobClass jobClass) getArrivalDistribution(JobClass jobClass) Gets the arrival distribution for a specific job class.final DistributiongetArrivalProcess(JobClass jobClass) Gets the arrival process distribution for a specific job class.Gets the scheduling strategy for this source node.voidPrints a summary of this node's configuration to the console.protected voidremoveArrivalProcess(JobClass jobClass) Removes the arrival process for a specific job class.voidremoveJobClass(JobClass jobClass) Removes all per-class configuration referencing the given job class from this node.voidsetArrival(JobClass jobClass, Object distribution) Sets the arrival distribution for a specific job class.voidsetArrivalBatch(JobClass jobClass, DiscreteDistribution batchSize) Sets a batch-size law for a class, turning each arrival epoch of that class into the simultaneous release of a batch of jobs.voidsetArrivalProcess(ServiceBinding arrivalProcess) Sets the arrival process using a service binding.voidsetMarkedArrival(BMMAPt bmmapt, List<JobClass> classes) Binds a BATCH marked time-inhomogeneous process with K marks to K open classes.voidsetMarkedArrival(MarkedMAP mmap, List<JobClass> classes) Binds a MarkedMAP with K marks to K open classes: mark k emits jobs of class classes.get(k-1), with all marks driven by one shared modulating chain.voidsetMarkedArrival(MMAPt mmapt, List<JobClass> classes) Binds a time-inhomogeneous marked arrival process with K marks to K open classes.voidsetMarkedArrival(MPHt mpht, List<JobClass> classes) Binds a time-inhomogeneous marked phase-type process with K marks to K open classes.Methods inherited from class jline.lang.nodes.Station
getBalkingStrategy, getBalkingStrategyLocal, getBalkingThresholds, getBalkingThresholdsLocal, getBatchRejectProbability, getCap, getClassCap, getDropRule, getImpatienceType, getImpatienceTypeLocal, getLimitedClassDependence, getLimitedClassDependencePeak, getLimitedJointDependence, getLimitedJointDependencePeak, getLimitedLoadDependence, getMaxRetrialAttempts, getMaxRetrialAttemptsLocal, getNumberOfServers, getOrbitImpatience, getOrbitImpatienceLocal, getOrbitMaxJobs, getPatience, getPatienceLocal, getRetrialDelayDistribution, getRetrialDelayDistributionLocal, getRetrialPolicy, getServiceRates, getSourceRates, getStrategyParam, getSwitchoverTime, hasBalking, hasBalkingLocal, hasFiniteCap, hasOrbitImpatience, hasPatience, hasPatienceLocal, hasRetrial, hasRetrialLocal, hasSwitchoverTime, invalidateStruct, isReferenceStation, isServiceDefined, isServiceDefined, isServiceDisabled, isServiceDisabled, setBalking, setBalking, setBatchRejectProbability, setCap, setCapacity, setChainCapacity, setClassCap, setClassCapacity, setDropRule, setLimitedClassDependence, setLimitedClassDependence, setLimitedJointDependence, setLimitedJointDependence, setLimitedLoadDependence, setNumberOfServers, setOrbit, setOrbit, setOrbit, setOrbitImpatience, setPatience, setPatience, setRetrial, setRetrial, setStrategyParam, setSwitchoverTimeMethods inherited from class jline.lang.nodes.ServiceNode
getSchedStrategyPar, getServiceProcess, setService, setServiceMethods inherited from class jline.lang.nodes.StatefulNode
clearState, getState, getStatefulIndex, getStatePrior, getStateSpace, resetStateSpace, setState, setState, setStatePrior, setStateSpaceMethods inherited from class jline.lang.nodes.Node
copy, copyElement, getAttribute, getDropStrategy, getInput, getModel, getNodeIndex, getOutput, getOutputStrategies, getRoutingStrategy, getSections, getServer, getStateDepRouting, getStatefulIdx, getStationIdx, hasClassSwitching, isStateful, isStation, link, reset, resetRouting, setModel, setNodeIdx, setProbRouting, setRouting, setRouting, setRouting, setSQRouting, setStateDepRouting, setStationIdx, summary
-
Field Details
-
arrivalProcess
-
schedStrategy
-
markedProcess
-
markedClasses
-
arrivalBatch
-
-
Constructor Details
-
Source
Creates a new source node in the specified network. Initializes arrival processes for all job classes with Disabled distribution.- Parameters:
model- the network model to add this source toname- the name for this source node
-
-
Method Details
-
containsJobClass
Checks if this source has an arrival process configured for the specified job class.- Parameters:
jobClass- the job class to check- Returns:
- true if an arrival process exists for this job class, false otherwise
-
getArrivalDistribution
Gets the arrival distribution for a specific job class.- Parameters:
jobClass- the job class to query- Returns:
- the arrival distribution, or Disabled if none configured
-
getArrivalProcess
Gets the arrival process distribution for a specific job class. This is an alias for getArrivalDistribution.- Parameters:
jobClass- the job class to query- Returns:
- the arrival distribution, or Disabled if none configured
-
getSchedStrategy
Gets the scheduling strategy for this source node. Sources always use EXT (external) scheduling strategy.- Overrides:
getSchedStrategyin classStation- Returns:
- the scheduling strategy (always SchedStrategy.EXT)
-
printSummary
public void printSummary()Description copied from class:NodePrints a summary of this node's configuration to the console.- Overrides:
printSummaryin classNode
-
removeArrivalProcess
Removes the arrival process for a specific job class.- Parameters:
jobClass- the job class whose arrival process should be removed
-
removeJobClass
Description copied from class:NodeRemoves all per-class configuration referencing the given job class from this node. The base implementation drops the class's output (routing) strategies; subclasses extend it to drop service, capacity, arrival and class-switching configuration. Called byNetwork.removeClass(jline.lang.JobClass).- Overrides:
removeJobClassin classStation- Parameters:
jobClass- the job class being removed from the model
-
setArrival
Sets the arrival distribution for a specific job class. If distribution is null or Disabled, sets class capacity to 0. If a Workflow is provided, it will be converted to a PH distribution.- Parameters:
jobClass- the job class to configuredistribution- the arrival distribution or workflow to set
-
setArrivalBatch
Sets a batch-size law for a class, turning each arrival epoch of that class into the simultaneous release of a batch of jobs.The interarrival distribution set by
setArrival(jline.lang.JobClass, java.lang.Object)continues to govern the spacing of the epochs; this governs how many jobs each epoch releases. AGeometric(a)interarrival time with aGeometric(beta)batch size is the Geo^X arrival process of a discrete-time queue, whose analytical counterpart isjline.api.dqsys.Dqsys_geoxgeo1.The batch size must be supported on {1,2,...}: an epoch that releases no job is not an arrival epoch. Batch laws are therefore rejected here if they can return zero, rather than being silently clamped.
- Parameters:
jobClass- the job class to configurebatchSize- the batch-size law, or null to restore single arrivals
-
getArrivalBatch
- Parameters:
jobClass- the job class to query- Returns:
- the batch-size law bound to the class, or null for single arrivals
-
setArrivalProcess
Sets the arrival process using a service binding. Removes any existing arrival process for the same job class.- Parameters:
arrivalProcess- the service binding defining the arrival process
-
setMarkedArrival
Binds a MarkedMAP with K marks to K open classes: mark k emits jobs of class classes.get(k-1), with all marks driven by one shared modulating chain. Mirrors MATLAB Source.setMarkedArrival.- Parameters:
mmap- the shared marked arrival process (M3A layout)classes- the K distinct open classes, ordered by mark index
-
setMarkedArrival
Binds a time-inhomogeneous marked arrival process with K marks to K open classes.Same contract as the MarkedMAP overload: mark k emits jobs of class classes.get(k-1), all marks share one modulating chain, and only the first marked class carries the arrival stream. The matrices vary with the wall clock, which changes nothing about the binding.
- Parameters:
mmapt- the shared marked scheduleclasses- the K distinct open classes, ordered by mark index
-
setMarkedArrival
Binds a time-inhomogeneous marked phase-type process with K marks to K open classes.- Parameters:
mpht- the shared marked scheduleclasses- the K distinct open classes, ordered by mark index
-
setMarkedArrival
Binds a BATCH marked time-inhomogeneous process with K marks to K open classes.Same contract as every other overload, with one addition that matters downstream: an epoch of a BMMAPt releases a BATCH, and the batch is HOMOGENEOUS in its mark, so all of its jobs enter the class bound to that mark. The batch size comes from the process itself, which is why
Source.setArrivalBatchmust not also be set on the same class: the two are mutually exclusive by construction, exactly as they are for a BMAP.- Parameters:
bmmapt- the shared batch marked scheduleclasses- the K distinct open classes, ordered by mark index
-
clearMarkedArrival
public void clearMarkedArrival()Drop the marked-arrival binding, leaving whatever per-class arrival processes are currently set.Used where a transformation replaces the shared marked stream by per-class renewal streams (MAPQN2RENV freezes each modulating phase into its own Exp), after which a struct still advertising markidx would claim a marked arrival the model no longer has.
-
getMarkedProcess
- Returns:
- the shared marked process bound via setMarkedArrival, or null. It is a MarkedMAP, an MMAPt or an MPHt.
-
getMarkedClasses
- Returns:
- the classes bound to marks 1..K of the marked process, or null
-