onBytes method
void
onBytes(
- Uint8Buffer? data,
- int size
)
override
Implementation
@override
void onBytes(typed.Uint8Buffer? data, int size) {
// Check if we are expecting something, ie whats next
switch (_next) {
case whatsNext.aPositiveBignum:
// Convert to a positive integer and append
final value = bignumToBigInt(data!, '+');
onBigInteger(value);
break;
case whatsNext.aNegativeBignum:
var value = bignumToBigInt(data!, '-');
value = BigInt.from(-1) + value!;
onBigInteger(value.abs());
break;
case whatsNext.aMultipleB64Url:
if (data != null) {
final item = DartItem();
item.data = data;
item.type = dartTypes.dtBuffer;
item.hint = dataHints.base64Url;
item.complete = true;
_append(item);
}
break;
case whatsNext.aMultipleB64:
if (data != null) {
final item = DartItem();
item.data = data;
item.type = dartTypes.dtBuffer;
item.hint = dataHints.base64;
item.complete = true;
_append(item);
}
break;
case whatsNext.aMultipleB16:
if (data != null) {
final item = DartItem();
item.data = data;
item.type = dartTypes.dtBuffer;
item.hint = dataHints.base16;
item.complete = true;
_append(item);
}
break;
case whatsNext.encodedCBOR:
if (data != null) {
final item = DartItem();
item.data = data;
item.type = dartTypes.dtBuffer;
item.hint = dataHints.encodedCBOR;
item.complete = true;
_append(item);
}
break;
case whatsNext.aSelfDescribeCBOR:
if (data != null) {
final item = DartItem();
item.data = data;
item.type = dartTypes.dtBuffer;
item.hint = dataHints.selfDescCBOR;
item.complete = true;
_append(item);
}
break;
case whatsNext.unassigned:
if (data != null) {
final item = DartItem();
item.data = data;
item.type = dartTypes.dtBuffer;
item.complete = true;
_append(item);
}
break;
case whatsNext.nothing:
default:
if (data == null) {
return;
}
if (_waitingIndefBytes()) {
_byteAssembly.addAll(data);
} else {
final item = DartItem();
item.data = data;
item.type = dartTypes.dtBuffer;
item.complete = true;
_append(item);
}
}
_next = whatsNext.nothing;
}