BridgeInterface constructor

BridgeInterface({
  1. required String name,
  2. required String library,
  3. required String vendor,
  4. required String version,
  5. Map<String, int> portsFromConsumer = const {},
  6. Map<String, int> portsFromProvider = const {},
  7. Map<String, int> portsSharedInouts = const {},
})

Reads portsFromConsumer, portsFromProvider and portsSharedInouts then creates appropriate ports with appropriate tags.

Implementation

BridgeInterface({
  required this.name,
  required this.library,
  required this.vendor,
  required this.version,
  Map<String, int> portsFromConsumer = const {},
  Map<String, int> portsFromProvider = const {},
  Map<String, int> portsSharedInouts = const {},
})  : _portsFromConsumer = portsFromConsumer,
      _portsFromProvider = portsFromProvider,
      _portsSharedInouts = portsSharedInouts {
  for (final port in portsFromConsumer.entries) {
    if (tryPort(port.key) == null) {
      setPorts(
          [Logic.port(port.key, port.value)], [PairDirection.fromConsumer]);
    }
  }

  for (final port in portsFromProvider.entries) {
    if (tryPort(port.key) == null) {
      setPorts(
          [Logic.port(port.key, port.value)], [PairDirection.fromProvider]);
    }
  }

  for (final port in portsSharedInouts.entries) {
    if (tryPort(port.key) == null) {
      setPorts(
          [Logic.port(port.key, port.value)], [PairDirection.commonInOuts]);
    }
  }
}