register method
Implementation
void register(
String event, String waitsForEvent, String forTrait, int traitCount) {
List<String> waitsForEvents = [waitsForEvent];
SingleEventWaiter waiter = SingleEventWaiter(
event: event,
waitsForEvents: waitsForEvents,
traitName: forTrait,
neededTraitCount: traitCount,
isWaitedFor: true);
SingleEventWaiter waiterAntiSymmetric = SingleEventWaiter(
event: event,
waitsForEvents: waitsForEvents,
traitName: forTrait,
neededTraitCount: traitCount,
isWaitedFor: false);
// Map event to the created SingleEventWaiter
eventToWaiters.put(event, waiter);
// Map each waiting event to the created SingleEventWaiter
for (String waitForEvent in waitsForEvents) {
eventToWaiters.put(waitForEvent, waiterAntiSymmetric);
}
}