Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
used shared channel code for api
  • Loading branch information
bparrishMines committed May 29, 2024
commit 42a2beed3e15f44eb0901fa796c47be754a45dc0
212 changes: 106 additions & 106 deletions packages/pigeon/lib/dart/templates.dart
Original file line number Diff line number Diff line change
Expand Up @@ -215,112 +215,112 @@ class $instanceManagerClassName {
''';
}

/// Creates the `InstanceManagerApi` with the passed string values.
String instanceManagerApiTemplate({
required String dartPackageName,
required String pigeonChannelCodecVarName,
}) {
const String apiName = '${instanceManagerClassName}Api';

final String removeStrongReferenceName = makeChannelNameWithStrings(
apiName: apiName,
methodName: 'removeStrongReference',
dartPackageName: dartPackageName,
);

final String clearName = makeChannelNameWithStrings(
apiName: apiName,
methodName: 'clear',
dartPackageName: dartPackageName,
);

return '''
/// Generated API for managing the Dart and native `$instanceManagerClassName`s.
class _$apiName {
/// Constructor for [_$apiName].
_$apiName({BinaryMessenger? binaryMessenger})
: _binaryMessenger = binaryMessenger;

final BinaryMessenger? _binaryMessenger;
static const MessageCodec<Object?> $pigeonChannelCodecVarName =
StandardMessageCodec();

static void setUpMessageHandlers({
BinaryMessenger? binaryMessenger,
$instanceManagerClassName? instanceManager,
}) {
const String channelName =
r'$removeStrongReferenceName';
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
channelName,
$pigeonChannelCodecVarName,
binaryMessenger: binaryMessenger,
);
channel.setMessageHandler((Object? message) async {
assert(
message != null,
'Argument for \$channelName was null.',
);
final int? identifier = message as int?;
assert(
identifier != null,
r'Argument for \$channelName, expected non-null int.',
);
(instanceManager ?? $instanceManagerClassName.instance).remove(identifier!);
return;
});
}

Future<void> removeStrongReference(int identifier) async {
const String channelName =
r'$removeStrongReferenceName';
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
channelName,
$pigeonChannelCodecVarName,
binaryMessenger: _binaryMessenger,
);
final List<Object?>? replyList =
await channel.send(identifier) as List<Object?>?;
if (replyList == null) {
throw _createConnectionError(channelName);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}

/// Clear the native `$instanceManagerClassName`.
///
/// This is typically called after a hot restart.
Future<void> clear() async {
const String channelName =
r'$clearName';
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
channelName,
$pigeonChannelCodecVarName,
binaryMessenger: _binaryMessenger,
);
final List<Object?>? replyList = await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw _createConnectionError(channelName);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
}''';
}
// /// Creates the `InstanceManagerApi` with the passed string values.
// String instanceManagerApiTemplate({
// required String dartPackageName,
// required String pigeonChannelCodecVarName,
// }) {
// const String apiName = '${instanceManagerClassName}Api';
//
// final String removeStrongReferenceName = makeChannelNameWithStrings(
// apiName: apiName,
// methodName: 'removeStrongReference',
// dartPackageName: dartPackageName,
// );
//
// final String clearName = makeChannelNameWithStrings(
// apiName: apiName,
// methodName: 'clear',
// dartPackageName: dartPackageName,
// );
//
// return '''
// /// Generated API for managing the Dart and native `$instanceManagerClassName`s.
// class _$apiName {
// /// Constructor for [_$apiName].
// _$apiName({BinaryMessenger? binaryMessenger})
// : _binaryMessenger = binaryMessenger;
//
// final BinaryMessenger? _binaryMessenger;
//
// static const MessageCodec<Object?> $pigeonChannelCodecVarName =
// StandardMessageCodec();
//
// static void setUpMessageHandlers({
// BinaryMessenger? binaryMessenger,
// $instanceManagerClassName? instanceManager,
// }) {
// const String channelName =
// r'$removeStrongReferenceName';
// final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
// channelName,
// $pigeonChannelCodecVarName,
// binaryMessenger: binaryMessenger,
// );
// channel.setMessageHandler((Object? message) async {
// assert(
// message != null,
// 'Argument for \$channelName was null.',
// );
// final int? identifier = message as int?;
// assert(
// identifier != null,
// r'Argument for \$channelName, expected non-null int.',
// );
// (instanceManager ?? $instanceManagerClassName.instance).remove(identifier!);
// return;
// });
// }
//
// Future<void> removeStrongReference(int identifier) async {
// const String channelName =
// r'$removeStrongReferenceName';
// final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
// channelName,
// $pigeonChannelCodecVarName,
// binaryMessenger: _binaryMessenger,
// );
// final List<Object?>? replyList =
// await channel.send(identifier) as List<Object?>?;
// if (replyList == null) {
// throw _createConnectionError(channelName);
// } else if (replyList.length > 1) {
// throw PlatformException(
// code: replyList[0]! as String,
// message: replyList[1] as String?,
// details: replyList[2],
// );
// } else {
// return;
// }
// }
//
// /// Clear the native `$instanceManagerClassName`.
// ///
// /// This is typically called after a hot restart.
// Future<void> clear() async {
// const String channelName =
// r'$clearName';
// final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
// channelName,
// $pigeonChannelCodecVarName,
// binaryMessenger: _binaryMessenger,
// );
// final List<Object?>? replyList = await channel.send(null) as List<Object?>?;
// if (replyList == null) {
// throw _createConnectionError(channelName);
// } else if (replyList.length > 1) {
// throw PlatformException(
// code: replyList[0]! as String,
// message: replyList[1] as String?,
// details: replyList[2],
// );
// } else {
// return;
// }
// }
// }''';
// }

/// The base class for all ProxyApis.
///
Expand Down
Loading