readValueOfType method

  1. @override
Object? readValueOfType(
  1. int type,
  2. ReadBuffer buffer
)
override

Reads a value of the indicated type from buffer.

The codec can be extended by overriding this method, calling super for types that the extension does not handle. See the discussion at writeValue.

Implementation

@override
Object? readValueOfType(int type, ReadBuffer buffer) {
  switch (type) {
    case _kUri:
      final int length = readSize(buffer);
      return utf8.decoder.convert(buffer.getUint8List(length));
    case _kBundle:
      final int length = readSize(buffer);
      final Map<String, Object?> result = <String, Object?>{};
      for (int i = 0; i < length; i++) {
        result[readValue(buffer) as String] = readValue(buffer);
      }
      return result;
    case _kContentValues:
      final int length = readSize(buffer);
      final Map<String, Object?> result = <String, Object?>{};
      for (int i = 0; i < length; i++) {
        result[readValue(buffer) as String] = readValue(buffer);
      }
      return ContentValues._(result);
    case _kByte:
    case _kShort:
    case _kInteger:
      return buffer.getInt32();
    case _kLong:
      return buffer.getInt64();
    case _kFloat:
    case _kDouble:
      return buffer.getFloat64();
    default:
      return super.readValueOfType(type, buffer);
  }
}