NioReadWriteProcessor$ConnectRunnable.smali

.class Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;
.super Ljava/lang/Object;
.source "NioReadWriteProcessor.java"

# interfaces
.implements Ljava/lang/Runnable;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x2
    name = "ConnectRunnable"
.end annotation


# instance fields
.field final synthetic this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;


# direct methods
.method private constructor <init>(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)V
    .registers 2

    .line 104
    iput-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

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

    return-void
.end method

.method synthetic constructor <init>(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$1;)V
    .registers 3

    .line 104
    invoke-direct {p0, p1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;-><init>(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)V

    return-void
.end method

.method private connect(J)Z
    .registers 6
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    const-wide/16 v0, -0x1

    cmp-long v0, p1, v0

    if-nez v0, :cond_11

    .line 192
    iget-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {p1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object p1

    invoke-virtual {p1}, Ljava/nio/channels/Selector;->select()I

    move-result p1

    goto :goto_1b

    .line 194
    :cond_11
    iget-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {v0}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object v0

    invoke-virtual {v0, p1, p2}, Ljava/nio/channels/Selector;->select(J)I

    move-result p1

    :goto_1b
    const/4 p2, 0x0

    const/4 v0, 0x0

    if-lez p1, :cond_5d

    .line 197
    iget-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {p1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object p1

    invoke-virtual {p1}, Ljava/nio/channels/Selector;->selectedKeys()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    .line 198
    :cond_2d
    :goto_2d
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_89

    .line 199
    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/nio/channels/SelectionKey;

    .line 200
    invoke-interface {p1}, Ljava/util/Iterator;->remove()V

    .line 202
    invoke-virtual {v1}, Ljava/nio/channels/SelectionKey;->isValid()Z

    move-result v2

    if-nez v2, :cond_43

    goto :goto_2d

    .line 206
    :cond_43
    invoke-virtual {v1}, Ljava/nio/channels/SelectionKey;->isConnectable()Z

    move-result v2

    if-eqz v2, :cond_2d

    .line 207
    invoke-direct {p0, v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->finishConnection(Ljava/nio/channels/SelectionKey;)Z

    move-result v0

    if-nez v0, :cond_2d

    .line 210
    invoke-virtual {v1}, Ljava/nio/channels/SelectionKey;->cancel()V

    .line 211
    invoke-virtual {v1, p2}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object;

    .line 212
    invoke-virtual {v1}, Ljava/nio/channels/SelectionKey;->channel()Ljava/nio/channels/SelectableChannel;

    move-result-object p1

    invoke-virtual {p1}, Ljava/nio/channels/SelectableChannel;->close()V

    goto :goto_89

    .line 220
    :cond_5d
    :try_start_5d
    iget-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {p1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object p1

    invoke-virtual {p1}, Ljava/nio/channels/Selector;->keys()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    .line 221
    :goto_6b
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_89

    .line 222
    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/nio/channels/SelectionKey;

    .line 223
    invoke-virtual {v1}, Ljava/nio/channels/SelectionKey;->cancel()V

    .line 224
    invoke-virtual {v1, p2}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object;

    .line 225
    invoke-virtual {v1}, Ljava/nio/channels/SelectionKey;->channel()Ljava/nio/channels/SelectableChannel;

    move-result-object v1

    invoke-virtual {v1}, Ljava/nio/channels/SelectableChannel;->close()V
    :try_end_84
    .catch Ljava/lang/Exception; {:try_start_5d .. :try_end_84} :catch_85

    goto :goto_6b

    :catch_85
    move-exception p1

    .line 228
    invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V

    :cond_89
    :goto_89
    return v0
.end method

.method private finishConnection(Ljava/nio/channels/SelectionKey;)Z
    .registers 5

    const/4 v0, 0x1

    .line 238
    :try_start_1
    invoke-virtual {p1}, Ljava/nio/channels/SelectionKey;->channel()Ljava/nio/channels/SelectableChannel;

    move-result-object v1

    check-cast v1, Ljava/nio/channels/SocketChannel;

    .line 239
    invoke-virtual {v1}, Ljava/nio/channels/SocketChannel;->finishConnect()Z

    move-result v1

    if-eqz v1, :cond_2d

    .line 241
    invoke-virtual {p1, v0}, Ljava/nio/channels/SelectionKey;->interestOps(I)Ljava/nio/channels/SelectionKey;

    .line 242
    iget-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mNioConnectListener:Lcom/open/net/client/impl/tcp/nio/NioConnectListener;
    invoke-static {p1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$800(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Lcom/open/net/client/impl/tcp/nio/NioConnectListener;

    move-result-object p1

    if-eqz p1, :cond_2d

    .line 243
    iget-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mNioConnectListener:Lcom/open/net/client/impl/tcp/nio/NioConnectListener;
    invoke-static {p1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$800(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Lcom/open/net/client/impl/tcp/nio/NioConnectListener;

    move-result-object p1

    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$200(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/SocketChannel;

    move-result-object v2

    invoke-interface {p1, v1, v2}, Lcom/open/net/client/impl/tcp/nio/NioConnectListener;->onConnectSuccess(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;Ljava/nio/channels/SocketChannel;)V
    :try_end_27
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28

    goto :goto_2d

    :catch_28
    move-exception p1

    .line 247
    invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V

    const/4 v0, 0x0

    :cond_2d
    :goto_2d
    return v0
.end method


# virtual methods
.method public run()V
    .registers 7

    const/4 v0, 0x1

    .line 116
    :try_start_1
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    invoke-static {}, Ljava/nio/channels/spi/SelectorProvider;->provider()Ljava/nio/channels/spi/SelectorProvider;

    move-result-object v2

    invoke-virtual {v2}, Ljava/nio/channels/spi/SelectorProvider;->openSelector()Ljava/nio/channels/spi/AbstractSelector;

    move-result-object v2

    # setter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {v1, v2}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$102(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;Ljava/nio/channels/Selector;)Ljava/nio/channels/Selector;

    .line 117
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    invoke-static {}, Ljava/nio/channels/SocketChannel;->open()Ljava/nio/channels/SocketChannel;

    move-result-object v2

    # setter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
    invoke-static {v1, v2}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$202(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;Ljava/nio/channels/SocketChannel;)Ljava/nio/channels/SocketChannel;

    .line 118
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$200(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/SocketChannel;

    move-result-object v1

    const/4 v2, 0x0

    invoke-virtual {v1, v2}, Ljava/nio/channels/SocketChannel;->configureBlocking(Z)Ljava/nio/channels/SelectableChannel;

    .line 120
    new-instance v1, Ljava/net/InetSocketAddress;

    iget-object v3, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mIp:Ljava/lang/String;
    invoke-static {v3}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$300(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/lang/String;

    move-result-object v3

    iget-object v4, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mPort:I
    invoke-static {v4}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$400(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)I

    move-result v4

    invoke-direct {v1, v3, v4}, Ljava/net/InetSocketAddress;-><init>(Ljava/lang/String;I)V

    .line 121
    iget-object v3, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
    invoke-static {v3}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$200(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/SocketChannel;

    move-result-object v3

    invoke-virtual {v3, v1}, Ljava/nio/channels/SocketChannel;->connect(Ljava/net/SocketAddress;)Z

    .line 122
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$200(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/SocketChannel;

    move-result-object v1

    iget-object v3, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {v3}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object v3

    const/16 v4, 0x8

    iget-object v5, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mClient:Lcom/open/net/client/structures/BaseClient;
    invoke-static {v5}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$500(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Lcom/open/net/client/structures/BaseClient;

    move-result-object v5

    invoke-virtual {v1, v3, v4, v5}, Ljava/nio/channels/SocketChannel;->register(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;

    .line 125
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->connect_timeout:J
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$600(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)J

    move-result-wide v3

    invoke-direct {p0, v3, v4}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->connect(J)Z

    move-result v1

    if-eqz v1, :cond_10b

    :cond_5e
    :goto_5e
    if-nez v2, :cond_10b

    .line 132
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object v1

    invoke-virtual {v1}, Ljava/nio/channels/Selector;->select()I

    move-result v1

    if-lez v1, :cond_d6

    .line 134
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object v1

    invoke-virtual {v1}, Ljava/nio/channels/Selector;->selectedKeys()Ljava/util/Set;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v1

    .line 135
    :cond_7a
    :goto_7a
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v3

    if-eqz v3, :cond_d6

    .line 136
    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Ljava/nio/channels/SelectionKey;

    .line 137
    invoke-interface {v1}, Ljava/util/Iterator;->remove()V

    .line 139
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->isValid()Z

    move-result v4

    if-nez v4, :cond_90

    goto :goto_7a

    .line 143
    :cond_90
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->isReadable()Z

    move-result v4

    const/4 v5, 0x0

    if-eqz v4, :cond_b2

    .line 144
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->attachment()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lcom/open/net/client/structures/BaseClient;

    .line 145
    invoke-virtual {v4}, Lcom/open/net/client/structures/BaseClient;->onRead()Z

    move-result v4

    if-nez v4, :cond_7a

    .line 148
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->cancel()V

    .line 149
    invoke-virtual {v3, v5}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object;

    .line 150
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->channel()Ljava/nio/channels/SelectableChannel;

    move-result-object v1

    invoke-virtual {v1}, Ljava/nio/channels/SelectableChannel;->close()V

    :goto_b0
    move v2, v0

    goto :goto_d6

    .line 154
    :cond_b2
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->isWritable()Z

    move-result v4

    if-eqz v4, :cond_7a

    .line 155
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->attachment()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lcom/open/net/client/structures/BaseClient;

    .line 156
    invoke-virtual {v4}, Lcom/open/net/client/structures/BaseClient;->onWrite()Z

    move-result v4

    if-nez v4, :cond_d2

    .line 159
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->cancel()V

    .line 160
    invoke-virtual {v3, v5}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object;

    .line 161
    invoke-virtual {v3}, Ljava/nio/channels/SelectionKey;->channel()Ljava/nio/channels/SelectableChannel;

    move-result-object v1

    invoke-virtual {v1}, Ljava/nio/channels/SelectableChannel;->close()V

    goto :goto_b0

    .line 164
    :cond_d2
    invoke-virtual {v3, v0}, Ljava/nio/channels/SelectionKey;->interestOps(I)Ljava/nio/channels/SelectionKey;

    goto :goto_7a

    :cond_d6
    :goto_d6
    if-nez v2, :cond_10b

    .line 169
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->closed:Z
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$700(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Z

    move-result v1

    if-eqz v1, :cond_e1

    goto :goto_10b

    .line 173
    :cond_e1
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mClient:Lcom/open/net/client/structures/BaseClient;
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$500(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Lcom/open/net/client/structures/BaseClient;

    move-result-object v1

    iget-object v1, v1, Lcom/open/net/client/structures/BaseClient;->mWriteMessageQueen:Lcom/open/net/client/structures/message/MessageWriteQueen;

    iget-object v1, v1, Lcom/open/net/client/structures/message/MessageWriteQueen;->mWriteQueen:Ljava/util/LinkedList;

    invoke-virtual {v1}, Ljava/util/LinkedList;->isEmpty()Z

    move-result v1

    if-nez v1, :cond_5e

    .line 174
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
    invoke-static {v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$200(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/SocketChannel;

    move-result-object v1

    iget-object v3, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {v3}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object v3

    invoke-virtual {v1, v3}, Ljava/nio/channels/SocketChannel;->keyFor(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;

    move-result-object v1

    const/4 v3, 0x4

    .line 175
    invoke-virtual {v1, v3}, Ljava/nio/channels/SelectionKey;->interestOps(I)Ljava/nio/channels/SelectionKey;
    :try_end_105
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_105} :catch_107

    goto/16 :goto_5e

    :catch_107
    move-exception v1

    .line 181
    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V

    .line 184
    :cond_10b
    :goto_10b
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    invoke-virtual {v1, v0}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->onSocketExit(I)V

    return-void
.end method

.method public wakeUp()V
    .registers 2

    .line 107
    iget-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {v0}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object v0

    if-eqz v0, :cond_11

    .line 108
    iget-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->this$0:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
    invoke-static {v0}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;

    move-result-object v0

    invoke-virtual {v0}, Ljava/nio/channels/Selector;->wakeup()Ljava/nio/channels/Selector;

    :cond_11
    return-void
.end method