UserInfo *UserInfoMng::searchByAddr(char *MDN, char*ipAddr) { ReadMutex<PasMutex> readMutex(lockUserInfo); UserInfo user; user.set(MDN, ipAddr); map<intMDN_t, UserInfo*>::const_iterator ippos; ippos = IPs.find(user.getIntIpAddr()); if (ippos != IPs.end()) // NOT found { return ippos->second; } return NULL; }
UserInfo *UserInfoMng::add(char *MDN, char*ipAddr) { WriteMutex<PasMutex> writeMutex(lockUserInfo); PAS_TRACE3("UserInfoMng::add(): MDN=%s, IP=%s, Count=%d", MDN, ipAddr, MDNs.size()); UserInfo *user = new UserInfo(); if (user==0) return NULL; user->set(MDN, ipAddr); MDNs[user->getIntPhoneNumber()] = user; IPs[user->getIntIpAddr()] = user; userCount = MDNs.size(); PAS_TRACE3("UserInfoMng::add(): MDN=%d, IP=%X, Count=%d", user->getIntPhoneNumber(), user->getIntIpAddr(), userCount); return user; }