当前位置: 首页>>代码示例>>C++>>正文


C++ ConnMap_t::erase方法代码示例

本文整理汇总了C++中ConnMap_t::erase方法的典型用法代码示例。如果您正苦于以下问题:C++ ConnMap_t::erase方法的具体用法?C++ ConnMap_t::erase怎么用?C++ ConnMap_t::erase使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ConnMap_t的用法示例。


在下文中一共展示了ConnMap_t::erase方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Close

void CLoginConn::Close()
{
    if (m_handle != NETLIB_INVALID_HANDLE) 
    {
        netlib_close(m_handle);
        if (m_conn_type == LOGIN_CONN_TYPE_CLIENT) 
        {
            g_client_conn_map.erase(m_handle);
        } 
        else 
        {
            g_msg_serv_conn_map.erase(m_handle);

            // remove all user count from this message server
            map<uint32_t, msg_serv_info_t*>::iterator it = g_msg_serv_info.find(m_handle);
            if (it != g_msg_serv_info.end()) 
            {
                msg_serv_info_t* pMsgServInfo = it->second;

                g_total_online_user_cnt -= pMsgServInfo->cur_conn_cnt;
                log("onclose from MsgServer: %s:%u ", pMsgServInfo->hostname.c_str(), pMsgServInfo->port);
                
                delete pMsgServInfo;
                g_msg_serv_info.erase(it);
            }
        }
    }

    ReleaseRef();
}
开发者ID:zergl,项目名称:TeamTalk,代码行数:30,代码来源:LoginConn.cpp

示例2: Close

void CRouteConn::Close()
{
	if (m_handle != NETLIB_INVALID_HANDLE) {
		netlib_close(m_handle);
		g_route_conn_map.erase(m_handle);
	}

	// remove all user info from this MessageServer
    
    UserInfoMap_t::iterator it_old;
    for (UserInfoMap_t::iterator it = g_user_map.begin(); it != g_user_map.end(); )
    {
        it_old = it;
        it++;
        
        CUserInfo* pUser = it_old->second;
        pUser->RemoveRouteConn(this);
        if (pUser->GetRouteConnCount() == 0)
        {
            delete pUser;
            pUser = NULL;
            g_user_map.erase(it_old);
        }
    }

	ReleaseRef();
}
开发者ID:1059232202,项目名称:TeamTalk,代码行数:27,代码来源:RouteConn.cpp

示例3: Close

void CRouteConn::Close()
{
	if (m_handle != NETLIB_INVALID_HANDLE) {
		netlib_close(m_handle);
		g_route_conn_map.erase(m_handle);
	}

	// remove all user info from this MessageServer
	UserStatMap_t::iterator it_old;
	for (UserStatMap_t::iterator it = g_rs_user_map.begin(); it != g_rs_user_map.end(); ) {
		it_old = it;
		it++;
        
		RouteConnMap_t::iterator conn_it = it_old->second.conns.find(this);
		if (conn_it != it_old->second.conns.end()) {
			it_old->second.conns.erase(conn_it);
            
			if (it_old->second.conns.empty()) {
				g_rs_user_map.erase(it_old);
			}
		}
	}

	ReleaseRef();
}
开发者ID:343829084,项目名称:IMServer,代码行数:25,代码来源:RouteConn.cpp

示例4: Close

void ClientConn::Close()
{
	log("clientconn close from handle = %d\n", m_handle);
	if (m_handle != NETLIB_INVALID_HANDLE) {
		netlib_close(m_handle);
		g_client_conn_map.erase(m_handle);
	}
	ReleaseRef();
}
开发者ID:hlyces,项目名称:teamtalk_TT,代码行数:9,代码来源:ClientConn.cpp

示例5: Close

