NioClient$Handler.smali

.class Lorg/bitcoinj/net/NioClient$Handler;
.super Lorg/bitcoinj/net/AbstractTimeoutHandler;
.source "NioClient.java"

# interfaces
.implements Lorg/bitcoinj/net/StreamConnection;


# instance fields
.field private closeCalled:Z

.field private closeOnOpen:Z

.field final synthetic this$0:Lorg/bitcoinj/net/NioClient;

.field private final upstreamConnection:Lorg/bitcoinj/net/StreamConnection;

.field private writeTarget:Lorg/bitcoinj/net/MessageWriteTarget;


# direct methods
.method constructor <init>(Lorg/bitcoinj/net/NioClient;Lorg/bitcoinj/net/StreamConnection;I)V
    .registers 5

    .prologue
    const/4 v0, 0x0

    .line 42
    iput-object p1, p0, Lorg/bitcoinj/net/NioClient$Handler;->this$0:Lorg/bitcoinj/net/NioClient;

    invoke-direct {p0}, Lorg/bitcoinj/net/AbstractTimeoutHandler;-><init>()V

    .line 40
    iput-boolean v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->closeOnOpen:Z

    .line 41
    iput-boolean v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->closeCalled:Z

    .line 43
    iput-object p2, p0, Lorg/bitcoinj/net/NioClient$Handler;->upstreamConnection:Lorg/bitcoinj/net/StreamConnection;

    .line 44
    invoke-virtual {p0, p3}, Lorg/bitcoinj/net/NioClient$Handler;->setSocketTimeout(I)V

    .line 45
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/bitcoinj/net/NioClient$Handler;->setTimeoutEnabled(Z)V

    .line 46
    return-void
.end method

.method static synthetic access$200(Lorg/bitcoinj/net/NioClient$Handler;)Lorg/bitcoinj/net/MessageWriteTarget;
    .registers 2

    .prologue
    .line 37
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->writeTarget:Lorg/bitcoinj/net/MessageWriteTarget;

    return-object v0
.end method


# virtual methods
.method public declared-synchronized connectionClosed()V
    .registers 2

    .prologue
    .line 56
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->this$0:Lorg/bitcoinj/net/NioClient;

    # getter for: Lorg/bitcoinj/net/NioClient;->manager:Lorg/bitcoinj/net/NioClientManager;
    invoke-static {v0}, Lorg/bitcoinj/net/NioClient;->access$000(Lorg/bitcoinj/net/NioClient;)Lorg/bitcoinj/net/NioClientManager;

    move-result-object v0

    invoke-virtual {v0}, Lorg/bitcoinj/net/NioClientManager;->stopAsync()Lcom/google/common/util/concurrent/Service;

    .line 57
    iget-boolean v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->closeCalled:Z

    if-nez v0, :cond_16

    .line 58
    const/4 v0, 0x1

    iput-boolean v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->closeCalled:Z

    .line 59
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->upstreamConnection:Lorg/bitcoinj/net/StreamConnection;

    invoke-interface {v0}, Lorg/bitcoinj/net/StreamConnection;->connectionClosed()V
    :try_end_16
    .catchall {:try_start_1 .. :try_end_16} :catchall_18

    .line 61
    :cond_16
    monitor-exit p0

    return-void

    .line 56
    :catchall_18
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public declared-synchronized connectionOpened()V
    .registers 2

    .prologue
    .line 65
    monitor-enter p0

    :try_start_1
    iget-boolean v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->closeOnOpen:Z

    if-nez v0, :cond_a

    .line 66
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->upstreamConnection:Lorg/bitcoinj/net/StreamConnection;

    invoke-interface {v0}, Lorg/bitcoinj/net/StreamConnection;->connectionOpened()V
    :try_end_a
    .catchall {:try_start_1 .. :try_end_a} :catchall_c

    .line 67
    :cond_a
    monitor-exit p0

    return-void

    .line 65
    :catchall_c
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public getMaxMessageSize()I
    .registers 2

    .prologue
    .line 87
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->upstreamConnection:Lorg/bitcoinj/net/StreamConnection;

    invoke-interface {v0}, Lorg/bitcoinj/net/StreamConnection;->getMaxMessageSize()I

    move-result v0

    return v0
.end method

.method public receiveBytes(Ljava/nio/ByteBuffer;)I
    .registers 3

    .prologue
    .line 71
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->upstreamConnection:Lorg/bitcoinj/net/StreamConnection;

    invoke-interface {v0, p1}, Lorg/bitcoinj/net/StreamConnection;->receiveBytes(Ljava/nio/ByteBuffer;)I

    move-result v0

    return v0
.end method

.method public declared-synchronized setWriteTarget(Lorg/bitcoinj/net/MessageWriteTarget;)V
    .registers 3

    .prologue
    .line 76
    monitor-enter p0

    :try_start_1
    iget-boolean v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->closeOnOpen:Z

    if-eqz v0, :cond_a

    .line 77
    invoke-interface {p1}, Lorg/bitcoinj/net/MessageWriteTarget;->closeConnection()V
    :try_end_8
    .catchall {:try_start_1 .. :try_end_8} :catchall_16

    .line 83
    :goto_8
    monitor-exit p0

    return-void

    .line 79
    :cond_a
    const/4 v0, 0x0

    :try_start_b
    invoke-virtual {p0, v0}, Lorg/bitcoinj/net/NioClient$Handler;->setTimeoutEnabled(Z)V

    .line 80
    iput-object p1, p0, Lorg/bitcoinj/net/NioClient$Handler;->writeTarget:Lorg/bitcoinj/net/MessageWriteTarget;

    .line 81
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->upstreamConnection:Lorg/bitcoinj/net/StreamConnection;

    invoke-interface {v0, p1}, Lorg/bitcoinj/net/StreamConnection;->setWriteTarget(Lorg/bitcoinj/net/MessageWriteTarget;)V
    :try_end_15
    .catchall {:try_start_b .. :try_end_15} :catchall_16

    goto :goto_8

    .line 76
    :catchall_16
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method protected declared-synchronized timeoutOccurred()V
    .registers 2

    .prologue
    .line 50
    monitor-enter p0

    const/4 v0, 0x1

    :try_start_2
    iput-boolean v0, p0, Lorg/bitcoinj/net/NioClient$Handler;->closeOnOpen:Z

    .line 51
    invoke-virtual {p0}, Lorg/bitcoinj/net/NioClient$Handler;->connectionClosed()V
    :try_end_7
    .catchall {:try_start_2 .. :try_end_7} :catchall_9

    .line 52
    monitor-exit p0

    return-void

    .line 50
    :catchall_9
    move-exception v0

    monitor-exit p0

    throw v0
.end method