generateMethod method

void generateMethod(
  1. IndentingWriter out,
  2. MethodDescriptorProto m,
  3. int methodRepeatedFieldIndex
)

Implementation

void generateMethod(IndentingWriter out, MethodDescriptorProto m,
    int methodRepeatedFieldIndex) {
  final methodName = disambiguateName(
      avoidInitialUnderscore(service._methodName(m.name)),
      usedMethodNames,
      defaultSuffixes());
  final inputType = service._getDartClassName(m.inputType, forMainFile: true);
  final outputType =
      service._getDartClassName(m.outputType, forMainFile: true);
  final commentBlock = service.fileGen
      .commentBlock(_methodDescriptorPath(methodRepeatedFieldIndex));
  if (commentBlock != null) {
    out.println(commentBlock);
  }
  if (m.options.deprecated) {
    out.println(
        '@$coreImportPrefix.Deprecated(\'This method is deprecated\')');
  }
  out.addBlock(
      '$asyncImportPrefix.Future<$outputType> $methodName('
          '$protobufImportPrefix.ClientContext? ctx, $inputType request) =>',
      ';', () {
    out.println('_client.invoke<$outputType>(ctx, \'$className\', '
        '\'${m.name}\', request, $outputType())');
  });
}