binary property
Uint8List
get
binary
Implementation
Uint8List get binary {
if (payload.lengthInBytes > 2000) return Uint8List(0);
Uint8List b = Uint8List(2048);
var bdata = new ByteData.view(b.buffer);
bdata.setUint8(2, flags[0]);
bdata.setUint8(3, flags[1]);
bdata.setUint64(4, authorHint);
bdata.setUint64(12, bl);
bdata.setUint64(20, pp);
bdata.setUint16(28, garyTimestamp);
bdata.setUint16(30, payload.lengthInBytes);
bdata.setUint64(32, preceivedTimestamp);
var wi = 40;
payload.forEach((element) {
bdata.setUint8(wi++, element);
});
//encrypted key for this thread
//print(key);
bdata.setUint16(wi, key.lengthInBytes);
wi += 2;
if (key.isNotEmpty) {
key.forEach((element) {
bdata.setUint8(wi++, element);
});
}
//print('hint bin idx ' + wi.toString());
bdata.setUint64(wi, hint);
wi += 8;
if (authorAvatar.isEmpty) {
wi++;
} else {
List<int> aa = utf8.encode(authorAvatar);
//var aa = authorAvatar.runes;
bdata.setUint8(wi++, aa.length);
aa.forEach((_r) {
bdata.setUint8(wi++, _r);
});
}
if (authorNick.isEmpty) {
wi++;
} else {
List<int> aa = utf8.encode(authorNick);
//var aa = authorNick.runes;
bdata.setUint8(wi++, aa.length);
aa.forEach((_r) {
bdata.setUint8(wi++, _r);
});
}
if (attachmentLink.isEmpty) {
wi++;
} else {
/*List<int> aa = utf8.encode(attachmentLink);
bdata.setUint8(wi++, aa.length);
aa.forEach((_r) {
bdata.setUint8(wi++, _r);
});*/
bdata.setUint8(wi++, attachmentLink.length);
attachmentLink.forEach((_r) {
bdata.setUint8(wi++, _r);
});
}
//dont push 0
/*print(wi);
print('ptim ' + preceivedTimestamp.toString());
bdata.setUint64(wi, preceivedTimestamp);
var tot = bdata.getUint64(wi);
if (preceivedTimestamp != tot) {
print('PANI perc timestamp!!');
}
wi += 8;*/
/*bdata.setUint16(0, wi);
wi += 2;*/
bdata.setUint16(wi, likes);
wi += 2;
bdata.setUint16(wi, shares);
wi += 2;
bdata.setUint16(wi, views);
wi += 2;
bdata.setUint16(wi, replies);
wi += 2;
bdata.setUint16(0, wi);
return b.sublist(0, wi);
}