simdart 0.1.0-rc.3
simdart: ^0.1.0-rc.3 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.addResource(LimitedResource(id: 'x', capacity: 1));
//sim.processAt( eventA, start: 0, name: 'A');
//sim.processAfter( eventB, delay: 5, name: 'B');
sim.process( eventB, name: 'B', resourceId: 'x');
sim.processAt( eventD, name: 'D',start: 1, resourceId: 'x');
// sim.addEventScheduler(EventScheduler(start: 0,untilCount: 3, interval: Interval.uniform(2, 4), event: eventB, eventName: 'B', name: 'S'));
await sim.run();
print('Done! Duration: ${sim.duration}');
}
Future<void> eventA(EventContext context) async {
context.sim.processAt( eventC, start: 15, name: 'C');
await context.wait(10);
await context.wait(11);
context.sim.processAfter( eventD, delay: 5, name: 'D');
}
Future<void> eventB(EventContext context) async{
print('B');
//await context.wait(10);
// print('acabou: ${context.sim.now}');
}
Future<void> eventC(EventContext context) async{
//context.sim.processAfter((event) => eventE(event, 100), delay: 5, name: 'E');
}
Future<void> eventE(EventContext context, int parameter) async {}
Future<void> eventD(EventContext context) async{
print('D');
}