AbstractServerStream.smali
.class public abstract Lio/grpc/internal/AbstractServerStream;
.super Lio/grpc/internal/AbstractStream2;
.source "AbstractServerStream.java"
# interfaces
.implements Lio/grpc/internal/ServerStream;
.implements Lio/grpc/internal/MessageFramer$Sink;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/grpc/internal/AbstractServerStream$TransportState;,
Lio/grpc/internal/AbstractServerStream$Sink;
}
.end annotation
# instance fields
.field private final framer:Lio/grpc/internal/MessageFramer;
.field private headersSent:Z
.field private outboundClosed:Z
# direct methods
.method protected constructor <init>(Lio/grpc/internal/WritableBufferAllocator;)V
.registers 3
.line 1
invoke-direct {p0}, Lio/grpc/internal/AbstractStream2;-><init>()V
.line 2
new-instance v0, Lio/grpc/internal/MessageFramer;
invoke-direct {v0, p0, p1}, Lio/grpc/internal/MessageFramer;-><init>(Lio/grpc/internal/MessageFramer$Sink;Lio/grpc/internal/WritableBufferAllocator;)V
iput-object v0, p0, Lio/grpc/internal/AbstractServerStream;->framer:Lio/grpc/internal/MessageFramer;
return-void
.end method
.method private addStatusToTrailers(Lio/grpc/Metadata;Lio/grpc/Status;)V
.registers 4
.line 1
sget-object v0, Lio/grpc/Status;->CODE_KEY:Lio/grpc/Metadata$Key;
invoke-virtual {p1, v0}, Lio/grpc/Metadata;->removeAll(Lio/grpc/Metadata$Key;)Ljava/lang/Iterable;
.line 2
sget-object v0, Lio/grpc/Status;->MESSAGE_KEY:Lio/grpc/Metadata$Key;
invoke-virtual {p1, v0}, Lio/grpc/Metadata;->removeAll(Lio/grpc/Metadata$Key;)Ljava/lang/Iterable;
.line 3
sget-object v0, Lio/grpc/Status;->CODE_KEY:Lio/grpc/Metadata$Key;
invoke-virtual {p1, v0, p2}, Lio/grpc/Metadata;->put(Lio/grpc/Metadata$Key;Ljava/lang/Object;)V
.line 4
invoke-virtual {p2}, Lio/grpc/Status;->getDescription()Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_1e
.line 5
sget-object v0, Lio/grpc/Status;->MESSAGE_KEY:Lio/grpc/Metadata$Key;
invoke-virtual {p2}, Lio/grpc/Status;->getDescription()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, v0, p2}, Lio/grpc/Metadata;->put(Lio/grpc/Metadata$Key;Ljava/lang/Object;)V
:cond_1e
return-void
.end method
# virtual methods
.method protected abstract abstractServerStreamSink()Lio/grpc/internal/AbstractServerStream$Sink;
.end method
.method public attributes()Lio/grpc/Attributes;
.registers 2
.line 1
sget-object v0, Lio/grpc/Attributes;->EMPTY:Lio/grpc/Attributes;
return-object v0
.end method
.method public final cancel(Lio/grpc/Status;)V
.registers 3
.line 1
invoke-virtual {p0}, Lio/grpc/internal/AbstractServerStream;->abstractServerStreamSink()Lio/grpc/internal/AbstractServerStream$Sink;
move-result-object v0
invoke-interface {v0, p1}, Lio/grpc/internal/AbstractServerStream$Sink;->cancel(Lio/grpc/Status;)V
return-void
.end method
.method public final close(Lio/grpc/Status;Lio/grpc/Metadata;)V
.registers 4
const-string v0, "status"
.line 1
invoke-static {p1, v0}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v0, "trailers"
.line 2
invoke-static {p2, v0}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 3
iget-boolean v0, p0, Lio/grpc/internal/AbstractServerStream;->outboundClosed:Z
if-nez v0, :cond_20
const/4 v0, 0x1
.line 4
iput-boolean v0, p0, Lio/grpc/internal/AbstractServerStream;->outboundClosed:Z
.line 5
invoke-virtual {p0}, Lio/grpc/internal/AbstractStream2;->endOfMessages()V
.line 6
invoke-direct {p0, p2, p1}, Lio/grpc/internal/AbstractServerStream;->addStatusToTrailers(Lio/grpc/Metadata;Lio/grpc/Status;)V
.line 7
invoke-virtual {p0}, Lio/grpc/internal/AbstractServerStream;->abstractServerStreamSink()Lio/grpc/internal/AbstractServerStream$Sink;
move-result-object p1
iget-boolean v0, p0, Lio/grpc/internal/AbstractServerStream;->headersSent:Z
invoke-interface {p1, p2, v0}, Lio/grpc/internal/AbstractServerStream$Sink;->writeTrailers(Lio/grpc/Metadata;Z)V
:cond_20
return-void
.end method
.method public final deliverFrame(Lio/grpc/internal/WritableBuffer;ZZ)V
.registers 5
.line 1
invoke-virtual {p0}, Lio/grpc/internal/AbstractServerStream;->abstractServerStreamSink()Lio/grpc/internal/AbstractServerStream$Sink;
move-result-object v0
if-eqz p2, :cond_7
const/4 p3, 0x0
:cond_7
invoke-interface {v0, p1, p3}, Lio/grpc/internal/AbstractServerStream$Sink;->writeFrame(Lio/grpc/internal/WritableBuffer;Z)V
return-void
.end method
.method protected final framer()Lio/grpc/internal/MessageFramer;
.registers 2
.line 1
iget-object v0, p0, Lio/grpc/internal/AbstractServerStream;->framer:Lio/grpc/internal/MessageFramer;
return-object v0
.end method
.method public final request(I)V
.registers 3
.line 1
invoke-virtual {p0}, Lio/grpc/internal/AbstractServerStream;->abstractServerStreamSink()Lio/grpc/internal/AbstractServerStream$Sink;
move-result-object v0
invoke-interface {v0, p1}, Lio/grpc/internal/AbstractServerStream$Sink;->request(I)V
return-void
.end method
.method protected abstract transportState()Lio/grpc/internal/AbstractServerStream$TransportState;
.end method
.method protected bridge synthetic transportState()Lio/grpc/internal/AbstractStream2$TransportState;
.registers 2
.line 1
invoke-virtual {p0}, Lio/grpc/internal/AbstractServerStream;->transportState()Lio/grpc/internal/AbstractServerStream$TransportState;
move-result-object v0
return-object v0
.end method
.method public final writeHeaders(Lio/grpc/Metadata;)V
.registers 3
const-string v0, "headers"
.line 1
invoke-static {p1, v0}, Lcom/google/common/base/r;->a(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const/4 v0, 0x1
.line 2
iput-boolean v0, p0, Lio/grpc/internal/AbstractServerStream;->headersSent:Z
.line 3
invoke-virtual {p0}, Lio/grpc/internal/AbstractServerStream;->abstractServerStreamSink()Lio/grpc/internal/AbstractServerStream$Sink;
move-result-object v0
invoke-interface {v0, p1}, Lio/grpc/internal/AbstractServerStream$Sink;->writeHeaders(Lio/grpc/Metadata;)V
return-void
.end method