ModeratorCapsule.fromBinary constructor
ModeratorCapsule.fromBinary(
- Uint8List data
Implementation
factory ModeratorCapsule.fromBinary(Uint8List data) {
var bdata = new ByteData.view(data.buffer);
int dataLength = bdata.getUint16(0);
if (data.lengthInBytes != dataLength) {
return ModeratorCapsule(Uint8List(0), Uint8List(0), Uint8List(0));
}
var wi = 2;
//skip 2 reserved bytes
wi += 2;
//Uint8List _tangle = Uint8List(0); //MUST have key to talk to moderator
Uint8List _katamari =
Uint8List(dataLength); //currently OPTIONAL key for your requests
Uint8List _modEntrySet =
Uint8List(dataLength); //single thread entries with keys
//Uint8List _groupEntries = Uint8List(0); //single group entries with keys
//tangle is a must
/*if (bdata.getInt8(wi) == capsuleFieldType.empty) {
wi++;
} else {
wi++;
int dataLength = bdata.getInt16(wi);
wi = wi + 2;
for (int i = 0; i < dataLength; i++) {
_tangle.add(data[wi + i]);
}
}*/
//katamari
int kk = 0;
if (bdata.getUint8(wi) == capsuleFieldType.empty) {
wi++;
} else {
wi++;
int kdataLength = bdata.getUint16(wi);
print('katalen ' + kdataLength.toString());
wi = wi + 2;
for (int i = 0; i < kdataLength; i++) {
_katamari[kk++] = data[wi + i];
}
wi += kdataLength;
}
int tt = 0;
if (bdata.getUint8(wi) == capsuleFieldType.empty) {
wi++;
} else {
wi++;
int mdataLength = bdata.getUint16(wi);
print('moder ' + mdataLength.toString());
wi = wi + 2;
for (int i = 0; i < mdataLength; i++) {
_modEntrySet[tt++] = data[wi + i];
}
wi += mdataLength;
}
/*if (bdata.getInt8(wi) == capsuleFieldType.empty) {
wi++;
} else {
wi++;
int dataLength = bdata.getInt16(wi);
wi = wi + 2;
for (int i = 0; i < dataLength; i++) {
_groupEntries.add(data[wi + i]);
}
}*/
return ModeratorCapsule(
_katamari.sublist(0, kk), _modEntrySet.sublist(0, tt), Uint8List(0));
}