Skip to content
Snippets Groups Projects
Commit dd4fdca9 authored by Terry D. Norbraten's avatar Terry D. Norbraten
Browse files

[Terry N.] remove gen'd material

parent 9e3188b1
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 684 deletions
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();
}
}
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