core: make timeout marshalling less verbose

* core: make timeout marshalling less verbose
This commit is contained in:
Carl Mastrangelo 2017-03-06 09:21:21 -08:00 committed by GitHub
parent 10cbd49dbf
commit ce243a9f21
1 changed files with 8 additions and 7 deletions

View File

@ -514,20 +514,21 @@ public final class GrpcUtil {
@Override
public String toAsciiString(Long timeoutNanos) {
long cutoff = 100000000;
TimeUnit unit = TimeUnit.NANOSECONDS;
if (timeoutNanos < 0) {
throw new IllegalArgumentException("Timeout too small");
} else if (timeoutNanos < cutoff) {
return TimeUnit.NANOSECONDS.toNanos(timeoutNanos) + "n";
return timeoutNanos + "n";
} else if (timeoutNanos < cutoff * 1000L) {
return TimeUnit.NANOSECONDS.toMicros(timeoutNanos) + "u";
return unit.toMicros(timeoutNanos) + "u";
} else if (timeoutNanos < cutoff * 1000L * 1000L) {
return TimeUnit.NANOSECONDS.toMillis(timeoutNanos) + "m";
return unit.toMillis(timeoutNanos) + "m";
} else if (timeoutNanos < cutoff * 1000L * 1000L * 1000L) {
return TimeUnit.NANOSECONDS.toSeconds(timeoutNanos) + "S";
return unit.toSeconds(timeoutNanos) + "S";
} else if (timeoutNanos < cutoff * 1000L * 1000L * 1000L * 60L) {
return TimeUnit.NANOSECONDS.toMinutes(timeoutNanos) + "M";
return unit.toMinutes(timeoutNanos) + "M";
} else {
return TimeUnit.NANOSECONDS.toHours(timeoutNanos) + "H";
return unit.toHours(timeoutNanos) + "H";
}
}
@ -539,7 +540,7 @@ public final class GrpcUtil {
char unit = serialized.charAt(serialized.length() - 1);
switch (unit) {
case 'n':
return TimeUnit.NANOSECONDS.toNanos(value);
return value;
case 'u':
return TimeUnit.MICROSECONDS.toNanos(value);
case 'm':