1classdef JLayeredNetwork < Model
2 % JLINE extended layered queueing network model.
4 % Copyright (c) 2012-2026, Imperial College London
7 properties (Access=
public)
12 methods (Access=public)
15 function self = JLayeredNetwork(name)
16 % SELF = JLAYEREDNETWORK(MODELNAME)
17 self@Model(name); % model
is the model's name
18 self.obj = jline.lang.layered.LayeredNetwork(name);
21 function lqn = getStruct(self, wantInitialState) % get arbitrary representation
23 wantInitialState = false;
25 lqn = JLINE.from_jline_layered_struct(self.obj, self.obj.getStruct(wantInitialState));
28 function E = getNumberOfLayers(self)
29 % E = GETNUMBEROFLAYERS()
30 E = self.obj.getNumberOfLayers();
33 function E = getNumberOfModels(self)
34 % E = GETNUMBEROFMODELS()
35 E = self.obj.getNumberOfModels();
38 function H = getNumberOfHosts(self)
39 % H = GETNUMBEROFHOSTS()
40 H = self.obj.getNumberOfHosts();
43 function T = getNumberOfTasks(self)
44 % T = GETNUMBEROFTASKS()
45 T = self.obj.getNumberOfTasks();
48 function E = getNumberOfEntries(self)
49 % E = GETNUMBEROFENTRIES()
50 E = self.obj.getNumberOfEntries();
53 function A = getNumberOfActivities(self)
54 % A = GETNUMBEROFACTIVITIES()
55 A = self.obj.getNumberOfActivities();
58 function ind = getNodeIndex(self, name)
60 ind = self.obj.getNodeByName(name);
62 ind = self.obj.getNodeIndex(name.obj);
66 function node = getNodeByName(self, name)
67 % NODE = GETNODEBYNAME(NAME)
69 javaNode = self.obj.getNodeByName(name);
73 % Create a wrapper MATLAB
object for the Java node
74 % We need to determine the node type and create appropriate wrapper
75 nodeClassName =
char(javaNode.getClass().getSimpleName());
78 node = Host(self,
char(javaNode.getName()));
81 node = Processor(self,
char(javaNode.getName()));
84 node = Task(self,
char(javaNode.getName()));
87 node = CacheTask(self,
char(javaNode.getName()));
90 node = FunctionTask(self,
char(javaNode.getName()));
93 node = Entry(self,
char(javaNode.getName()));
96 node = ItemEntry(self,
char(javaNode.getName()));
99 node = Activity(self,
char(javaNode.getName()));
102 % Fallback - create generic LayeredNetworkElement wrapper
103 node = LayeredNetworkElement(
char(javaNode.getName()));
110 function self = addHost(self, host)
111 % SELF = ADDHOST(HOST)
112 self.obj.addHost(host.obj);
115 function self = addTask(self, task)
116 % SELF = ADDTASK(TASK)
117 self.obj.addTask(task.obj);
120 function self = addEntry(self, entry)
121 % SELF = ADDENTRY(ENTRY)
122 self.obj.addEntry(entry.obj);
125 function self = addActivity(self, activity)
126 % SELF = ADDACTIVITY(ACTIVITY)
127 self.obj.addActivity(activity.obj);
134 function sanitize(self)
136 % Validates the LayeredNetwork configuration.
137 % Ensures that if entries are defined, activities are also defined to serve those entries.
141 function writeXML(self, filename)
143 self.obj.writeXML(filename);
150 function model = parseXML(filename)
151 % MODEL = PARSEXML(FILENAME)
152 javaModel = jline.lang.layered.LayeredNetwork.parseXML(filename);
153 model = JLayeredNetwork(
char(javaModel.getName()));
154 model.obj = javaModel;