CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport.smali
.class Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;
.super Lio/grpc/internal/ForwardingConnectionClientTransport;
.source "CallCredentialsApplyingTransportFactory.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/grpc/internal/CallCredentialsApplyingTransportFactory;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2
name = "CallCredentialsApplyingTransport"
.end annotation
# instance fields
.field private final authority:Ljava/lang/String;
.field private final delegate:Lio/grpc/internal/ConnectionClientTransport;
.field final synthetic this$0:Lio/grpc/internal/CallCredentialsApplyingTransportFactory;
# direct methods
.method constructor <init>(Lio/grpc/internal/CallCredentialsApplyingTransportFactory;Lio/grpc/internal/ConnectionClientTransport;Ljava/lang/String;)V
.registers 4
.line 1
iput-object p1, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->this$0:Lio/grpc/internal/CallCredentialsApplyingTransportFactory;
invoke-direct {p0}, Lio/grpc/internal/ForwardingConnectionClientTransport;-><init>()V
const-string p1, "delegate"
.line 2
invoke-static {p2, p1}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
check-cast p2, Lio/grpc/internal/ConnectionClientTransport;
iput-object p2, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->delegate:Lio/grpc/internal/ConnectionClientTransport;
const-string p1, "authority"
.line 3
invoke-static {p3, p1}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
check-cast p3, Ljava/lang/String;
iput-object p3, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->authority:Ljava/lang/String;
return-void
.end method
# virtual methods
.method protected delegate()Lio/grpc/internal/ConnectionClientTransport;
.registers 2
.line 1
iget-object v0, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->delegate:Lio/grpc/internal/ConnectionClientTransport;
return-object v0
.end method
.method public newStream(Lio/grpc/MethodDescriptor;Lio/grpc/Metadata;Lio/grpc/CallOptions;)Lio/grpc/internal/ClientStream;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/grpc/MethodDescriptor<",
"**>;",
"Lio/grpc/Metadata;",
"Lio/grpc/CallOptions;",
")",
"Lio/grpc/internal/ClientStream;"
}
.end annotation
.line 1
invoke-virtual {p3}, Lio/grpc/CallOptions;->getCredentials()Lio/grpc/CallCredentials;
move-result-object v0
if-eqz v0, :cond_56
.line 2
new-instance v1, Lio/grpc/internal/MetadataApplierImpl;
iget-object v2, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->delegate:Lio/grpc/internal/ConnectionClientTransport;
invoke-direct {v1, v2, p1, p2, p3}, Lio/grpc/internal/MetadataApplierImpl;-><init>(Lio/grpc/internal/ClientTransport;Lio/grpc/MethodDescriptor;Lio/grpc/Metadata;Lio/grpc/CallOptions;)V
.line 3
invoke-static {}, Lio/grpc/Attributes;->newBuilder()Lio/grpc/Attributes$Builder;
move-result-object p2
sget-object v2, Lio/grpc/CallCredentials;->ATTR_AUTHORITY:Lio/grpc/Attributes$Key;
iget-object v3, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->authority:Ljava/lang/String;
.line 4
invoke-virtual {p2, v2, v3}, Lio/grpc/Attributes$Builder;->set(Lio/grpc/Attributes$Key;Ljava/lang/Object;)Lio/grpc/Attributes$Builder;
move-result-object p2
sget-object v2, Lio/grpc/CallCredentials;->ATTR_SECURITY_LEVEL:Lio/grpc/Attributes$Key;
sget-object v3, Lio/grpc/SecurityLevel;->NONE:Lio/grpc/SecurityLevel;
.line 5
invoke-virtual {p2, v2, v3}, Lio/grpc/Attributes$Builder;->set(Lio/grpc/Attributes$Key;Ljava/lang/Object;)Lio/grpc/Attributes$Builder;
move-result-object p2
iget-object v2, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->delegate:Lio/grpc/internal/ConnectionClientTransport;
.line 6
invoke-interface {v2}, Lio/grpc/internal/ConnectionClientTransport;->getAttrs()Lio/grpc/Attributes;
move-result-object v2
invoke-virtual {p2, v2}, Lio/grpc/Attributes$Builder;->setAll(Lio/grpc/Attributes;)Lio/grpc/Attributes$Builder;
move-result-object p2
.line 7
invoke-virtual {p3}, Lio/grpc/CallOptions;->getAuthority()Ljava/lang/String;
move-result-object v2
if-eqz v2, :cond_3a
.line 8
sget-object v2, Lio/grpc/CallCredentials;->ATTR_AUTHORITY:Lio/grpc/Attributes$Key;
invoke-virtual {p3}, Lio/grpc/CallOptions;->getAuthority()Ljava/lang/String;
move-result-object v3
invoke-virtual {p2, v2, v3}, Lio/grpc/Attributes$Builder;->set(Lio/grpc/Attributes$Key;Ljava/lang/Object;)Lio/grpc/Attributes$Builder;
.line 9
:cond_3a
invoke-virtual {p2}, Lio/grpc/Attributes$Builder;->build()Lio/grpc/Attributes;
move-result-object p2
.line 10
invoke-virtual {p3}, Lio/grpc/CallOptions;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object p3
iget-object v2, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->this$0:Lio/grpc/internal/CallCredentialsApplyingTransportFactory;
# getter for: Lio/grpc/internal/CallCredentialsApplyingTransportFactory;->appExecutor:Ljava/util/concurrent/Executor;
invoke-static {v2}, Lio/grpc/internal/CallCredentialsApplyingTransportFactory;->access$000(Lio/grpc/internal/CallCredentialsApplyingTransportFactory;)Ljava/util/concurrent/Executor;
move-result-object v2
invoke-static {p3, v2}, Lcom/google/common/base/k;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p3
check-cast p3, Ljava/util/concurrent/Executor;
.line 11
invoke-interface {v0, p1, p2, p3, v1}, Lio/grpc/CallCredentials;->applyRequestMetadata(Lio/grpc/MethodDescriptor;Lio/grpc/Attributes;Ljava/util/concurrent/Executor;Lio/grpc/CallCredentials$MetadataApplier;)V
.line 12
invoke-virtual {v1}, Lio/grpc/internal/MetadataApplierImpl;->returnStream()Lio/grpc/internal/ClientStream;
move-result-object p1
return-object p1
.line 13
:cond_56
iget-object v0, p0, Lio/grpc/internal/CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport;->delegate:Lio/grpc/internal/ConnectionClientTransport;
invoke-interface {v0, p1, p2, p3}, Lio/grpc/internal/ClientTransport;->newStream(Lio/grpc/MethodDescriptor;Lio/grpc/Metadata;Lio/grpc/CallOptions;)Lio/grpc/internal/ClientStream;
move-result-object p1
return-object p1
.end method