process method

List process(
  1. int waitingAckId
)

Implementation

List process(int waitingAckId) {
  var rslts = <dynamic>[];
  if (_caching && _isCacheValid) {
    for (var lastValue in lastValues) {
      rslts.add([sid, lastValue.value, lastValue.ts]);
    }

    if (_qosLevel > 0) {
      for (var update in lastValues) {
        update.waitingAck = waitingAckId;
      }
    }
    lastValues.length = 0;
  } else {
    if (lastValue!.count > 1 || lastValue?.status != null) {
      var m = lastValue?.toMap();
      m?['sid'] = sid;
      rslts.add(m);
    } else {
      rslts.add([sid, lastValue?.value, lastValue?.ts]);
    }
    if (_qosLevel > 0) {
      lastValue?.waitingAck = waitingAckId;
    }
    _isCacheValid = true;
  }
  lastValue = null;
  return rslts;
}