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