StreamExitRequest.smali
.class public final Lcom/subgraph/orchid/circuits/StreamExitRequest;
.super Ljava/lang/Object;
.source "StreamExitRequest.java"
# interfaces
.implements Lcom/subgraph/orchid/d/a/c;
# instance fields
.field final bCS:Z
.field final bCT:Lcom/subgraph/orchid/d/d;
.field final bCU:Ljava/lang/Object;
.field private bCV:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
.field bCW:Lcom/subgraph/orchid/aa;
.field bCX:I
.field private bCY:Z
.field private bCZ:J
.field final hostname:Ljava/lang/String;
.field final port:I
.field private retryCount:I
# direct methods
.method constructor <init>(Ljava/lang/Object;Lcom/subgraph/orchid/d/d;I)V
.registers 10
.prologue
.line 31
const/4 v2, 0x1
const-string v3, ""
move-object v0, p0
move-object v1, p1
move-object v4, p2
move v5, p3
invoke-direct/range {v0 .. v5}, Lcom/subgraph/orchid/circuits/StreamExitRequest;-><init>(Ljava/lang/Object;ZLjava/lang/String;Lcom/subgraph/orchid/d/d;I)V
.line 32
return-void
.end method
.method constructor <init>(Ljava/lang/Object;Ljava/lang/String;I)V
.registers 10
.prologue
.line 35
const/4 v2, 0x0
const/4 v4, 0x0
move-object v0, p0
move-object v1, p1
move-object v3, p2
move v5, p3
invoke-direct/range {v0 .. v5}, Lcom/subgraph/orchid/circuits/StreamExitRequest;-><init>(Ljava/lang/Object;ZLjava/lang/String;Lcom/subgraph/orchid/d/d;I)V
.line 36
return-void
.end method
.method private constructor <init>(Ljava/lang/Object;ZLjava/lang/String;Lcom/subgraph/orchid/d/d;I)V
.registers 7
.prologue
.line 38
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 39
iput-object p1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCU:Ljava/lang/Object;
.line 40
iput-boolean p2, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCS:Z
.line 41
iput-object p3, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->hostname:Ljava/lang/String;
.line 42
iput-object p4, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCT:Lcom/subgraph/orchid/d/d;
.line 43
iput p5, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->port:I
.line 44
sget-object v0, Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;->NOT_COMPLETED:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
iput-object v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCV:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
.line 45
return-void
.end method
# virtual methods
.method public final JC()Lcom/subgraph/orchid/d/d;
.registers 2
.prologue
.line 52
iget-object v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCT:Lcom/subgraph/orchid/d/d;
return-object v0
.end method
.method public final La()Z
.registers 2
.prologue
.line 48
iget-boolean v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCS:Z
return v0
.end method
.method public final declared-synchronized Lb()J
.registers 5
.prologue
.line 68
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCZ:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-lez v0, :cond_d
.line 69
iget-wide v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCZ:J
:try_end_b
.catchall {:try_start_1 .. :try_end_b} :catchall_18
.line 73
:goto_b
monitor-exit p0
return-wide v0
.line 70
:cond_d
:try_start_d
iget v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->retryCount:I
:try_end_f
.catchall {:try_start_d .. :try_end_f} :catchall_18
const/4 v1, 0x2
if-ge v0, v1, :cond_15
.line 71
const-wide/16 v0, 0x2710
goto :goto_b
.line 73
:cond_15
const-wide/16 v0, 0x3a98
goto :goto_b
.line 68
:catchall_18
move-exception v0
monitor-exit p0
throw v0
.end method
.method final Lc()Lcom/subgraph/orchid/aa;
.registers 4
.prologue
.line 119
iget-object v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCU:Ljava/lang/Object;
monitor-enter v1
.line 120
:try_start_3
sget-object v0, Lcom/subgraph/orchid/circuits/StreamExitRequest$1;->bDa:[I
iget-object v2, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCV:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
invoke-virtual {v2}, Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;->ordinal()I
move-result v2
aget v0, v0, v2
packed-switch v0, :pswitch_data_44
.line 134
new-instance v0, Ljava/lang/IllegalStateException;
const-string v2, "Unknown completion status"
invoke-direct {v0, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 136
:catchall_18
move-exception v0
monitor-exit v1
:try_end_1a
.catchall {:try_start_3 .. :try_end_1a} :catchall_18
throw v0
.line 122
:pswitch_1b
:try_start_1b
new-instance v0, Ljava/lang/IllegalStateException;
const-string v2, "Request not completed"
invoke-direct {v0, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 124
:pswitch_23
new-instance v0, Lcom/subgraph/orchid/OpenFailedException;
const-string v2, "Failure at exit node"
invoke-direct {v0, v2}, Lcom/subgraph/orchid/OpenFailedException;-><init>(Ljava/lang/String;)V
throw v0
.line 126
:pswitch_2b
new-instance v0, Ljava/util/concurrent/TimeoutException;
invoke-direct {v0}, Ljava/util/concurrent/TimeoutException;-><init>()V
throw v0
.line 128
:pswitch_31
new-instance v0, Lcom/subgraph/orchid/StreamConnectFailedException;
iget v2, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCX:I
invoke-direct {v0, v2}, Lcom/subgraph/orchid/StreamConnectFailedException;-><init>(I)V
throw v0
.line 130
:pswitch_39
new-instance v0, Ljava/lang/InterruptedException;
invoke-direct {v0}, Ljava/lang/InterruptedException;-><init>()V
throw v0
.line 132
:pswitch_3f
iget-object v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCW:Lcom/subgraph/orchid/aa;
monitor-exit v1
:try_end_42
.catchall {:try_start_1b .. :try_end_42} :catchall_18
return-object v0
.line 120
nop
:pswitch_data_44
.packed-switch 0x1
:pswitch_1b
:pswitch_23
:pswitch_2b
:pswitch_31
:pswitch_39
:pswitch_3f
.end packed-switch
.end method
.method final declared-synchronized Ld()V
.registers 3
.prologue
.line 140
monitor-enter p0
:try_start_1
iget-object v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCU:Ljava/lang/Object;
monitor-enter v1
:try_end_4
.catchall {:try_start_1 .. :try_end_4} :catchall_1a
.line 141
const/4 v0, 0x0
:try_start_5
iput v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCX:I
.line 142
sget-object v0, Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;->NOT_COMPLETED:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
iput-object v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCV:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
.line 143
monitor-exit v1
:try_end_c
.catchall {:try_start_5 .. :try_end_c} :catchall_17
.line 144
:try_start_c
iget v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->retryCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->retryCount:I
.line 145
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCY:Z
:try_end_15
.catchall {:try_start_c .. :try_end_15} :catchall_1a
.line 146
monitor-exit p0
return-void
.line 143
:catchall_17
move-exception v0
:try_start_18
monitor-exit v1
:try_end_19
.catchall {:try_start_18 .. :try_end_19} :catchall_17
:try_start_19
throw v0
:try_end_1a
.catchall {:try_start_19 .. :try_end_1a} :catchall_1a
.line 140
:catchall_1a
move-exception v0
monitor-exit p0
throw v0
.end method
.method final declared-synchronized Le()Z
.registers 3
.prologue
const/4 v0, 0x1
.line 155
monitor-enter p0
:try_start_2
iget-boolean v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCY:Z
:try_end_4
.catchall {:try_start_2 .. :try_end_4} :catchall_d
if-eqz v1, :cond_9
const/4 v0, 0x0
.line 157
:goto_7
monitor-exit p0
return v0
.line 156
:cond_9
const/4 v1, 0x1
:try_start_a
iput-boolean v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCY:Z
:try_end_c
.catchall {:try_start_a .. :try_end_c} :catchall_d
goto :goto_7
.line 155
:catchall_d
move-exception v0
monitor-exit p0
throw v0
.end method
.method final declared-synchronized Lf()Z
.registers 2
.prologue
.line 161
monitor-enter p0
:try_start_1
iget-boolean v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCY:Z
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
monitor-exit p0
return v0
:catchall_5
move-exception v0
monitor-exit p0
throw v0
.end method
.method public final declared-synchronized M(J)V
.registers 4
.prologue
.line 64
monitor-enter p0
:try_start_1
iput-wide p1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCZ:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 65
monitor-exit p0
return-void
.line 64
:catchall_5
move-exception v0
monitor-exit p0
throw v0
.end method
.method final a(Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;)V
.registers 5
.prologue
.line 110
iget-object v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCV:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
sget-object v1, Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;->NOT_COMPLETED:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
if-eq v0, v1, :cond_27
.line 111
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Attempt to set completion state to "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " while status is "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCV:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 113
:cond_27
iput-object p1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCV:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
.line 114
iget-object v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCU:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->notifyAll()V
.line 115
return-void
.end method
.method public final getPort()I
.registers 2
.prologue
.line 60
iget v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->port:I
return v0
.end method
.method final isCompleted()Z
.registers 4
.prologue
.line 149
iget-object v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCU:Ljava/lang/Object;
monitor-enter v1
.line 150
:try_start_3
iget-object v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCV:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
sget-object v2, Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;->NOT_COMPLETED:Lcom/subgraph/orchid/circuits/StreamExitRequest$CompletionStatus;
if-eq v0, v2, :cond_c
const/4 v0, 0x1
:goto_a
monitor-exit v1
return v0
:cond_c
const/4 v0, 0x0
goto :goto_a
.line 151
:catchall_e
move-exception v0
monitor-exit v1
:try_end_10
.catchall {:try_start_3 .. :try_end_10} :catchall_e
throw v0
.end method
.method public final toString()Ljava/lang/String;
.registers 3
.prologue
.line 165
iget-boolean v0, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCS:Z
if-eqz v0, :cond_20
.line 166
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->bCT:Lcom/subgraph/orchid/d/d;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ":"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->port:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 168
:goto_1f
return-object v0
:cond_20
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->hostname:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ":"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/subgraph/orchid/circuits/StreamExitRequest;->port:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_1f
.end method