1function self = removeClass(self,
jobclass)
2% SELF = REMOVECLASS(SELF, CLASS)
4% Remove the specified CLASS from the model
7 if self.classes{1}.name ==
jobclass.name
8 line_error(mfilename,
'The network has a single class, it cannot be removed from the model.');
13 nClasses = length(self.classes);
14 r = self.getClassByName(
jobclass.name).index; %
class to remove
15 remaining = setdiff(1:nClasses, r);
17 % check with SEPT/LEPT
18 for i=1:length(self.nodes)
19 switch class(self.
nodes{i})
20 case {
'Delay',
'DelayStation',
'Queue'}
21 self.nodes{i}.schedStrategyPar = self.nodes{i}.schedStrategyPar(remaining);
22 self.nodes{i}.serviceProcess = self.nodes{i}.serviceProcess(remaining);
23 self.nodes{i}.classCap = self.nodes{i}.classCap(remaining);
24 self.nodes{i}.server.serviceProcess = self.nodes{i}.server.serviceProcess(remaining);
25 self.nodes{i}.output.outputStrategy = self.nodes{i}.output.outputStrategy(remaining);
27 self.nodes{i}.server.updateClassSwitch(self.nodes{i}.server.csFun(remaining,remaining));
28 self.nodes{i}.output.outputStrategy = self.nodes{i}.output.outputStrategy(remaining);
30 line_error(mfilename,
'Cannot dynamically remove classes in models with caches. You need to re-instantiate the model.');
32 self.nodes{i}.arrivalProcess = self.nodes{i}.arrivalProcess(remaining);
33 self.nodes{i}.classCap = self.nodes{i}.classCap(remaining);
34 self.nodes{i}.input.sourceClasses = self.nodes{i}.input.sourceClasses(remaining);
35 %self.nodes{i}.server.serviceProcess = self.nodes{i}.server.serviceProcess(remaining);
36 self.nodes{i}.output.outputStrategy = self.nodes{i}.output.outputStrategy(remaining);
38 self.nodes{i}.output.outputStrategy = self.nodes{i}.output.outputStrategy(remaining);
41 self.classes = self.classes(remaining);
42 self.reset(
true); % require a complete re-initialization including state