proxyApiBaseCodec top-level constant
String
const proxyApiBaseCodec
The base codec for ProxyApis.
All generated Dart proxy apis should use this codec or extend it. This codec
adds support to convert instances to their corresponding identifier from an
InstanceManager
and vice versa.
Implementation
const String proxyApiBaseCodec = '''
class $_proxyApiCodecName extends StandardMessageCodec {
const $_proxyApiCodecName(this.instanceManager);
final $instanceManagerClassName instanceManager;
@override
void writeValue(WriteBuffer buffer, Object? value) {
if (value is $proxyApiBaseClassName) {
buffer.putUint8(128);
writeValue(buffer, instanceManager.getIdentifier(value));
} else {
super.writeValue(buffer, value);
}
}
@override
Object? readValueOfType(int type, ReadBuffer buffer) {
switch (type) {
case 128:
return instanceManager
.getInstanceWithWeakReference(readValue(buffer)! as int);
default:
return super.readValueOfType(type, buffer);
}
}
}
''';