UdpBioClient.smali
.class public Lcom/open/net/client/impl/udp/bio/UdpBioClient;
.super Lcom/open/net/client/structures/BaseClient;
.source "UdpBioClient.java"
# instance fields
.field private mConnector:Lcom/open/net/client/impl/udp/bio/UdpBioConnector;
.field public mReadBuff:[B
.field private mReadDatagramPacket:Ljava/net/DatagramPacket;
.field private mSocket:Ljava/net/DatagramSocket;
.field public mWriteBuff:[B
.field private mWriteDatagramPacket:Ljava/net/DatagramPacket;
# direct methods
.method static constructor <clinit>()V
.registers 0
.line 22
invoke-static {}, Lcom/open/net/client/GClient;->init()V
return-void
.end method
.method public constructor <init>(Lcom/open/net/client/structures/BaseMessageProcessor;Lcom/open/net/client/structures/IConnectListener;)V
.registers 4
.line 29
invoke-direct {p0, p1}, Lcom/open/net/client/structures/BaseClient;-><init>(Lcom/open/net/client/structures/BaseMessageProcessor;)V
const p1, 0xffdc
new-array v0, p1, [B
.line 53
iput-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mWriteBuff:[B
new-array p1, p1, [B
.line 54
iput-object p1, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mReadBuff:[B
.line 30
new-instance p1, Lcom/open/net/client/impl/udp/bio/UdpBioConnector;
invoke-direct {p1, p0, p2}, Lcom/open/net/client/impl/udp/bio/UdpBioConnector;-><init>(Lcom/open/net/client/impl/udp/bio/UdpBioClient;Lcom/open/net/client/structures/IConnectListener;)V
iput-object p1, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mConnector:Lcom/open/net/client/impl/udp/bio/UdpBioConnector;
return-void
.end method
# virtual methods
.method public connect()V
.registers 2
.line 38
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mConnector:Lcom/open/net/client/impl/udp/bio/UdpBioConnector;
invoke-virtual {v0}, Lcom/open/net/client/impl/udp/bio/UdpBioConnector;->connect()V
return-void
.end method
.method public disconnect()V
.registers 2
.line 42
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mConnector:Lcom/open/net/client/impl/udp/bio/UdpBioConnector;
invoke-virtual {v0}, Lcom/open/net/client/impl/udp/bio/UdpBioConnector;->disconnect()V
return-void
.end method
.method public init(Ljava/net/DatagramSocket;Ljava/net/DatagramPacket;Ljava/net/DatagramPacket;)V
.registers 4
.line 57
iput-object p1, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mSocket:Ljava/net/DatagramSocket;
.line 58
iput-object p2, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mWriteDatagramPacket:Ljava/net/DatagramPacket;
.line 59
iput-object p3, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mReadDatagramPacket:Ljava/net/DatagramPacket;
return-void
.end method
.method public onCheckConnect()V
.registers 2
.line 64
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mConnector:Lcom/open/net/client/impl/udp/bio/UdpBioConnector;
invoke-virtual {v0}, Lcom/open/net/client/impl/udp/bio/UdpBioConnector;->checkConnect()V
return-void
.end method
.method public onClose()V
.registers 2
const/4 v0, 0x0
.line 69
iput-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mSocket:Ljava/net/DatagramSocket;
return-void
.end method
.method public onRead()Z
.registers 5
.line 76
:goto_0
:try_start_0
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mSocket:Ljava/net/DatagramSocket;
iget-object v1, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mReadDatagramPacket:Ljava/net/DatagramPacket;
invoke-virtual {v0, v1}, Ljava/net/DatagramSocket;->receive(Ljava/net/DatagramPacket;)V
.line 77
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mMessageProcessor:Lcom/open/net/client/structures/BaseMessageProcessor;
if-eqz v0, :cond_27
.line 78
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mMessageProcessor:Lcom/open/net/client/structures/BaseMessageProcessor;
iget-object v1, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mReadDatagramPacket:Ljava/net/DatagramPacket;
invoke-virtual {v1}, Ljava/net/DatagramPacket;->getData()[B
move-result-object v1
iget-object v2, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mReadDatagramPacket:Ljava/net/DatagramPacket;
invoke-virtual {v2}, Ljava/net/DatagramPacket;->getOffset()I
move-result v2
iget-object v3, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mReadDatagramPacket:Ljava/net/DatagramPacket;
invoke-virtual {v3}, Ljava/net/DatagramPacket;->getLength()I
move-result v3
invoke-virtual {v0, p0, v1, v2, v3}, Lcom/open/net/client/structures/BaseMessageProcessor;->onReceiveData(Lcom/open/net/client/structures/BaseClient;[BII)V
.line 79
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mMessageProcessor:Lcom/open/net/client/structures/BaseMessageProcessor;
invoke-virtual {v0, p0}, Lcom/open/net/client/structures/BaseMessageProcessor;->onReceiveDataCompleted(Lcom/open/net/client/structures/BaseClient;)V
.line 81
:cond_27
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mReadDatagramPacket:Ljava/net/DatagramPacket;
invoke-virtual {v0}, Ljava/net/DatagramPacket;->getData()[B
move-result-object v1
array-length v1, v1
invoke-virtual {v0, v1}, Ljava/net/DatagramPacket;->setLength(I)V
:try_end_31
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_31} :catch_32
goto :goto_0
:catch_32
move-exception v0
.line 84
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
.line 87
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mMessageProcessor:Lcom/open/net/client/structures/BaseMessageProcessor;
if-eqz v0, :cond_3f
.line 88
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mMessageProcessor:Lcom/open/net/client/structures/BaseMessageProcessor;
invoke-virtual {v0, p0}, Lcom/open/net/client/structures/BaseMessageProcessor;->onReceiveDataCompleted(Lcom/open/net/client/structures/BaseClient;)V
:cond_3f
const/4 v0, 0x1
return v0
.end method
.method public onWrite()Z
.registers 6
.line 97
invoke-virtual {p0}, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->pollWriteMessage()Lcom/open/net/client/structures/message/Message;
move-result-object v0
:goto_4
if-eqz v0, :cond_24
.line 100
:try_start_6
iget-object v1, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mWriteDatagramPacket:Ljava/net/DatagramPacket;
iget-object v2, v0, Lcom/open/net/client/structures/message/Message;->data:[B
iget v3, v0, Lcom/open/net/client/structures/message/Message;->offset:I
iget v4, v0, Lcom/open/net/client/structures/message/Message;->length:I
invoke-virtual {v1, v2, v3, v4}, Ljava/net/DatagramPacket;->setData([BII)V
.line 101
iget-object v1, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mSocket:Ljava/net/DatagramSocket;
iget-object v2, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mWriteDatagramPacket:Ljava/net/DatagramPacket;
invoke-virtual {v1, v2}, Ljava/net/DatagramSocket;->send(Ljava/net/DatagramPacket;)V
.line 102
invoke-virtual {p0, v0}, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->removeWriteMessage(Lcom/open/net/client/structures/message/Message;)V
.line 103
invoke-virtual {p0}, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->pollWriteMessage()Lcom/open/net/client/structures/message/Message;
move-result-object v0
:try_end_1f
.catch Ljava/lang/Exception; {:try_start_6 .. :try_end_1f} :catch_20
goto :goto_4
:catch_20
move-exception v0
.line 106
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:cond_24
const/4 v0, 0x1
return v0
.end method
.method public reconnect()V
.registers 2
.line 46
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mConnector:Lcom/open/net/client/impl/udp/bio/UdpBioConnector;
invoke-virtual {v0}, Lcom/open/net/client/impl/udp/bio/UdpBioConnector;->reconnect()V
return-void
.end method
.method public setConnectAddress([Lcom/open/net/client/structures/UdpAddress;)V
.registers 3
.line 34
iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/UdpBioClient;->mConnector:Lcom/open/net/client/impl/udp/bio/UdpBioConnector;
invoke-virtual {v0, p1}, Lcom/open/net/client/impl/udp/bio/UdpBioConnector;->setConnectAddress([Lcom/open/net/client/structures/UdpAddress;)V
return-void
.end method