SingleTransportChannel.smali

.class final Lio/grpc/internal/SingleTransportChannel;
.super Lio/grpc/Channel;
.source "SingleTransportChannel.java"


# instance fields
.field private final authority:Ljava/lang/String;

.field private final deadlineCancellationExecutor:Ljava/util/concurrent/ScheduledExecutorService;

.field private final executor:Ljava/util/concurrent/Executor;

.field private final transport:Lio/grpc/internal/ClientTransport;

.field private final transportProvider:Lio/grpc/internal/ClientCallImpl$ClientTransportProvider;


# direct methods
.method public constructor <init>(Lio/grpc/internal/ClientTransport;Ljava/util/concurrent/Executor;Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/String;)V
    .registers 6

    .line 1
    invoke-direct {p0}, Lio/grpc/Channel;-><init>()V

    .line 2
    new-instance v0, Lio/grpc/internal/SingleTransportChannel$1;

    invoke-direct {v0, p0}, Lio/grpc/internal/SingleTransportChannel$1;-><init>(Lio/grpc/internal/SingleTransportChannel;)V

    iput-object v0, p0, Lio/grpc/internal/SingleTransportChannel;->transportProvider:Lio/grpc/internal/ClientCallImpl$ClientTransportProvider;

    const-string v0, "transport"

    .line 3
    invoke-static {p1, v0}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    check-cast p1, Lio/grpc/internal/ClientTransport;

    iput-object p1, p0, Lio/grpc/internal/SingleTransportChannel;->transport:Lio/grpc/internal/ClientTransport;

    const-string p1, "executor"

    .line 4
    invoke-static {p2, p1}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    check-cast p2, Ljava/util/concurrent/Executor;

    iput-object p2, p0, Lio/grpc/internal/SingleTransportChannel;->executor:Ljava/util/concurrent/Executor;

    const-string p1, "deadlineCancellationExecutor"

    .line 5
    invoke-static {p3, p1}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    check-cast p3, Ljava/util/concurrent/ScheduledExecutorService;

    iput-object p3, p0, Lio/grpc/internal/SingleTransportChannel;->deadlineCancellationExecutor:Ljava/util/concurrent/ScheduledExecutorService;

    const-string p1, "authority"

    .line 6
    invoke-static {p4, p1}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    check-cast p4, Ljava/lang/String;

    iput-object p4, p0, Lio/grpc/internal/SingleTransportChannel;->authority:Ljava/lang/String;

    return-void
.end method

.method static synthetic access$000(Lio/grpc/internal/SingleTransportChannel;)Lio/grpc/internal/ClientTransport;
    .registers 1

    .line 1
    iget-object p0, p0, Lio/grpc/internal/SingleTransportChannel;->transport:Lio/grpc/internal/ClientTransport;

    return-object p0
.end method


# virtual methods
.method public authority()Ljava/lang/String;
    .registers 2

    .line 1
    iget-object v0, p0, Lio/grpc/internal/SingleTransportChannel;->authority:Ljava/lang/String;

    return-object v0
.end method

.method public newCall(Lio/grpc/MethodDescriptor;Lio/grpc/CallOptions;)Lio/grpc/ClientCall;
    .registers 10
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<RequestT:",
            "Ljava/lang/Object;",
            "ResponseT:",
            "Ljava/lang/Object;",
            ">(",
            "Lio/grpc/MethodDescriptor<",
            "TRequestT;TResponseT;>;",
            "Lio/grpc/CallOptions;",
            ")",
            "Lio/grpc/ClientCall<",
            "TRequestT;TResponseT;>;"
        }
    .end annotation

    .line 1
    new-instance v6, Lio/grpc/internal/ClientCallImpl;

    new-instance v2, Lio/grpc/internal/SerializingExecutor;

    iget-object v0, p0, Lio/grpc/internal/SingleTransportChannel;->executor:Ljava/util/concurrent/Executor;

    invoke-direct {v2, v0}, Lio/grpc/internal/SerializingExecutor;-><init>(Ljava/util/concurrent/Executor;)V

    iget-object v4, p0, Lio/grpc/internal/SingleTransportChannel;->transportProvider:Lio/grpc/internal/ClientCallImpl$ClientTransportProvider;

    iget-object v5, p0, Lio/grpc/internal/SingleTransportChannel;->deadlineCancellationExecutor:Ljava/util/concurrent/ScheduledExecutorService;

    move-object v0, v6

    move-object v1, p1

    move-object v3, p2

    invoke-direct/range {v0 .. v5}, Lio/grpc/internal/ClientCallImpl;-><init>(Lio/grpc/MethodDescriptor;Ljava/util/concurrent/Executor;Lio/grpc/CallOptions;Lio/grpc/internal/ClientCallImpl$ClientTransportProvider;Ljava/util/concurrent/ScheduledExecutorService;)V

    return-object v6
.end method