NioReadWriteProcessor.smali
.class public final Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;
.super Ljava/lang/Object;
.source "NioReadWriteProcessor.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;
}
.end annotation
# static fields
.field private static G_SOCKET_ID:I
# instance fields
.field private TAG:Ljava/lang/String;
.field private closed:Z
.field private connect_timeout:J
.field private mClient:Lcom/open/net/client/structures/BaseClient;
.field private mConnectProcessor:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;
.field private mConnectThread:Ljava/lang/Thread;
.field private mIp:Ljava/lang/String;
.field private mNioConnectListener:Lcom/open/net/client/impl/tcp/nio/NioConnectListener;
.field private mPort:I
.field private mSelector:Ljava/nio/channels/Selector;
.field private mSocketChannel:Ljava/nio/channels/SocketChannel;
.field private mSocketId:I
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>(Ljava/lang/String;IJLcom/open/net/client/structures/BaseClient;Lcom/open/net/client/impl/tcp/nio/NioConnectListener;)V
.registers 9
.line 43
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "NioReadWriteProcessor"
.line 22
iput-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->TAG:Ljava/lang/String;
const-string v0, "192.168.1.1"
.line 27
iput-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mIp:Ljava/lang/String;
const/16 v0, 0x270f
.line 28
iput v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mPort:I
const-wide/16 v0, 0x2710
.line 29
iput-wide v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->connect_timeout:J
const/4 v0, 0x0
.line 39
iput-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mConnectThread:Ljava/lang/Thread;
const/4 v0, 0x0
.line 41
iput-boolean v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->closed:Z
.line 44
sget v0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->G_SOCKET_ID:I
add-int/lit8 v0, v0, 0x1
sput v0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->G_SOCKET_ID:I
.line 46
iput v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketId:I
.line 47
iput-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mIp:Ljava/lang/String;
.line 48
iput p2, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mPort:I
.line 49
iput-wide p3, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->connect_timeout:J
.line 50
iput-object p5, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mClient:Lcom/open/net/client/structures/BaseClient;
.line 51
iput-object p6, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mNioConnectListener:Lcom/open/net/client/impl/tcp/nio/NioConnectListener;
return-void
.end method
.method static synthetic access$100(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/Selector;
.registers 1
.line 20
iget-object p0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
return-object p0
.end method
.method static synthetic access$102(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;Ljava/nio/channels/Selector;)Ljava/nio/channels/Selector;
.registers 2
.line 20
iput-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
return-object p1
.end method
.method static synthetic access$200(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/nio/channels/SocketChannel;
.registers 1
.line 20
iget-object p0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
return-object p0
.end method
.method static synthetic access$202(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;Ljava/nio/channels/SocketChannel;)Ljava/nio/channels/SocketChannel;
.registers 2
.line 20
iput-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
return-object p1
.end method
.method static synthetic access$300(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Ljava/lang/String;
.registers 1
.line 20
iget-object p0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mIp:Ljava/lang/String;
return-object p0
.end method
.method static synthetic access$400(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)I
.registers 1
.line 20
iget p0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mPort:I
return p0
.end method
.method static synthetic access$500(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Lcom/open/net/client/structures/BaseClient;
.registers 1
.line 20
iget-object p0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mClient:Lcom/open/net/client/structures/BaseClient;
return-object p0
.end method
.method static synthetic access$600(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)J
.registers 3
.line 20
iget-wide v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->connect_timeout:J
return-wide v0
.end method
.method static synthetic access$700(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Z
.registers 1
.line 20
iget-boolean p0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->closed:Z
return p0
.end method
.method static synthetic access$800(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)Lcom/open/net/client/impl/tcp/nio/NioConnectListener;
.registers 1
.line 20
iget-object p0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mNioConnectListener:Lcom/open/net/client/impl/tcp/nio/NioConnectListener;
return-object p0
.end method
# virtual methods
.method public declared-synchronized close()V
.registers 4
monitor-enter p0
const/4 v0, 0x1
.line 61
:try_start_2
iput-boolean v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->closed:Z
.line 63
iget-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
:try_end_6
.catchall {:try_start_2 .. :try_end_6} :catchall_3c
const/4 v1, 0x0
if-eqz v0, :cond_29
.line 65
:try_start_9
iget-object v2, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
invoke-virtual {v0, v2}, Ljava/nio/channels/SocketChannel;->keyFor(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;
move-result-object v0
if-eqz v0, :cond_14
.line 67
invoke-virtual {v0}, Ljava/nio/channels/SelectionKey;->cancel()V
.line 69
:cond_14
iget-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
invoke-virtual {v0}, Ljava/nio/channels/SocketChannel;->socket()Ljava/net/Socket;
move-result-object v0
invoke-virtual {v0}, Ljava/net/Socket;->close()V
.line 70
iget-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
invoke-virtual {v0}, Ljava/nio/channels/SocketChannel;->close()V
.line 71
iput-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketChannel:Ljava/nio/channels/SocketChannel;
:try_end_24
.catch Ljava/io/IOException; {:try_start_9 .. :try_end_24} :catch_25
.catchall {:try_start_9 .. :try_end_24} :catchall_3c
goto :goto_29
:catch_25
move-exception v0
.line 73
:try_start_26
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
.line 77
:cond_29
:goto_29
iget-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
:try_end_2b
.catchall {:try_start_26 .. :try_end_2b} :catchall_3c
if-eqz v0, :cond_37
.line 79
:try_start_2d
invoke-virtual {v0}, Ljava/nio/channels/Selector;->close()V
:try_end_30
.catch Ljava/io/IOException; {:try_start_2d .. :try_end_30} :catch_31
.catchall {:try_start_2d .. :try_end_30} :catchall_3c
goto :goto_35
:catch_31
move-exception v0
.line 81
:try_start_32
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
.line 83
:goto_35
iput-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSelector:Ljava/nio/channels/Selector;
.line 86
:cond_37
invoke-virtual {p0}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->wakeUp()V
:try_end_3a
.catchall {:try_start_32 .. :try_end_3a} :catchall_3c
.line 87
monitor-exit p0
return-void
:catchall_3c
move-exception v0
monitor-exit p0
throw v0
.end method
.method public onSocketExit(I)V
.registers 5
.line 96
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
iget-object v2, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->TAG:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "onSocketExit mSocketId "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mSocketId:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " exit_code "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
.line 98
invoke-virtual {p0}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->close()V
.line 99
iget-object p1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mNioConnectListener:Lcom/open/net/client/impl/tcp/nio/NioConnectListener;
if-eqz p1, :cond_2f
.line 100
invoke-interface {p1, p0}, Lcom/open/net/client/impl/tcp/nio/NioConnectListener;->onConnectFailed(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;)V
:cond_2f
return-void
.end method
.method public start()V
.registers 3
.line 55
new-instance v0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;-><init>(Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$1;)V
iput-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mConnectProcessor:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;
.line 56
new-instance v0, Ljava/lang/Thread;
iget-object v1, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mConnectProcessor:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;
invoke-direct {v0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
iput-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mConnectThread:Ljava/lang/Thread;
.line 57
invoke-virtual {v0}, Ljava/lang/Thread;->start()V
return-void
.end method
.method public wakeUp()V
.registers 2
.line 90
iget-object v0, p0, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor;->mConnectProcessor:Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;
if-eqz v0, :cond_7
.line 91
invoke-virtual {v0}, Lcom/open/net/client/impl/tcp/nio/processor/NioReadWriteProcessor$ConnectRunnable;->wakeUp()V
:cond_7
return-void
.end method