Package jline.lang.nodes
Class Source
- All Implemented Interfaces:
Serializable,Copyable
An abstraction of the external world jobs in open classes come from
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Map<JobClass, DiscreteDistribution> protected List<ServiceBinding> protected MarkedMAPprotected SchedStrategyFields inherited from class jline.lang.nodes.Station
balkingStrategies, balkingThresholds, batchRejectProb, cap, classCap, dropRule, impatienceTypes, lcdScaling, lcdScalingPeak, lldScaling, numberOfServers, orbitImpatienceDistributions, patienceDistributions, retrialDelayDistributions, retrialMaxAttempts, switchoverTimesFields inherited from class jline.lang.nodes.ServiceNode
schedPolicy, schedStrategyPar, serviceProcessesFields inherited from class jline.lang.nodes.Node
dropStrategy, input, model, nodeIndex, output, server, statefulIdx, stationIdx -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleancontainsJobClass(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(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.Methods inherited from class jline.lang.nodes.Station
getBalkingStrategy, getBalkingStrategyLocal, getBalkingThresholds, getBalkingThresholdsLocal, getBatchRejectProbability, getCap, getClassCap, getDropRule, getImpatienceType, getImpatienceTypeLocal, getLimitedClassDependence, getLimitedClassDependencePeak, getLimitedLoadDependence, getMaxRetrialAttempts, getMaxRetrialAttemptsLocal, getNumberOfServers, getOrbitImpatience, getOrbitImpatienceLocal, getPatience, getPatienceLocal, getRetrialDelayDistribution, getRetrialDelayDistributionLocal, getServiceRates, getSourceRates, getStrategyParam, getSwitchoverTime, hasBalking, hasBalkingLocal, hasFiniteCap, hasOrbitImpatience, hasPatience, hasPatienceLocal, hasRetrial, hasRetrialLocal, hasSwitchoverTime, isReferenceStation, isServiceDefined, isServiceDefined, isServiceDisabled, isServiceDisabled, setBalking, setBalking, setBatchRejectProbability, setCap, setCapacity, setChainCapacity, setClassCap, setDropRule, setLimitedClassDependence, setLimitedClassDependence, setLimitedLoadDependence, setNumberOfServers, 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
getAttribute, getDropStrategy, getInput, getModel, getNodeIndex, getOutput, getOutputStrategies, getRoutingStrategy, getSections, getServer, getStatefulIdx, getStationIdx, isStateful, reset, resetRouting, setKChoicesRouting, setModel, setNodeIdx, setProbRouting, setRLRouting, setRouting, setRouting, setStationIdx
-
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.qsys.Qsys_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
-
getMarkedProcess
- Returns:
- the shared MarkedMAP bound via setMarkedArrival, or null
-
getMarkedClasses
- Returns:
- the classes bound to marks 1..K of the marked process, or null
-