csocketmap.cpp
来自「一个学习STL 中Map的类」· C++ 代码 · 共 53 行
CPP
53 行
#include "SocketMap.h"
#include <map.h>
using namespace std;
CSocketMap::CSocketMap()
{
pthread_mutex_init(&m_mutex,NULL);
m_SocketMap.clear();
}
CSocketMap::~CSocketMap()
{
m_SocketMap.clear();
}
void CSocketMap::InsertSocketMap(int nSocket , SocketPack& rPack)
{
pthread_mutex_lock(&m_mutex);
m_SocketMap.insert(make_pair(nSocket,rPack));
pthread_mutex_unlock(&m_mutex);
}
/* FindSocketMap 在Map中查找是否已经存在*/
bool CSocketMap::FindSocketMap(int nSocket , SocketPack& rPack)
{
pthread_mutex_lock(&m_mutex);
int nTmpSocket;
std::map<int,SocketPack>::iterator pos = m_SocketMap.find(nSocket);
if(pos != m_SocketMap.end())
{
rPack = pos->second;
}
return m_SocketMap.size();
pthread_mutex_unlock(&m_mutex);
}
/*从MAP中移除对应的消息*/
void CSocketMap::EraseSocketMap(int nSocket)
{
pthread_mutex_lock(&m_mutex);
std::map<int , SocketPack>::iterator pos = m_SocketMap.find(nSocket);
if(pos != m_SocketMap.end())
{
m_SocketMap.erase(pos);
}
pthread_mutex_unlock(&m_mutex);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?