LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
Chain.m
1classdef Chain < NetworkElement
2 % A service chain
3 %
4 % Copyright (c) 2012-2026, Imperial College London
5 % All rights reserved.
6
7 properties
9 classnames;
10 visits;
11 index; % index within model
12 completes;
13 njobs;
14 end
15
16 methods
17 %Constructor
18 function self = Chain(name)
19 % SELF = CHAIN(NAME)
20
21 self@NetworkElement(name);
22 end
23
24 function self = setName(self, name)
25 % SELF = SETNAME(NAME)
26
27 self.name = name;
28 end
29
30 function self = setVisits(self, class, v)
31 % SELF = SETVISITS(CLASS, V)
32
33 idx = self.getClass(class.name);
34 self.visits{idx} = v;
35 end
36
37 function self = addClass(self, class, v, index)
38 % SELF = ADDCLASS(CLASS, V, INDEX)
39
40 if nargin<3%~exist('v','var')
41 v = [];
42 end
43 idx = self.getClass(class.name);
44 if idx>0
45 self.classes{idx} = class;
46 self.classnames{idx} = class.name;
47 self.visits{idx} = v;
48 self.index{idx} = index;
49 self.completes{idx} = class.completes;
50 else
51 self.classes{end+1} = class;
52 self.classnames{end+1} = class.name;
53 self.visits{end+1} = v;
54 self.index{end+1} = index;
55 self.completes{end+1} = class.completes;
56 end
57 end
58
59 function bool = hasClass(self, className)
60 % BOOL = HASCLASS(CLASSNAME)
61
62 bool = true;
63 if getClass(self, className) == -1
64 bool = false;
65 end
66 end
67
68 function idx = getClass(self, className)
69 % IDX = GETCLASS(CLASSNAME)
70
71 idx = -1;
72 if ~isempty(self.classes)
73 idx = find(cellfun(@(c) strcmpi(c.name,className), self.classes));
74 if isempty(idx)
75 idx = -1;
76 end
77 end
78 end
79
80 end
81
82end