diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/SimpleServerDis7Assembly.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/SimpleServerDis7Assembly.xml index e8bee49d22ef6f7f0a4f4f60c5405e64abe88580..ec741b4e3d9e5348b3bb3ca210d5fd7866aef1ac 100644 --- a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/SimpleServerDis7Assembly.xml +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/SimpleServerDis7Assembly.xml @@ -38,5 +38,5 @@ <PropertyChangeListenerConnection property="numberServed" listener="numServedStat" source="simpleServer" description=""/> <Output entity="arrivalProcessOpenDis7"/> <Output entity="simpleServer"/> - <Schedule stopTime="100000.0" verbose="false" saveReplicationData="false"/> -</SimkitAssembly> \ No newline at end of file + <Schedule stopTime="100.0" verbose="false" saveReplicationData="false"/> +</SimkitAssembly> diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml index 54be5a93d6e8dd687c2998dae882ab8f3607b2b5..da0c655964347f6f4a808577de7dad9bacd7519b 100644 --- a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml @@ -48,9 +48,15 @@ if ((N % everyTen) == 0) { firePropertyChange("R", oldR, R+1); } else { disChannel.addEntity(entityStatePdu_1.getEntityID()); + Random random = new Random(); + int randX = random.nextInt(10); + int randY = random.nextInt(10); + entityStatePdu_1.getEntityLocation().setX(randX); + entityStatePdu_1.getEntityLocation().setY(randY); + System.out.println("New entity created at: "+randX+" "+randY); firePropertyChange("C", oldC, C+1); }</Code> - <Coordinate x="270.0" y="50.0"/> + <Coordinate x="280.0" y="60.0"/> </Event> <Code></Code> </SimEntity> diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml index 3af224191577a983e0365b2123b938732da52e8e..7d7a523510b1021cf5364b02989dcf0816f56726 100644 --- a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml @@ -11,7 +11,7 @@ <StateTransition state="numberAvailableServers"> <Assignment value="totalNumberServers"/> </StateTransition> - <Coordinate x="20.0" y="30.0"/> + <Coordinate x="30.0" y="20.0"/> </Event> <Event name="Arrival"> <StateTransition state="numberInQueue"> diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/ArrivalProcessOpenDis7.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/ArrivalProcessOpenDis7.class new file mode 100644 index 0000000000000000000000000000000000000000..85cc78beccad52cd65e0192a1af5eccb57205f17 Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/ArrivalProcessOpenDis7.class differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServer.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServer.class deleted file mode 100644 index c41ce06056b3119b15c53eda820beaae2193b9f6..0000000000000000000000000000000000000000 Binary files a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServer.class and /dev/null differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServerDis7Assembly.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServerDis7Assembly.class new file mode 100644 index 0000000000000000000000000000000000000000..aac771c5058733310ba3b8ffd21551cfcc6104b3 Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServerDis7Assembly.class differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/ArrivalProcessOpenDis7.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/ArrivalProcessOpenDis7.java index 9a7dc529eb783fb1670e862bcabe1b2b6b248513..af9ae52ae70ea8921fdfab02c79f0bb077cc8eaf 100644 --- a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/ArrivalProcessOpenDis7.java +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/ArrivalProcessOpenDis7.java @@ -75,6 +75,12 @@ public class ArrivalProcessOpenDis7 extends SimkitOpenDis7Examples.run.OpenDisHe firePropertyChange("R", oldR, R+1); } else { disChannel.addEntity(entityStatePdu_1.getEntityID()); + Random random = new Random(); + int randX = random.nextInt(10); + int randY = random.nextInt(10); + entityStatePdu_1.getEntityLocation().setX(randX); + entityStatePdu_1.getEntityLocation().setY(randY); + System.out.println("New entity created at: "+randX+" "+randY); firePropertyChange("C", oldC, C+1); } /* End Code insertion */ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServerDis7Assembly.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServerDis7Assembly.java index 6ee77507af96bf9d5ddb2cc1156677dae707a897..4647c87338d5049f5898d9dfff9fb10721ccce79 100644 --- a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServerDis7Assembly.java +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServerDis7Assembly.java @@ -4,7 +4,7 @@ public class SimpleServerDis7Assembly extends viskit.assembly.ViskitAssembly { public SimpleServerDis7Assembly() { super(); - setStopTime(100000.0); + setStopTime(100.0); setVerbose(false); setNumberReplications(1); setPrintReplicationReports(true); diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/lib/Networked_Graphics_MV3500_examples.jar b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/lib/Networked_Graphics_MV3500_examples.jar new file mode 100644 index 0000000000000000000000000000000000000000..38f7fc7f12ced3aaf7ff1fce99911a79170af0f1 Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/lib/Networked_Graphics_MV3500_examples.jar differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/viskitProject.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/viskitProject.xml index 27d7970fdf1cec7807f39e0da72b548b18fc6584..bdba2091829657700c9086a896483415f0923184 100644 --- a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/viskitProject.xml +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/viskitProject.xml @@ -10,9 +10,13 @@ <DistDirectory name="dist" /> <LibDirectory name="lib" /> <Project name="BavlsikViskitOpenDis7" /> + <extraClassPaths> + <path value="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/lib/Networked_Graphics_MV3500_examples.jar" /> + </extraClassPaths> <Cached> - <EventGraphs xml="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml" /> - <EventGraphs class="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServer.class" digest="-679a97428288e5d644ede38d9ac1dfaa" xml="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml" /> + <EventGraphs xml="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml" /> + <EventGraphs class="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/ArrivalProcessOpenDis7.class" /> + <EventGraphs digest="113303b4ce28074ab6ce2e9dc7064d99" /> </Cached> </ViskitProject> diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject.zip b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject.zip new file mode 100644 index 0000000000000000000000000000000000000000..e2add3454d15bcca8457489ddc78a17d94aa0b74 Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject.zip differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/AnalystReports/Viskit.ico b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/AnalystReports/Viskit.ico new file mode 100644 index 0000000000000000000000000000000000000000..c9d5908c91e327600695feac75e406ee99fbb30a Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/AnalystReports/Viskit.ico differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/Assemblies/examples/TestAssembly.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/Assemblies/examples/TestAssembly.xml new file mode 100644 index 0000000000000000000000000000000000000000..670bf5e342254d05e495b69bf1f3157b7649b7e6 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/Assemblies/examples/TestAssembly.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<SimkitAssembly name="TestAssembly" version="1.0" package="examples" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/assembly.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <SimEntity name="arrivalProcess" type="examples.ArrivalProcess" description=""> + <FactoryParameter factory="simkit.random.RandomVariateFactory" type="simkit.random.RandomVariate"> + <TerminalParameter name="" value="Exponential" type="java.lang.String"/> + <TerminalParameter name="" value="1.6" type="double"/> + </FactoryParameter> + <Coordinate x="120.0" y="190.0"/> + </SimEntity> + <SimEntity name="twoTypeServer" type="examples.TwoTypeServer" description=""> + <TerminalParameter name="numberServersA" value="1" type="int"/> + <TerminalParameter name="numberServersB" value="2" type="int"/> + <FactoryParameter factory="simkit.random.RandomVariateFactory" type="simkit.random.RandomVariate"> + <TerminalParameter name="" value="Exponential" type="java.lang.String"/> + <TerminalParameter name="" value="0.9" type="double"/> + </FactoryParameter> + <FactoryParameter factory="simkit.random.RandomVariateFactory" type="simkit.random.RandomVariate"> + <TerminalParameter name="" value="Exponential" type="java.lang.String"/> + <TerminalParameter name="" value="1.2" type="double"/> + </FactoryParameter> + <Coordinate x="360.0" y="190.0"/> + </SimEntity> + <PropertyChangeListener name="numAvailServerAStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="false" countStatistics="true" description=""> + <TerminalParameter name="p[0] : " value="numberAvailableServersA" type="java.lang.String"/> + <Coordinate x="360.0" y="290.0"/> + </PropertyChangeListener> + <PropertyChangeListener name="queueStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="false" countStatistics="true" description=""> + <TerminalParameter name="p[0] : " value="queue" type="java.lang.String"/> + <Coordinate x="510.0" y="190.0"/> + </PropertyChangeListener> + <PropertyChangeListener name="numAvailServerBStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="false" countStatistics="true" description=""> + <TerminalParameter name="p[0] : " value="numberAvailableServersB" type="java.lang.String"/> + <Coordinate x="360.0" y="80.0"/> + </PropertyChangeListener> + <PropertyChangeListenerConnection property="numberAvailableServersA" listener="numAvailServerAStat" source="twoTypeServer" description=""/> + <PropertyChangeListenerConnection property="queue" listener="queueStat" source="twoTypeServer" description=""/> + <PropertyChangeListenerConnection property="numberAvailableServersB" listener="numAvailServerBStat" source="twoTypeServer" description=""/> + <Adapter name="adptr" eventHeard="Arrival" eventSent="Arrival" from="arrivalProcess" to="twoTypeServer" description=""/> + <Output entity="arrivalProcess"/> + <Output entity="twoTypeServer"/> + <Schedule stopTime="100.0" verbose="false" saveReplicationData="false"/> +</SimkitAssembly> diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcess.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcess.xml new file mode 100644 index 0000000000000000000000000000000000000000..b22b9b36c0fdb2384cfb496f7a1e2a04862530f6 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcess.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<SimEntity name="ArrivalProcess" package="examples" version="1.0" author="advan" extend="SimEntityBase" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/simkit.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <Parameter name="interarrivalTime" type="simkit.random.RandomVariate"> + <Comment></Comment> + </Parameter> + <StateVariable name="numberArrivals" type="int"> + <Comment></Comment> + </StateVariable> + <Event name="Run" description="This event is fired first to facilitate initialization of all simulation state variables"> + <Schedule delay="interarrivalTime.generate()" event="Arrival" priority="DEFAULT"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="30.0" y="60.0"/> + </Event> + <Event name="Arrival"> + <Comment></Comment> + <StateTransition state="numberArrivals"> + <Assignment value="numberArrivals + 1"/> + </StateTransition> + <Schedule delay="interarrivalTime.generate()" event="Arrival" priority="DEFAULT"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="230.0" y="60.0"/> + </Event> +</SimEntity> diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcessTwo.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcessTwo.xml new file mode 100644 index 0000000000000000000000000000000000000000..b22b9b36c0fdb2384cfb496f7a1e2a04862530f6 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcessTwo.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<SimEntity name="ArrivalProcess" package="examples" version="1.0" author="advan" extend="SimEntityBase" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/simkit.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <Parameter name="interarrivalTime" type="simkit.random.RandomVariate"> + <Comment></Comment> + </Parameter> + <StateVariable name="numberArrivals" type="int"> + <Comment></Comment> + </StateVariable> + <Event name="Run" description="This event is fired first to facilitate initialization of all simulation state variables"> + <Schedule delay="interarrivalTime.generate()" event="Arrival" priority="DEFAULT"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="30.0" y="60.0"/> + </Event> + <Event name="Arrival"> + <Comment></Comment> + <StateTransition state="numberArrivals"> + <Assignment value="numberArrivals + 1"/> + </StateTransition> + <Schedule delay="interarrivalTime.generate()" event="Arrival" priority="DEFAULT"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="230.0" y="60.0"/> + </Event> +</SimEntity> diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/TwoTypeServer.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/TwoTypeServer.xml new file mode 100644 index 0000000000000000000000000000000000000000..e17ab0cc4d8503c444a571328c8ee36549d75c80 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/TwoTypeServer.xml @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<SimEntity name="TwoTypeServer" package="examples" version="1.0" author="advan" extend="SimEntityBase" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/simkit.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <Parameter name="numberServersA" type="int"> + <Comment></Comment> + </Parameter> + <Parameter name="numberServersB" type="int"> + <Comment></Comment> + </Parameter> + <Parameter name="serviceTimeA" type="simkit.random.RandomVariate"> + <Comment></Comment> + </Parameter> + <Parameter name="serviceTimeB" type="simkit.random.RandomVariate"> + <Comment></Comment> + </Parameter> + <StateVariable name="numberAvailableServersA" type="int"> + <Comment></Comment> + </StateVariable> + <StateVariable name="numberAvailableServersB" type="int"> + <Comment></Comment> + </StateVariable> + <StateVariable name="queue" type="int"> + <Comment></Comment> + </StateVariable> + <Event name="Run" description="This event is fired first to facilitate initialization of all simulation state variables"> + <Comment></Comment> + <StateTransition state="numberAvailableServersA"> + <Assignment value="getNumberServersA()"/> + </StateTransition> + <StateTransition state="numberAvailableServersB"> + <Assignment value="getNumberServersB()"/> + </StateTransition> + <StateTransition state="queue"> + <Assignment value="0"/> + </StateTransition> + <Code></Code> + <Coordinate x="40.0" y="60.0"/> + </Event> + <Event name="Arrival"> + <Comment></Comment> + <StateTransition state="queue"> + <Assignment value="queue + 1"/> + </StateTransition> + <Schedule delay="0.0" event="StartServiceA" condition="getNumberAvailableServersA() > 0" priority="DEFAULT"> + <Comment></Comment> + </Schedule> + <Schedule delay="0.0" event="StartServiceB" condition="getNumberAvailableServersA() == 0 && getNumberAvailableServersB() > 0" priority="DEFAULT"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="40.0" y="180.0"/> + </Event> + <Event name="StartServiceA"> + <Comment></Comment> + <StateTransition state="numberAvailableServersA"> + <Assignment value="numberAvailableServersA - 1"/> + </StateTransition> + <StateTransition state="queue"> + <Assignment value="queue - 1"/> + </StateTransition> + <Schedule delay="serviceTimeA.generate()" event="EndServiceA" priority="DEFAULT"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="180.0" y="100.0"/> + </Event> + <Event name="StartServiceB"> + <Comment></Comment> + <StateTransition state="numberAvailableServersB"> + <Assignment value="numberAvailableServersB - 1"/> + </StateTransition> + <StateTransition state="queue"> + <Assignment value="queue - 1"/> + </StateTransition> + <Schedule delay="serviceTimeB.generate()" event="EndServiceB" priority="DEFAULT"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="180.0" y="260.0"/> + </Event> + <Event name="EndServiceA"> + <Comment></Comment> + <StateTransition state="numberAvailableServersA"> + <Assignment value="numberAvailableServersA + 1"/> + </StateTransition> + <Schedule delay="0.0" event="StartServiceA" condition="queue > 0" priority="HIGH"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="350.0" y="100.0"/> + </Event> + <Event name="EndServiceB"> + <Comment></Comment> + <StateTransition state="numberAvailableServersB"> + <Assignment value="numberAvailableServersB + 1"/> + </StateTransition> + <Schedule delay="0.0" event="StartServiceB" condition="queue > 0" priority="HIGH"> + <Comment></Comment> + </Schedule> + <Code></Code> + <Coordinate x="350.0" y="260.0"/> + </Event> +</SimEntity> diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/ArrivalProcess.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/ArrivalProcess.class new file mode 100644 index 0000000000000000000000000000000000000000..9ae9ff1c1968f2c75a16bcf3f92168383699f3f3 Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/ArrivalProcess.class differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/EntityCreator.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/EntityCreator.class new file mode 100644 index 0000000000000000000000000000000000000000..223b0d32e9af9d75e3599736e4c729b051a3bb1f Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/EntityCreator.class differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/ServerGeneric.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/ServerGeneric.class new file mode 100644 index 0000000000000000000000000000000000000000..d18e66dbc7c39b9ae85af6d3249268a450b4156b Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/ServerGeneric.class differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TestAssembly.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TestAssembly.class new file mode 100644 index 0000000000000000000000000000000000000000..1f69eea93b9c735d4496bb4a13bf8a50cc5ebbdd Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TestAssembly.class differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServer.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServer.class new file mode 100644 index 0000000000000000000000000000000000000000..32f3485bc9e6513c0d997c15cd18decc559504cb Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServer.class differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServerAssembly.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServerAssembly.class new file mode 100644 index 0000000000000000000000000000000000000000..891976c4198510717712fc7952b01b4c56cc07cd Binary files /dev/null and b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServerAssembly.class differ diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/ArrivalProcess.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/ArrivalProcess.java new file mode 100644 index 0000000000000000000000000000000000000000..e581c58add42865e05f6c076f206ac1cebcfd8a2 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/ArrivalProcess.java @@ -0,0 +1,72 @@ +package examples; + +// Standard library imports +import java.util.*; + +// Application specific imports +import simkit.*; +import simkit.random.*; + +public class ArrivalProcess extends SimEntityBase { + + /* Simulation Parameters */ + + /** */ + private simkit.random.RandomVariate interarrivalTime; + + /* Simulation State Variables */ + + /** */ + protected int numberArrivals; + + @viskit.ParameterMap ( + names = {"interarrivalTime"}, + types = {"simkit.random.RandomVariate"} + ) + + /** Creates a new default instance of ArrivalProcess */ + public ArrivalProcess() { + } + + public ArrivalProcess(simkit.random.RandomVariate interarrivalTime) { + setInterarrivalTime(interarrivalTime); + } + + @Override + public void reset() { + super.reset(); + } + + /** Bootstraps the first simulation event */ + public void doRun() { + + waitDelay("Arrival", interarrivalTime.generate(), Priority.DEFAULT); + } + + public void doArrival() { + + /* StateTransition for numberArrivals */ + int _old_NumberArrivals = getNumberArrivals(); + numberArrivals = numberArrivals + 1; + firePropertyChange("numberArrivals", _old_NumberArrivals, getNumberArrivals()); + + waitDelay("Arrival", interarrivalTime.generate(), Priority.DEFAULT); + } + + public final void setInterarrivalTime(simkit.random.RandomVariate interarrivalTime) { + this.interarrivalTime = interarrivalTime; + } + + public simkit.random.RandomVariate getInterarrivalTime() { + return interarrivalTime; + } + + public int getNumberArrivals() { + return numberArrivals; + } + + @Override + public String toString() { + return getName(); + } +} diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/EntityCreator.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/EntityCreator.java new file mode 100644 index 0000000000000000000000000000000000000000..72fac7aaf60500597af6fa0d40c54d2b7d36b05b --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/EntityCreator.java @@ -0,0 +1,42 @@ +package examples; + +// Standard library imports +import java.util.*; + +// Application specific imports +import simkit.*; +import simkit.random.*; + +public class EntityCreator extends SimEntityBase { + + /* Simulation Parameters */ + + /* None */ + + /* Simulation State Variables */ + + /* None */ + + @viskit.ParameterMap ( + names = {}, + types = {} + ) + + /** Creates a new default instance of EntityCreator */ + public EntityCreator() { + } + + public void doArrival() { + + waitDelay("EntityArrival", 0.0, Priority.DEFAULT, (Object) new simkit.Entity()); + } + + public void doEntityArrival(simkit.Entity customer) { + + } + + @Override + public String toString() { + return getName(); + } +} diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/ServerGeneric.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/ServerGeneric.java new file mode 100644 index 0000000000000000000000000000000000000000..294206dc6983676231769ffe4e07ad375dd9c353 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/ServerGeneric.java @@ -0,0 +1,160 @@ +package examples; + +// Standard library imports +import java.util.*; + +// Application specific imports +import simkit.*; +import simkit.random.*; + +public class ServerGeneric extends SimEntityBase { + + /* Simulation Parameters */ + + /** */ + private int totalNumberServers; + + /** */ + private simkit.random.RandomVariate serviceTimeGenerator; + + /* Simulation State Variables */ + + /** */ + protected int numberAvailableServers; + + /** */ + protected java.util.LinkedList<simkit.Entity> queue = new java.util.LinkedList<>(); + + /** */ + protected double delayInQueue; + + /** */ + protected double timeInSystem; + + @viskit.ParameterMap ( + names = {"totalNumberServers", + "serviceTimeGenerator"}, + types = {"int", + "simkit.random.RandomVariate"} + ) + + /** Creates a new default instance of ServerGeneric */ + public ServerGeneric() { + } + + public ServerGeneric(int totalNumberServers, + simkit.random.RandomVariate serviceTimeGenerator) { + setTotalNumberServers(totalNumberServers); + setServiceTimeGenerator(serviceTimeGenerator); + } + + @Override + public void reset() { + super.reset(); + numberAvailableServers = totalNumberServers; + queue = new java.util.LinkedList<simkit.Entity>(); + } + + /** Bootstraps the first simulation event */ + public void doRun() { + + firePropertyChange("numberAvailableServers", getNumberAvailableServers()); + firePropertyChange("queue", getQueue()); + + } + + public void doArrival(simkit.Entity customer) { + + /* Code insertion for Event Arrival */ + customer.stampTime(); + /* End Code insertion */ + + /* StateTransition for queue */ + java.util.LinkedList<simkit.Entity> _old_Queue = getQueue(); + queue.add(customer); + firePropertyChange("queue", _old_Queue, getQueue()); + + if (numberAvailableServers > 0) { + waitDelay("StartService", 0.0, Priority.HIGH); + } + } + + public void doStartService() { + + /* Code insertion for Event StartService */ + Entity customer = queue.getFirst(); + /* End Code insertion */ + + /* StateTransition for numberAvailableServers */ + int _old_NumberAvailableServers = getNumberAvailableServers(); + numberAvailableServers = numberAvailableServers - 1; + firePropertyChange("numberAvailableServers", _old_NumberAvailableServers, getNumberAvailableServers()); + + /* StateTransition for queue */ + java.util.LinkedList<simkit.Entity> _old_Queue = getQueue(); + queue.removeFirst(); + firePropertyChange("queue", _old_Queue, getQueue()); + + /* StateTransition for delayInQueue */ + double _old_DelayInQueue = getDelayInQueue(); + delayInQueue = customer.getElapsedTime(); + firePropertyChange("delayInQueue", _old_DelayInQueue, getDelayInQueue()); + + waitDelay("EndService", serviceTimeGenerator.generate(), Priority.DEFAULT, (Object) customer); + } + + public void doEndService(simkit.Entity customer) { + + /* StateTransition for numberAvailableServers */ + int _old_NumberAvailableServers = getNumberAvailableServers(); + numberAvailableServers = numberAvailableServers + 1; + firePropertyChange("numberAvailableServers", _old_NumberAvailableServers, getNumberAvailableServers()); + + /* StateTransition for timeInSystem */ + double _old_TimeInSystem = getTimeInSystem(); + timeInSystem = customer.getElapsedTime(); + firePropertyChange("timeInSystem", _old_TimeInSystem, getTimeInSystem()); + + if (queue.size() > 0) { + waitDelay("StartService", 0.0, Priority.HIGH); + } + } + + public final void setTotalNumberServers(int totalNumberServers) { + this.totalNumberServers = totalNumberServers; + } + + public int getTotalNumberServers() { + return totalNumberServers; + } + + public final void setServiceTimeGenerator(simkit.random.RandomVariate serviceTimeGenerator) { + this.serviceTimeGenerator = serviceTimeGenerator; + } + + public simkit.random.RandomVariate getServiceTimeGenerator() { + return serviceTimeGenerator; + } + + public int getNumberAvailableServers() { + return numberAvailableServers; + } + + @SuppressWarnings("unchecked") + public java.util.LinkedList<simkit.Entity> getQueue() { + return (java.util.LinkedList<simkit.Entity>) queue.clone(); + } + + public double getDelayInQueue() { + return delayInQueue; + } + + public double getTimeInSystem() { + return timeInSystem; + } + + @Override + public String toString() { + return getName(); + } +} diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TestAssembly.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TestAssembly.java new file mode 100644 index 0000000000000000000000000000000000000000..17f6b479833267663c4879963f18cf504f27c4e8 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TestAssembly.java @@ -0,0 +1,106 @@ +package examples; + +public class TestAssembly extends viskit.assembly.ViskitAssembly { + + public TestAssembly() { + super(); + setStopTime(100.0); + setVerbose(false); + setNumberReplications(1); + setPrintReplicationReports(true); + setPrintSummaryReport(true); + setSaveReplicationData(false); + } + + @Override + protected void createSimEntities() { + + addSimEntity( "arrivalProcess", + new examples.ArrivalProcess( + simkit.random.RandomVariateFactory.getInstance( + "Exponential", + 1.6 + ) + ) + ); + + addSimEntity( "twoTypeServer", + new examples.TwoTypeServer( + 1, + 2, + simkit.random.RandomVariateFactory.getInstance( + "Exponential", + 0.9 + ), + simkit.random.RandomVariateFactory.getInstance( + "Exponential", + 1.2 + ) + ) + ); + + addAdapter("adptr", "Arrival", "Arrival", "arrivalProcess", "twoTypeServer"); + + super.createSimEntities(); + } + + @Override + public void createPropertyChangeListeners() { + addPropertyChangeListenerConnection("numAvailServerAStat", "numberAvailableServersA", "twoTypeServer"); + + addPropertyChangeListenerConnection("queueStat", "queue", "twoTypeServer"); + + addPropertyChangeListenerConnection("numAvailServerBStat", "numberAvailableServersB", "twoTypeServer"); + + super.createPropertyChangeListeners(); + } + + @Override + public void createReplicationStats() { + addReplicationStats("numAvailServerAStat", + new simkit.stat.SimpleStatsTimeVarying( + "numberAvailableServersA" + ) + ); + + addReplicationStatsListenerConnection("numAvailServerAStat", "numberAvailableServersA", "twoTypeServer"); + + addReplicationStats("queueStat", + new simkit.stat.SimpleStatsTimeVarying( + "queue" + ) + ); + + addReplicationStatsListenerConnection("queueStat", "queue", "twoTypeServer"); + + addReplicationStats("numAvailServerBStat", + new simkit.stat.SimpleStatsTimeVarying( + "numberAvailableServersB" + ) + ); + + addReplicationStatsListenerConnection("numAvailServerBStat", "numberAvailableServersB", "twoTypeServer"); + + super.createReplicationStats(); + } + + @Override + public void createDesignPointStats() { + super.createDesignPointStats(); + } + + @Override + public void printInfo() { + System.out.println(); + System.out.println("Entity Details"); + System.out.println("--------------"); + System.out.println(getSimEntityByName("arrivalProcess")); + System.out.println(getSimEntityByName("twoTypeServer")); + System.out.println("--------------"); + } + + public static void main(String[] args) { + TestAssembly testAssembly = new TestAssembly(); + new Thread(testAssembly).start(); + } +} diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TwoTypeServer.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TwoTypeServer.java new file mode 100644 index 0000000000000000000000000000000000000000..b0465276cef6b56f2fe773c019d77b1304ba6263 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TwoTypeServer.java @@ -0,0 +1,196 @@ +package examples; + +// Standard library imports +import java.util.*; + +// Application specific imports +import simkit.*; +import simkit.random.*; + +public class TwoTypeServer extends SimEntityBase { + + /* Simulation Parameters */ + + /** */ + private int numberServersA; + + /** */ + private int numberServersB; + + /** */ + private simkit.random.RandomVariate serviceTimeA; + + /** */ + private simkit.random.RandomVariate serviceTimeB; + + /* Simulation State Variables */ + + /** */ + protected int numberAvailableServersA; + + /** */ + protected int numberAvailableServersB; + + /** */ + protected int queue; + + @viskit.ParameterMap ( + names = {"numberServersA", + "numberServersB", + "serviceTimeA", + "serviceTimeB"}, + types = {"int", + "int", + "simkit.random.RandomVariate", + "simkit.random.RandomVariate"} + ) + + /** Creates a new default instance of TwoTypeServer */ + public TwoTypeServer() { + } + + public TwoTypeServer(int numberServersA, + int numberServersB, + simkit.random.RandomVariate serviceTimeA, + simkit.random.RandomVariate serviceTimeB) { + setNumberServersA(numberServersA); + setNumberServersB(numberServersB); + setServiceTimeA(serviceTimeA); + setServiceTimeB(serviceTimeB); + } + + @Override + public void reset() { + super.reset(); + numberAvailableServersA = getNumberServersA(); + numberAvailableServersB = getNumberServersB(); + queue = 0; + } + + /** Bootstraps the first simulation event */ + public void doRun() { + + firePropertyChange("numberAvailableServersA", getNumberAvailableServersA()); + firePropertyChange("numberAvailableServersB", getNumberAvailableServersB()); + firePropertyChange("queue", getQueue()); + + } + + public void doArrival() { + + /* StateTransition for queue */ + int _old_Queue = getQueue(); + queue = queue + 1; + firePropertyChange("queue", _old_Queue, getQueue()); + + if (getNumberAvailableServersA() > 0) { + waitDelay("StartServiceA", 0.0, Priority.DEFAULT); + } + if (getNumberAvailableServersA() == 0 && getNumberAvailableServersB() > 0) { + waitDelay("StartServiceB", 0.0, Priority.DEFAULT); + } + } + + public void doStartServiceA() { + + /* StateTransition for numberAvailableServersA */ + int _old_NumberAvailableServersA = getNumberAvailableServersA(); + numberAvailableServersA = numberAvailableServersA - 1; + firePropertyChange("numberAvailableServersA", _old_NumberAvailableServersA, getNumberAvailableServersA()); + + /* StateTransition for queue */ + int _old_Queue = getQueue(); + queue = queue - 1; + firePropertyChange("queue", _old_Queue, getQueue()); + + waitDelay("EndServiceA", serviceTimeA.generate(), Priority.DEFAULT); + } + + public void doStartServiceB() { + + /* StateTransition for numberAvailableServersB */ + int _old_NumberAvailableServersB = getNumberAvailableServersB(); + numberAvailableServersB = numberAvailableServersB - 1; + firePropertyChange("numberAvailableServersB", _old_NumberAvailableServersB, getNumberAvailableServersB()); + + /* StateTransition for queue */ + int _old_Queue = getQueue(); + queue = queue - 1; + firePropertyChange("queue", _old_Queue, getQueue()); + + waitDelay("EndServiceB", serviceTimeB.generate(), Priority.DEFAULT); + } + + public void doEndServiceA() { + + /* StateTransition for numberAvailableServersA */ + int _old_NumberAvailableServersA = getNumberAvailableServersA(); + numberAvailableServersA = numberAvailableServersA + 1; + firePropertyChange("numberAvailableServersA", _old_NumberAvailableServersA, getNumberAvailableServersA()); + + if (queue > 0) { + waitDelay("StartServiceA", 0.0, Priority.HIGH); + } + } + + public void doEndServiceB() { + + /* StateTransition for numberAvailableServersB */ + int _old_NumberAvailableServersB = getNumberAvailableServersB(); + numberAvailableServersB = numberAvailableServersB + 1; + firePropertyChange("numberAvailableServersB", _old_NumberAvailableServersB, getNumberAvailableServersB()); + + if (queue > 0) { + waitDelay("StartServiceB", 0.0, Priority.HIGH); + } + } + + public final void setNumberServersA(int numberServersA) { + this.numberServersA = numberServersA; + } + + public int getNumberServersA() { + return numberServersA; + } + + public final void setNumberServersB(int numberServersB) { + this.numberServersB = numberServersB; + } + + public int getNumberServersB() { + return numberServersB; + } + + public final void setServiceTimeA(simkit.random.RandomVariate serviceTimeA) { + this.serviceTimeA = serviceTimeA; + } + + public simkit.random.RandomVariate getServiceTimeA() { + return serviceTimeA; + } + + public final void setServiceTimeB(simkit.random.RandomVariate serviceTimeB) { + this.serviceTimeB = serviceTimeB; + } + + public simkit.random.RandomVariate getServiceTimeB() { + return serviceTimeB; + } + + public int getNumberAvailableServersA() { + return numberAvailableServersA; + } + + public int getNumberAvailableServersB() { + return numberAvailableServersB; + } + + public int getQueue() { + return queue; + } + + @Override + public String toString() { + return getName(); + } +} diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TwoTypeServerAssembly.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TwoTypeServerAssembly.java new file mode 100644 index 0000000000000000000000000000000000000000..127a9cdf783ffb99e33d4589d25905432dbf444c --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/src/examples/TwoTypeServerAssembly.java @@ -0,0 +1,108 @@ +package examples; + +public class TwoTypeServerAssembly extends viskit.assembly.ViskitAssembly { + + public TwoTypeServerAssembly() { + super(); + setStopTime(100.0); + setVerbose(false); + setNumberReplications(1); + setPrintReplicationReports(true); + setPrintSummaryReport(true); + setSaveReplicationData(false); + } + + @Override + protected void createSimEntities() { + + addSimEntity( "arrivalProcess", + new examples.ArrivalProcess( + simkit.random.RandomVariateFactory.getInstance( + "Exponential", + 1.7 + ) + ) + ); + + addSimEntity( "twoTypeServer", + new examples.TwoTypeServer( + 1, + 2, + simkit.random.RandomVariateFactory.getInstance( + "Exponential", + 1.6 + ), + simkit.random.RandomVariateFactory.getInstance( + "Exponential", + 1.6 + ) + ) + ); + + addAdapter("adptr_0", "Arrival", "Arrival", "arrivalProcess_0", "twoTypeServer_1"); + addAdapter("adptr0", "Arrival", "Arrival", "arrivalProcess", "twoTypeServer"); + addAdapter("adptr_1", "Arrival", "Arrival", "arrivalProcess", "twoTypeServer"); + + super.createSimEntities(); + } + + @Override + public void createPropertyChangeListeners() { + addPropertyChangeListenerConnection("numAvailServersBStat", "numberAvailableServersB", "twoTypeServer"); + + addPropertyChangeListenerConnection("numAvailServersAStat", "numberAvailableServersA", "twoTypeServer"); + + addPropertyChangeListenerConnection("numberInQueueStat", "queue", "twoTypeServer"); + + super.createPropertyChangeListeners(); + } + + @Override + public void createReplicationStats() { + addReplicationStats("numAvailServersAStat", + new simkit.stat.SimpleStatsTimeVarying( + "numberAvailableServersA" + ) + ); + + addReplicationStatsListenerConnection("numAvailServersAStat", "numberAvailableServersA", "twoTypeServer"); + + addReplicationStats("numberInQueueStat", + new simkit.stat.SimpleStatsTimeVarying( + "queue" + ) + ); + + addReplicationStatsListenerConnection("numberInQueueStat", "queue", "twoTypeServer"); + + addReplicationStats("numAvailServersBStat", + new simkit.stat.SimpleStatsTimeVarying( + "numberAvailableServersB" + ) + ); + + addReplicationStatsListenerConnection("numAvailServersBStat", "numberAvailableServersB", "twoTypeServer"); + + super.createReplicationStats(); + } + + @Override + public void createDesignPointStats() { + super.createDesignPointStats(); + } + + @Override + public void printInfo() { + System.out.println(); + System.out.println("Entity Details"); + System.out.println("--------------"); + System.out.println(getSimEntityByName("arrivalProcess")); + System.out.println(getSimEntityByName("twoTypeServer")); + System.out.println("--------------"); + } + + public static void main(String[] args) { + TwoTypeServerAssembly twoTypeServerAssembly = new TwoTypeServerAssembly(); + new Thread(twoTypeServerAssembly).start(); + } +} diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/viskitProject.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/viskitProject.xml new file mode 100644 index 0000000000000000000000000000000000000000..6c7a80c56592bbedd169a0c1b229cebeccf07539 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/viskitProject.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ViskitProject> + <AnalystReports name="AnalystReports" /> + <AssembliesDirectory name="Assemblies" /> + <EventGraphsDirectory name="EventGraphs" /> + <BuildDirectory name="build"> + <ClassesDirectory name="classes" /> + <SourceDirectory name="src" /> + </BuildDirectory> + <DistDirectory name="dist" /> + <LibDirectory name="lib" /> + <Project name="FinalProject" /> + <Cached> + <EventGraphs class="/Users/terry/Downloads/FinalProject/build/classes/examples/TwoTypeServer.class" digest="-512d144abdf3a25c1fd0468cca19fbe6" xml="/Users/terry/Downloads/FinalProject/EventGraphs/examples/TwoTypeServer.xml" /> + <EventGraphs class="C:/Users/advan/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServer.class" digest="5dde00358e407bfd4311883c8721b5e3" xml="C:/Users/advan/MyViskitProjects/FinalProject/EventGraphs/examples/TwoTypeServer.xml" /> + <EventGraphs class="C:/Users/advan/MyViskitProjects/FinalProject/build/classes/examples/ArrivalProcess.class" digest="690320b04ecb012c8a9ca57e07351225" xml="C:/Users/advan/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcessTwo.xml" /> + <EventGraphs class="C:/Users/advan/MyViskitProjects/FinalProject/build/classes/examples/ArrivalProcess.class" digest="2c654b4016e3310aea37d46120d91c16" xml="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/viskit/MyViskitProjects/DefaultProject/EventGraphs/examples/ArrivalProcess.xml" /> + <EventGraphs class="C:/Users/advan/MyViskitProjects/FinalProject/build/classes/examples/EntityCreator.class" digest="7020026ff300a02fa0ca78b16afd0a77" xml="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/viskit/MyViskitProjects/DefaultProject/EventGraphs/examples/EntityCreator.xml" /> + <EventGraphs class="C:/Users/advan/MyViskitProjects/FinalProject/build/classes/examples/ServerGeneric.class" digest="256ca2b5c866392a6c42353961b30c1a" xml="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/viskit/MyViskitProjects/DefaultProject/EventGraphs/examples/ServerGeneric.xml" /> + <EventGraphs class="C:/Users/advan/MyViskitProjects/FinalProject/build/classes/examples/ArrivalProcess.class" digest="690320b04ecb012c8a9ca57e07351225" xml="C:/Users/advan/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcess.xml" /> + <EventGraphs class="C:/Users/advan/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServer.class" digest="5dde00358e407bfd4311883c8721b5e3" xml="C:/Users/advan/MyViskitProjects/FinalProject/EventGraphs/examples/TwoTypeServer.xml" /> + <EventGraphs class="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/ArrivalProcess.class" digest="690320b04ecb012c8a9ca57e07351225" xml="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcess.xml" /> + <EventGraphs class="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/ArrivalProcess.class" digest="690320b04ecb012c8a9ca57e07351225" xml="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/ArrivalProcessTwo.xml" /> + <EventGraphs class="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/build/classes/examples/TwoTypeServer.class" digest="5dde00358e407bfd4311883c8721b5e3" xml="C:/Users/advan/Netbeans/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Yu/MyViskitProjects/FinalProject/EventGraphs/examples/TwoTypeServer.xml" /> + </Cached> +</ViskitProject> +