NioClient.smali

.class public Lorg/bitcoinj/net/NioClient;
.super Ljava/lang/Object;
.source "NioClient.java"

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


# static fields
.field private static final log:Lorg/slf4j/Logger;


# instance fields
.field private final handler:Lorg/bitcoinj/net/NioClient$Handler;

.field private final manager:Lorg/bitcoinj/net/NioClientManager;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 32
    const-class v0, Lorg/bitcoinj/net/NioClient;

    invoke-static {v0}, Lorg/slf4j/LoggerFactory;->getLogger(Ljava/lang/Class;)Lorg/slf4j/Logger;

    move-result-object v0

    sput-object v0, Lorg/bitcoinj/net/NioClient;->log:Lorg/slf4j/Logger;

    return-void
.end method

.method public constructor <init>(Ljava/net/SocketAddress;Lorg/bitcoinj/net/StreamConnection;I)V
    .registers 6

    .prologue
    .line 101
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 35
    new-instance v0, Lorg/bitcoinj/net/NioClientManager;

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

    iput-object v0, p0, Lorg/bitcoinj/net/NioClient;->manager:Lorg/bitcoinj/net/NioClientManager;

    .line 102
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient;->manager:Lorg/bitcoinj/net/NioClientManager;

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

    .line 103
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient;->manager:Lorg/bitcoinj/net/NioClientManager;

    invoke-virtual {v0}, Lorg/bitcoinj/net/NioClientManager;->awaitRunning()V

    .line 104
    new-instance v0, Lorg/bitcoinj/net/NioClient$Handler;

    invoke-direct {v0, p0, p2, p3}, Lorg/bitcoinj/net/NioClient$Handler;-><init>(Lorg/bitcoinj/net/NioClient;Lorg/bitcoinj/net/StreamConnection;I)V

    iput-object v0, p0, Lorg/bitcoinj/net/NioClient;->handler:Lorg/bitcoinj/net/NioClient$Handler;

    .line 105
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient;->manager:Lorg/bitcoinj/net/NioClientManager;

    iget-object v1, p0, Lorg/bitcoinj/net/NioClient;->handler:Lorg/bitcoinj/net/NioClient$Handler;

    invoke-virtual {v0, p1, v1}, Lorg/bitcoinj/net/NioClientManager;->openConnection(Ljava/net/SocketAddress;Lorg/bitcoinj/net/StreamConnection;)Lcom/google/common/util/concurrent/y;

    move-result-object v0

    new-instance v1, Lorg/bitcoinj/net/NioClient$1;

    invoke-direct {v1, p0, p1}, Lorg/bitcoinj/net/NioClient$1;-><init>(Lorg/bitcoinj/net/NioClient;Ljava/net/SocketAddress;)V

    invoke-static {v0, v1}, Lcom/google/common/util/concurrent/r;->a(Lcom/google/common/util/concurrent/y;Lcom/google/common/util/concurrent/q;)V

    .line 115
    return-void
.end method

.method static synthetic access$000(Lorg/bitcoinj/net/NioClient;)Lorg/bitcoinj/net/NioClientManager;
    .registers 2

    .prologue
    .line 31
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient;->manager:Lorg/bitcoinj/net/NioClientManager;

    return-object v0
.end method

.method static synthetic access$100()Lorg/slf4j/Logger;
    .registers 1

    .prologue
    .line 31
    sget-object v0, Lorg/bitcoinj/net/NioClient;->log:Lorg/slf4j/Logger;

    return-object v0
.end method


# virtual methods
.method public closeConnection()V
    .registers 2

    .prologue
    .line 119
    iget-object v0, p0, Lorg/bitcoinj/net/NioClient;->handler:Lorg/bitcoinj/net/NioClient$Handler;

    # getter for: Lorg/bitcoinj/net/NioClient$Handler;->writeTarget:Lorg/bitcoinj/net/MessageWriteTarget;
    invoke-static {v0}, Lorg/bitcoinj/net/NioClient$Handler;->access$200(Lorg/bitcoinj/net/NioClient$Handler;)Lorg/bitcoinj/net/MessageWriteTarget;

    move-result-object v0

    invoke-interface {v0}, Lorg/bitcoinj/net/MessageWriteTarget;->closeConnection()V

    .line 120
    return-void
.end method

.method public declared-synchronized writeBytes([B)V
    .registers 3

    .prologue
    .line 124
    monitor-enter p0

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

    # getter for: Lorg/bitcoinj/net/NioClient$Handler;->writeTarget:Lorg/bitcoinj/net/MessageWriteTarget;
    invoke-static {v0}, Lorg/bitcoinj/net/NioClient$Handler;->access$200(Lorg/bitcoinj/net/NioClient$Handler;)Lorg/bitcoinj/net/MessageWriteTarget;

    move-result-object v0

    invoke-interface {v0, p1}, Lorg/bitcoinj/net/MessageWriteTarget;->writeBytes([B)V
    :try_end_a
    .catchall {:try_start_1 .. :try_end_a} :catchall_c

    .line 125
    monitor-exit p0

    return-void

    .line 124
    :catchall_c
    move-exception v0

    monitor-exit p0

    throw v0
.end method