LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
savePutStrategies.m
1function [simDoc, section] = savePutStrategies(self, simDoc, section, ind)
2% [SIMDOC, SECTION] = SAVEPUTSTRATEGIES(SIMDOC, SECTION, ind)
3
4% Copyright (c) 2012-2026, Imperial College London
5% All rights reserved.
6queuePutStrategyNode = simDoc.createElement('parameter');
7queuePutStrategyNode.setAttribute('array', 'true');
8queuePutStrategyNode.setAttribute('classPath', 'jmt.engine.NetStrategies.QueuePutStrategy');
9queuePutStrategyNode.setAttribute('name', 'QueuePutStrategy');
10
11sn = self.getStruct;
12numOfClasses = sn.nclasses;
13exportClasses = self.getExportableClasses();
14i = sn.nodeToStation(ind);
15
16for r=1:numOfClasses
17 % Skip classes that should not be exported to JMT
18 if ~exportClasses(r)
19 continue;
20 end
21
22 refClassNode2 = simDoc.createElement('refClass');
23 refClassNode2.appendChild(simDoc.createTextNode(sn.classnames{r}));
24 queuePutStrategyNode.appendChild(refClassNode2);
25 % Different to savePutStrategy.
26 switch sn.sched(i) %contrary to JMT, we assume identical across classes
27 case SchedStrategy.SIRO
28 subParameterNode2 = simDoc.createElement('subParameter');
29 subParameterNode2.setAttribute('classPath', 'jmt.engine.NetStrategies.QueuePutStrategies.RandStrategy');
30 subParameterNode2.setAttribute('name', 'RandStrategy');
31 case SchedStrategy.LCFS
32 subParameterNode2 = simDoc.createElement('subParameter');
33 subParameterNode2.setAttribute('classPath', 'jmt.engine.NetStrategies.QueuePutStrategies.HeadStrategy');
34 subParameterNode2.setAttribute('name', 'HeadStrategy');
35 otherwise % treat as FCFS - this is required for PS
36 subParameterNode2 = simDoc.createElement('subParameter');
37 subParameterNode2.setAttribute('classPath', 'jmt.engine.NetStrategies.QueuePutStrategies.TailStrategy');
38 subParameterNode2.setAttribute('name', 'TailStrategy');
39 end
40 queuePutStrategyNode.appendChild(subParameterNode2);
41 section.appendChild(queuePutStrategyNode);
42end
43end