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 _PigeonCodec {
 const $_proxyApiCodecName(this.instanceManager);
 final $dartInstanceManagerClassName instanceManager;
 @override
 void writeValue(WriteBuffer buffer, Object? value) {
   if (value is $proxyApiBaseClassName) {
     buffer.putUint8($proxyApiCodecInstanceManagerKey);
     writeValue(buffer, instanceManager.getIdentifier(value));
   } else {
     super.writeValue(buffer, value);
   }
 }
 @override
 Object? readValueOfType(int type, ReadBuffer buffer) {
   switch (type) {
     case $proxyApiCodecInstanceManagerKey:
       return instanceManager
           .getInstanceWithWeakReference(readValue(buffer)! as int);
     default:
       return super.readValueOfType(type, buffer);
   }
 }
}
''';