Exemplo n.º 1
0
void CtpMgr::onMdSmStateChanged(int state)
{
    if (state == MDSM_CONNECTED) {
        if(autoLoginMd_){
            mdsm_->login(1000);
        }
    }
    if (state == MDSM_DISCONNECTED) {
        mdsm_logined_ = false;
        //析构ringbuffer
        g_sm->dataPump()->freeRingBuffer();

        emit mdDisconnect();
    }
    if (state == MDSM_LOGINED) {
        mdsm_logined_ = true;
        tryStartSubscrible();
    }
    if (state == MDSM_LOGINFAIL){
        mdsm_->login(60*1000);
    }
    if (state == MDSM_STOPPED) {
        //析构ringbuffer
        g_sm->dataPump()->freeRingBuffer();
        mdsm_thread_->quit();
        mdsm_thread_->wait();
        delete mdsm_thread_;
        mdsm_thread_ = nullptr;
        mdsm_ = nullptr;
        mdsm_logined_ = false;

        emit mdStopped();
    }
}
Exemplo n.º 2
0
void CtpMgr::onTdSmStateChanged(int state)
{
    if (state == TDSM_CONNECTED) {
        if(autoLoginTd_){
            tdsm_->login(1000);
        }
    }
    if (state == TDSM_DISCONNECTED) {
        tdsm_logined_ = false;
    }
    if (state == TDSM_LOGINED) {
        tdsm_logined_ = true;
        tryStartSubscrible();
    }
    if (state == TDSM_LOGINFAIL){
        tdsm_->login(60*1000);
    }
    if (state == TDSM_LOGOUTED) {
        tdsm_logined_ = false;
        tdsm_->stop();
    }
    if (state == TDSM_LOGOUTFAIL){
        tdsm_logined_ = false;
        tdsm_->stop();
    }
    if (state == TDSM_STOPPED) {
        tdsm_thread_->quit();
        tdsm_thread_->wait();
        delete tdsm_thread_;
        tdsm_thread_ = nullptr;
        tdsm_ = nullptr;
        tdsm_logined_ = false;
    }
}
Exemplo n.º 3
0
void GatewayMgr::onTdSmStateChanged(int state)
{
    g_sm->checkCurrentOn(ServiceMgr::LOGIC);

    if (!tdsm_) {
        BfDebug("tdsm freed,ingore onTdSmStateChanged:%d", state);
        return;
    }

    if (state == TDSM_CONNECTED) {
        tdsm_logined_ = false;
        if (autoLoginTd_) {
            tdsm_->login(1000);
        } else {
            tdsm_->stop();
        }
    }
    if (state == TDSM_DISCONNECTED) {
        resetCmds();
        tdsm_logined_ = false;
        if (!autoLoginTd_) {
            tdsm_->stop();
        } else {
            BfInfo("waiting for tdapi auto-reconnect......");
        }
    }
    if (state == TDSM_LOGINED) {
        tdsm_logined_ = true;
        tryStartSubscrible();
    }
    if (state == TDSM_LOGINFAIL) {
        if (autoLoginTd_) {
            BfInfo("tdsm login fail,try again 1 minute later");
            tdsm_->login(60 * 1000);
        } else {
            tdsm_->stop();
        }
    }
    if (state == TDSM_LOGOUTED) {
        tdsm_logined_ = false;
        tdsm_->stop();
    }
    if (state == TDSM_LOGOUTFAIL) {
        tdsm_logined_ = false;
        tdsm_->stop();
    }
    if (state == TDSM_STOPPED) {
        resetCmds();
        tdsm_logined_ = false;
        delete tdsm_;
        tdsm_ = nullptr;
        tdsm_logined_ = false;
    }
}
Exemplo n.º 4
0
void CtpMgr::onMdSmStateChanged(int state)
{
    g_sm->checkCurrentOn(ServiceMgr::LOGIC);

    if (!mdsm_) {
        BfDebug("mdsm freed,ingore onMdSmStateChanged:%d", state);
        return;
    }

    if (state == MDSM_CONNECTED) {
        mdsm_logined_ = false;
        if (autoLoginMd_) {
            mdsm_->login(1000, "");
        } else {
            mdsm_->stop();
        }
    }
    if (state == MDSM_DISCONNECTED) {
        mdsm_logined_ = false;
        if (!autoLoginMd_) {
            mdsm_->stop();
        }else{
            BfInfo("waiting for mdapi auto-reconnect......");
        }
    }
    if (state == MDSM_LOGINED) {
        mdsm_logined_ = true;
        tryStartSubscrible();
    }
    if (state == MDSM_LOGINFAIL) {
        if (autoLoginMd_) {
            BfInfo("mdsm login fail,try again 1 minute later");
            mdsm_->login(60 * 1000, "");
        } else {
            mdsm_->stop();
        }
    }
    if (state == MDSM_STOPPED) {
        mdsm_logined_ = false;
        delete mdsm_;
        mdsm_ = nullptr;
        mdsm_logined_ = false;
    }
}