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([mm?.version, rm.version]);
  ref.proto = anyone([mm?.proto, rm.proto, Flags.grpc.name]);
  ref.codec = anyone([mm?.codec, rm.codec, Flags.json.name]);
  ref.mdc = anyone([mm?.idc, rm.idc, env.mdc]);
  ref.zone = anyone([mm?.zone, rm.zone, env.lattice?.zone]);
  ref.cluster = anyone([mm?.cluster, rm.cluster, env.lattice?.cluster]);
  ref.cell = anyone([mm?.cell, rm.cell, env.lattice?.cell]);
  ref.group = anyone([mm?.group, rm.group, env.lattice?.group]);
  ref.address = anyone([mm?.address, rm.address, env.lattice?.address]);
  ref.namespace = method.kind().toString();
  ref.name = name;
  ref.flags = anyone([mm?.flags, rm.flags, 0]);
  ref.timeout = anyone([mm?.timeout, rm.timeout, 12000]);
  ref.retries = anyone([mm?.retries, rm.retries, 3]);
  ref.urn = makeURN(mm?.name ?? '', makeFlag(ref), env);
  return ref;
}