simdart 0.1.0-rc.2
simdart: ^0.1.0-rc.2 copied to clipboard
A discrete event simulation package for Dart, designed for modeling and analyzing processes and systems.
example/example.dart
import 'package:simdart/simdart.dart';
void main() async {
final SimDart sim = SimDart(onTrack: (track) {
print('[${track.operation}:${track.time}] ${track.name}');
});
sim.processAt(event: eventA, start: 0, name: 'A');
sim.processAt(event: eventB, start: 10, name: 'B');
await sim.run();
print('Done! Duration: ${sim.duration}');
}
void eventA(EventContext context) async {
context.sim.processAt(event: eventC, start: 15, name: 'C');
await context.wait(11);
context.sim.processAfter(event: eventD, delay: 0, name: 'D');
await context.wait(11);
}
void eventB(EventContext context) {}
void eventC(EventContext context) {
context.sim
.processAfter(event: (event) => eventE(event, 100), delay: 5, name: 'E');
}
void eventE(EventContext context, int parameter) {}
void eventD(EventContext context) {}