register method

void register(
  1. String event,
  2. String waitsForEvent,
  3. String forTrait,
  4. int traitCount,
)

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);
  }
}