Skip to content
Snippets Groups Projects
Commit 37b610ad authored by tbavl's avatar tbavl
Browse files

Merge origin/master

parents 65835173 41b99482
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