BaseConnection.smali

.class public abstract Lcom/imo/android/imoim/network/BaseConnection;
.super Ljava/lang/Object;
.source "SourceFile"

# interfaces
.implements Lcom/imo/android/imoim/network/Connection;


# instance fields
.field public attach:Lcom/imo/android/imoim/network/ConnectData3;

.field errorListener:Lcom/imo/android/imoim/network/Connection$ErrorListener;

.field messageListener:Lcom/imo/android/imoim/network/MessageListener;

.field public readBuffer:Ljava/nio/ByteBuffer;

.field protected socketHandler:Lcom/imo/android/imoim/network/SocketHandler;

.field public writeBuffer:Ljava/nio/ByteBuffer;


# direct methods
.method public constructor <init>(Lcom/imo/android/imoim/network/ConnectData3;Lcom/imo/android/imoim/network/SocketHandler;)V
    .registers 3

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

    .line 21
    iput-object p1, p0, Lcom/imo/android/imoim/network/BaseConnection;->attach:Lcom/imo/android/imoim/network/ConnectData3;

    .line 22
    iput-object p2, p0, Lcom/imo/android/imoim/network/BaseConnection;->socketHandler:Lcom/imo/android/imoim/network/SocketHandler;

    return-void
.end method


# virtual methods
.method public callAddWrite(I)V
    .registers 7

    .line 40
    iget-object v0, p0, Lcom/imo/android/imoim/network/BaseConnection;->socketHandler:Lcom/imo/android/imoim/network/SocketHandler;

    invoke-interface {v0, p1}, Lcom/imo/android/imoim/network/SocketHandler;->handleAddWrite(I)I

    move-result p1

    if-gez p1, :cond_35

    neg-int p1, p1

    .line 43
    iget-object v0, p0, Lcom/imo/android/imoim/network/BaseConnection;->attach:Lcom/imo/android/imoim/network/ConnectData3;

    iget-boolean v0, v0, Lcom/imo/android/imoim/network/ConnectData3;->gotNameChannel:Z

    if-nez v0, :cond_28

    .line 44
    invoke-static {}, Lcom/imo/android/imoim/network/stat/connect/ConnectStatHelper;->get()Lcom/imo/android/imoim/network/stat/connect/ConnectStatHelper;

    move-result-object v0

    iget-object v1, p0, Lcom/imo/android/imoim/network/BaseConnection;->attach:Lcom/imo/android/imoim/network/ConnectData3;

    iget-object v1, v1, Lcom/imo/android/imoim/network/ConnectData3;->ip:Ljava/lang/String;

    iget-object v2, p0, Lcom/imo/android/imoim/network/BaseConnection;->attach:Lcom/imo/android/imoim/network/ConnectData3;

    iget v2, v2, Lcom/imo/android/imoim/network/ConnectData3;->port:I

    invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v3

    const-string v4, "get_nc_error"

    invoke-virtual {v4, v3}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v0, v1, v2, v3}, Lcom/imo/android/imoim/network/stat/connect/ConnectStatHelper;->markConnectFailed(Ljava/lang/String;ILjava/lang/String;)V

    .line 46
    :cond_28
    invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object p1

    const-string v0, "addwrite_err"

    invoke-virtual {v0, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0, p1}, Lcom/imo/android/imoim/network/BaseConnection;->handleError(Ljava/lang/String;)V

    :cond_35
    return-void
.end method

.method public setErrorListener(Lcom/imo/android/imoim/network/Connection$ErrorListener;)V
    .registers 2

    .line 31
    iput-object p1, p0, Lcom/imo/android/imoim/network/BaseConnection;->errorListener:Lcom/imo/android/imoim/network/Connection$ErrorListener;

    return-void
.end method

.method public setMessageListener(Lcom/imo/android/imoim/network/MessageListener;)V
    .registers 2

    .line 36
    iput-object p1, p0, Lcom/imo/android/imoim/network/BaseConnection;->messageListener:Lcom/imo/android/imoim/network/MessageListener;

    return-void
.end method

.method public setSocketHandler(Lcom/imo/android/imoim/network/SocketHandler;)V
    .registers 2

    .line 26
    iput-object p1, p0, Lcom/imo/android/imoim/network/BaseConnection;->socketHandler:Lcom/imo/android/imoim/network/SocketHandler;

    return-void
.end method