Contexts.smali
.class public Lio/grpc/Contexts;
.super Ljava/lang/Object;
.source "Contexts.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/grpc/Contexts$ContextualizedServerCallListener;
}
.end annotation
# direct methods
.method private constructor <init>()V
.registers 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static interceptCall(Lio/grpc/Context;Lio/grpc/ServerCall;Lio/grpc/Metadata;Lio/grpc/ServerCallHandler;)Lio/grpc/ServerCall$Listener;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<ReqT:",
"Ljava/lang/Object;",
"RespT:",
"Ljava/lang/Object;",
">(",
"Lio/grpc/Context;",
"Lio/grpc/ServerCall<",
"TReqT;TRespT;>;",
"Lio/grpc/Metadata;",
"Lio/grpc/ServerCallHandler<",
"TReqT;TRespT;>;)",
"Lio/grpc/ServerCall$Listener<",
"TReqT;>;"
}
.end annotation
.line 1
invoke-virtual {p0}, Lio/grpc/Context;->attach()Lio/grpc/Context;
move-result-object v0
.line 2
:try_start_4
new-instance v1, Lio/grpc/Contexts$ContextualizedServerCallListener;
.line 3
invoke-interface {p3, p1, p2}, Lio/grpc/ServerCallHandler;->startCall(Lio/grpc/ServerCall;Lio/grpc/Metadata;)Lio/grpc/ServerCall$Listener;
move-result-object p1
invoke-direct {v1, p1, p0}, Lio/grpc/Contexts$ContextualizedServerCallListener;-><init>(Lio/grpc/ServerCall$Listener;Lio/grpc/Context;)V
:try_end_d
.catchall {:try_start_4 .. :try_end_d} :catchall_11
.line 4
invoke-virtual {p0, v0}, Lio/grpc/Context;->detach(Lio/grpc/Context;)V
return-object v1
:catchall_11
move-exception p1
invoke-virtual {p0, v0}, Lio/grpc/Context;->detach(Lio/grpc/Context;)V
throw p1
.end method
.method public static statusFromCancelled(Lio/grpc/Context;)Lio/grpc/Status;
.registers 4
const-string v0, "context must not be null"
.line 1
invoke-static {p0, v0}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 2
invoke-virtual {p0}, Lio/grpc/Context;->isCancelled()Z
move-result v0
if-nez v0, :cond_d
const/4 p0, 0x0
return-object p0
.line 3
:cond_d
invoke-virtual {p0}, Lio/grpc/Context;->cancellationCause()Ljava/lang/Throwable;
move-result-object p0
if-nez p0, :cond_16
.line 4
sget-object p0, Lio/grpc/Status;->CANCELLED:Lio/grpc/Status;
return-object p0
.line 5
:cond_16
instance-of v0, p0, Ljava/util/concurrent/TimeoutException;
if-eqz v0, :cond_29
.line 6
sget-object v0, Lio/grpc/Status;->DEADLINE_EXCEEDED:Lio/grpc/Status;
.line 7
invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lio/grpc/Status;->withDescription(Ljava/lang/String;)Lio/grpc/Status;
move-result-object v0
.line 8
invoke-virtual {v0, p0}, Lio/grpc/Status;->withCause(Ljava/lang/Throwable;)Lio/grpc/Status;
move-result-object p0
return-object p0
.line 9
:cond_29
invoke-static {p0}, Lio/grpc/Status;->fromThrowable(Ljava/lang/Throwable;)Lio/grpc/Status;
move-result-object v0
.line 10
sget-object v1, Lio/grpc/Status$Code;->UNKNOWN:Lio/grpc/Status$Code;
invoke-virtual {v0}, Lio/grpc/Status;->getCode()Lio/grpc/Status$Code;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/Enum;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_46
.line 11
invoke-virtual {v0}, Lio/grpc/Status;->getCause()Ljava/lang/Throwable;
move-result-object v1
if-ne v1, p0, :cond_46
.line 12
sget-object v0, Lio/grpc/Status;->CANCELLED:Lio/grpc/Status;
invoke-virtual {v0, p0}, Lio/grpc/Status;->withCause(Ljava/lang/Throwable;)Lio/grpc/Status;
move-result-object p0
return-object p0
.line 13
:cond_46
invoke-virtual {v0, p0}, Lio/grpc/Status;->withCause(Ljava/lang/Throwable;)Lio/grpc/Status;
move-result-object p0
return-object p0
.end method