refMethod method

Reference refMethod(
  1. Environ env,
  2. MPI rm,
  3. String name,
  4. Introspector method,
)

Implementation

Reference refMethod(Environ env, MPI rm, String name, Introspector method) {
  final mm = method.annotation<MPI>();
  final ref = Reference();
  ref.version = anyone([rm.version, mm?.version]);
  ref.proto = anyone([rm.proto, mm?.proto, Flags.grpc.name]);
  ref.codec = anyone([rm.codec, mm?.codec, Flags.json.name]);
  ref.mdc = anyone([rm.idc, mm?.idc, env.mdc]);
  ref.zone = anyone([rm.zone, mm?.zone, env.lattice?.zone]);
  ref.cluster = anyone([rm.cluster, mm?.cluster, env.lattice?.cluster]);
  ref.cell = anyone([rm.cell, mm?.cell, env.lattice?.cell]);
  ref.group = anyone([rm.group, mm?.group, env.lattice?.group]);
  ref.address = anyone([rm.address, mm?.address, env.lattice?.address]);
  ref.namespace = method.kind().toString();
  ref.name = name;
  ref.flags = anyone([rm.flags, mm?.flags, 0]);
  ref.timeout = anyone([rm.timeout, mm?.timeout, 12000]);
  ref.retries = anyone([rm.retries, mm?.retries, 3]);
  ref.urn = makeURN(mm?.name ?? '', makeFlag(ref), env);
  return ref;
}