Skip to content
Snippets Groups Projects
Commit 41b99482 authored by advan's avatar advan
Browse files

Final Project

parent ac39a52a
No related branches found
No related tags found
No related merge requests found
Showing
with 909 additions and 0 deletions
File added
<?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>
<?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>
<?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>
<?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() &gt; 0" priority="DEFAULT">
<Comment></Comment>
</Schedule>
<Schedule delay="0.0" event="StartServiceB" condition="getNumberAvailableServersA() == 0 &amp;&amp; getNumberAvailableServersB() &gt; 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 &gt; 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 &gt; 0" priority="HIGH">
<Comment></Comment>
</Schedule>
<Code></Code>
<Coordinate x="350.0" y="260.0"/>
</Event>
</SimEntity>
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();
}
}
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();
}
}
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();
}
}
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();
}
}
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();
}
}
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();
}
}
<?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>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment