LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
Sink.m
1classdef Sink < Node
2 % External job departure node for open queueing networks
3 %
4 % Represents network exit point where jobs are removed from open classes.
5 %
6 % Copyright (c) 2012-2026, Imperial College London
7 % All rights reserved.
8
9 properties
10 schedStrategy;
11 end
12
13 methods
14 %Constructor
15 function self = Sink(model, name)
16 % SINK Create an external departure sink node
17 %
18 % @brief Creates a Sink node for external job removal
19 % @param model Network model to add the sink node to
20 % @param name String identifier for the sink node
21 % @return self Sink instance ready for job absorption
22
23 self@Node(name);
24 if model.isMatlabNative()
25 if model ~= 0
26 self.input = '';
27 self.output = '';
28 self.server = Section('JobSink');
29 self.setModel(model);
30 self.model.addNode(self);
31 self.schedStrategy = SchedStrategy.EXT;
32 if length(model.getClasses())>1 % if Sink created after some closed classes
33 for r=1:model.getNumberOfClasses
34 classes = model.getClasses();
35 self.setRouting(classes{r},RoutingStrategy.DISABLED);
36 end
37 end
38 end
39 elseif model.isJavaNative()
40 self.setModel(model);
41 self.obj=jline.lang.nodes.Sink(model.obj, name);
42 end
43
44 end
45
46 function sections = getSections(self)
47 % SECTIONS = GETSECTIONS()
48
49 sections = {'', self.server, ''};
50 end
51
52 end
53
54 methods(Access = protected)
55 % Override copyElement method:
56 function clone = copyElement(self)
57 % CLONE = COPYELEMENT()
58
59 % Make a shallow copy of all properties
60 clone = copyElement@Copyable(self);
61 % Make a deep copy of each object
62 clone.input = self.input;
63 clone.server = self.server.copy;
64 clone.output = self.output;
65 end
66
67 end
68
69end