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