binary property
Uint8List
get
binary
Implementation
Uint8List get binary {
Uint8List b = Uint8List(99420000);
var bdata = new ByteData.view(b.buffer);
//first word is lenght, then 4 filler byts
int wi = 6;
if (katamari.isEmpty) {
bdata.setUint8(wi++, capsuleFieldType.empty.index);
} else {
bdata.setUint8(wi++, capsuleFieldType.katamari.index);
bdata.setUint16(wi, katamari.lengthInBytes);
wi += 2;
katamari.forEach((element) {
bdata.setUint8(wi++, element);
});
}
if (threadEntries.isEmpty) {
bdata.setUint8(wi++, capsuleFieldType.empty.index);
} else {
bdata.setUint8(wi++, capsuleFieldType.threadEntries.index);
bdata.setUint16(wi, threadEntries.lengthInBytes);
wi += 2;
threadEntries.forEach((element) {
bdata.setUint8(wi++, element);
});
}
if (groupEntries.isEmpty) {
bdata.setUint8(wi++, capsuleFieldType.empty.index);
} else {
bdata.setUint8(wi++, capsuleFieldType.groupEntries.index);
bdata.setUint16(wi, groupEntries.lengthInBytes);
wi += 2;
groupEntries.forEach((element) {
bdata.setUint8(wi++, element);
});
}
if (xxWants.isEmpty) {
bdata.setUint8(wi++, capsuleFieldType.empty.index);
} else {
bdata.setUint8(wi++, capsuleFieldType.xxWant.index);
bdata.setUint16(wi, xxWants.lengthInBytes);
wi += 2;
xxWants.forEach((element) {
bdata.setUint8(wi++, element);
});
}
if (xxData.isEmpty) {
bdata.setUint8(wi++, capsuleFieldType.empty.index);
} else {
bdata.setUint8(wi++, capsuleFieldType.xxData.index);
bdata.setUint32(wi, xxData.lengthInBytes);
wi += 4;
for (var element in xxData) {
bdata.setUint8(wi++, element);
}
}
wi += 16; //wiggle room
bdata.setUint32(0, wi);
return b.sublist(0, wi);
}