incomingCapsuleXXdata method

Future<Uint8List> incomingCapsuleXXdata(
  1. Uint8List cap
)

Implementation

Future<Uint8List> incomingCapsuleXXdata(Uint8List cap) async {
  //reply with xx I have. thats it.

  //fullfill wants
  final passedCapsule = ModeratorCapsule.fromBinary(cap);
  if (passedCapsule.isEmpty) return Uint8List(0);

  List<int> satXXs = [];
  Set<int> _newt = {};
  Set<int> _receivedThreads = {};
  List<String> myxxwants = [];

  if (passedCapsule.threadEntries.isNotEmpty) {
    final md =
        ModeratorEntrySet.fromModeratorCapsule(passedCapsule.threadEntries);

    for (var i in md.all) {
      if (_latelySeenp4p.contains(i.keyHint)) continue;
      _latelySeenp4p.add(i.keyHint);

      _receivedThreads.add(i.keyHint);

      if (data.add(i)) {
        if (i.flags.attachements &&
            !_xxCache.isXXstored(i.attachmentLinkAsXXint)) {
          myxxwants.add(i.attachmentLinkAsXXint);
        }
        _newt.add(i.keyHint);
      }
    }
  }

  if (passedCapsule.xxData.isNotEmpty) {
    //satisfy xxWants one by one
    /*
    int idx = 0;
    while (idx < passedCapsule.xxData.lengthInBytes) {
      var x0 = new ByteData.view(passedCapsule.xxData.buffer);
      int le = x0.getUint64(idx);
      int xx = x0.getUint64(idx + 8);
      _latelySeenp4p.add(xx);

      idx += 16;
//pushXXbytes
      final sca = await _xxCache.satisfy(
          xx, passedCapsule.xxData.sublist(idx, idx + le), false);
      if (sca) {
        satXXs.add(xx);
      }
      idx += le;
    } */
  }

  return Uint8List(0);
}