void CDBServConn::Close()
{
	// reset server information for the next connect
	serv_reset<CDBServConn>(g_db_server_list, g_db_server_count, m_serv_idx);

	if (m_handle != NETLIB_INVALID_HANDLE) {
		netlib_close(m_handle);
		g_db_server_conn_map.erase(m_handle);
	}

	ReleaseRef();
}
开发者ID:3x032,项目名称:TTServer,代码行数:12,代码来源:DBServConn.cpp

示例6: Close

void CLoginServConn::Close()
{
    serv_reset<CLoginServConn>(g_login_server_list, g_login_server_count, m_serv_idx);

    if (m_handle != NETLIB_INVALID_HANDLE) 
    {
        netlib_close(m_handle);
        g_login_server_conn_map.erase(m_handle);
    }

    ReleaseRef();
}
开发者ID:zergl,项目名称:TeamTalk,代码行数:12,代码来源:LoginServConn.cpp

示例7: Close

void FileMsgServerConn::Close() {
    log("Close client, handle %d", m_handle);
    
    connected_ = false;
    
    if (m_handle != NETLIB_INVALID_HANDLE) {
        netlib_close(m_handle);
        g_file_msg_server_conn_map.erase(m_handle);
    }
    
    ReleaseRef();
}
开发者ID:1059232202,项目名称:TeamTalk,代码行数:12,代码来源:file_msg_server_conn.cpp

示例8: Close

void CRouteServConn::Close()
{
	serv_reset<CRouteServConn>(g_route_server_list, g_route_server_count, m_serv_idx);

	m_bOpen = false;
	if (m_handle != NETLIB_INVALID_HANDLE) {
		netlib_close(m_handle);
		g_route_server_conn_map.erase(m_handle);
	}

	ReleaseRef();

	if (g_master_rs_conn == this) {
		update_master_route_serv_conn();
	}
}
开发者ID:9618211,项目名称:TTServer,代码行数:16,代码来源:RouteServConn.cpp

示例9: Close

void CFileConn::Close()
{
    log("close client, handle %d", m_handle);
    
    m_bAuth = false;
    
	if (m_handle != NETLIB_INVALID_HANDLE) {
		netlib_close(m_handle);
		g_file_conn_map.erase(m_handle);
	}

	if (m_user_id > 0) {
		g_file_user_map.erase(m_user_id);
        m_user_id = 0;
	}

	ReleaseRef();
}
开发者ID:0359xiaodong,项目名称:TeamTalk,代码行数:18,代码来源:FileConn.cpp

示例10: Close

void FileClientConn::Close() {
    log("close client, handle %d", m_handle);
    
    if (transfer_task_) {
        if (transfer_task_->GetTransMode() == FILE_TYPE_ONLINE) {
            transfer_task_->set_state(kTransferTaskStateInvalid);
            
//            CImConn* conn = transfer_task_->GetOpponentConn(user_id_);
//            if (conn) {
//                FileClientConn* conn2 = reinterpret_cast<FileClientConn*>(conn);
//                conn2->Close2();
//            }
            // Close2();
        } else {
            if (transfer_task_->state() >= kTransferTaskStateUploadEnd) {
                transfer_task_->set_state(kTransferTaskStateWaitingDownload);
            }
        }
        transfer_task_->SetConnByUserID(user_id_, NULL);

        TransferTaskManager::GetInstance()->DeleteTransferTaskByConnClose(transfer_task_->task_id());
        
        // 关闭另一个连接
//        if (transfer_task_->GetTransMode() == FILE_TYPE_ONLINE) {
//        }
        transfer_task_ = NULL;
    }
    auth_ = false;

    if (m_handle != NETLIB_INVALID_HANDLE) {
        netlib_close(m_handle);
        g_file_client_conn_map.erase(m_handle);
    }

//    if (user_id_ > 0) {
//        g_file_user_map.erase(m_user_id);
//        m_user_id = 0;
//    }
    
    ReleaseRef();
}
开发者ID:1059232202,项目名称:TeamTalk,代码行数:41,代码来源:file_client_conn.cpp


注:本文中的ConnMap_t::erase方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。