parse static method
CodecParseResults
parse(
- DC data,
- int offset,
- DistributedConnection? connection,
- List<
int> ? requestSequence, [ - TransmissionType? dataType = null,
Implementation
static CodecParseResults parse(DC data, int offset,
DistributedConnection? connection, List<int>? requestSequence,
[TransmissionType? dataType = null]) {
int len = 0;
//print("Parse ${offset} ${dataType} ${requestSequence}");
if (dataType == null) {
var parsedDataTyped = TransmissionType.parse(data, offset, data.length);
len = parsedDataTyped.size;
dataType = parsedDataTyped.type;
offset = dataType?.offset ?? 0;
//print("Parse TT ${len} ${parsedDataTyped.type} ${dataType?.offset}");
} else
len = dataType.contentLength;
if (dataType != null) {
if (dataType.classType == TransmissionTypeClass.Fixed) {
return CodecParseResults(
len,
fixedParsers[dataType.exponent][dataType.index](
data,
dataType.offset,
dataType.contentLength,
connection,
requestSequence));
} else if (dataType.classType == TransmissionTypeClass.Dynamic) {
return CodecParseResults(
len,
dynamicParsers[dataType.index](data, dataType.offset,
dataType.contentLength, connection, requestSequence));
} else //if (tt.Class == TransmissionTypeClass.Typed)
{
return CodecParseResults(
len,
typedParsers[dataType.index](data, dataType.offset,
dataType.contentLength, connection, requestSequence));
}
}
throw Exception("Can't parse transmission type.");
}