addEmbeddingHandoverService method
void
addEmbeddingHandoverService(
- Service service
Implementation
void addEmbeddingHandoverService(Service service) {
embeddingChannel.on(service.$name, (args) async {
final serviceMethod = service.$lookupMethod(args['method'] as String);
final request = serviceMethod!.requestDeserializer(args['request'] as List<int>);
print('request: $request');
print('request type: ${request.runtimeType}');
// Create a properly typed stream using createRequestStream()
// This preserves the generic type from ServiceMethod<Q, R>
final sourceStream = Stream.value(request);
final subscription = sourceStream.listen(null);
final controller = serviceMethod.createRequestStream(subscription);
controller.add(request);
controller.close();
// Call handle with the properly typed stream
final response = await serviceMethod.handle(DummyServiceCall(), controller.stream, []).first;
print('response: $response');
final bytes = (response as GeneratedMessage).writeToBuffer();
return bytes;
});
}