Feathercoin  0.5.0
P2P Digital Currency
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
CAddrMan Member List

This is the complete list of members for CAddrMan, including all inherited members.

Add(const CAddress &addr, const CNetAddr &source, int64 nTimePenalty=0)CAddrManinline
Add(const std::vector< CAddress > &vAddr, const CNetAddr &source, int64 nTimePenalty=0)CAddrManinline
Add_(const CAddress &addr, const CNetAddr &source, int64 nTimePenalty)CAddrManprotected
Attempt(const CService &addr, int64 nTime=GetAdjustedTime())CAddrManinline
Attempt_(const CService &addr, int64 nTime)CAddrManprotected
Check()CAddrManinline
Connected(const CService &addr, int64 nTime=GetAdjustedTime())CAddrManinline
Connected_(const CService &addr, int64 nTime)CAddrManprotected
Create(const CAddress &addr, const CNetAddr &addrSource, int *pnId=NULL)CAddrManprotected
csCAddrManmutableprivate
Find(const CNetAddr &addr, int *pnId=NULL)CAddrManprotected
GetAddr()CAddrManinline
GetAddr_(std::vector< CAddress > &vAddr)CAddrManprotected
Good(const CService &addr, int64 nTime=GetAdjustedTime())CAddrManinline
Good_(const CService &addr, int64 nTime)CAddrManprotected
IMPLEMENT_SERIALIZE(({{LOCK(cs);unsigned char nVersion=0;READWRITE(nVersion);READWRITE(nKey);READWRITE(nNew);READWRITE(nTried);CAddrMan *am=const_cast< CAddrMan * >(this);if(fWrite){int nUBuckets=ADDRMAN_NEW_BUCKET_COUNT;READWRITE(nUBuckets);std::map< int, int > mapUnkIds;int nIds=0;for(std::map< int, CAddrInfo >::iterator it=am->mapInfo.begin();it!=am->mapInfo.end();it++){if(nIds==nNew) break;mapUnkIds[(*it).first]=nIds;CAddrInfo &info=(*it).second;if(info.nRefCount){READWRITE(info);nIds++;}}nIds=0;for(std::map< int, CAddrInfo >::iterator it=am->mapInfo.begin();it!=am->mapInfo.end();it++){if(nIds==nTried) break;CAddrInfo &info=(*it).second;if(info.fInTried){READWRITE(info);nIds++;}}for(std::vector< std::set< int > >::iterator it=am->vvNew.begin();it!=am->vvNew.end();it++){const std::set< int > &vNew=(*it);int nSize=vNew.size();READWRITE(nSize);for(std::set< int >::iterator it2=vNew.begin();it2!=vNew.end();it2++){int nIndex=mapUnkIds[*it2];READWRITE(nIndex);}}}else{int nUBuckets=0;READWRITE(nUBuckets);am->nIdCount=0;am->mapInfo.clear();am->mapAddr.clear();am->vRandom.clear();am->vvTried=std::vector< std::vector< int > >(ADDRMAN_TRIED_BUCKET_COUNT, std::vector< int >(0));am->vvNew=std::vector< std::set< int > >(ADDRMAN_NEW_BUCKET_COUNT, std::set< int >());for(int n=0;n< am->nNew;n++){CAddrInfo &info=am->mapInfo[n];READWRITE(info);am->mapAddr[info]=n;info.nRandomPos=vRandom.size();am->vRandom.push_back(n);if(nUBuckets!=ADDRMAN_NEW_BUCKET_COUNT){am->vvNew[info.GetNewBucket(am->nKey)].insert(n);info.nRefCount++;}}am->nIdCount=am->nNew;int nLost=0;for(int n=0;n< am->nTried;n++){CAddrInfo info;READWRITE(info);std::vector< int > &vTried=am->vvTried[info.GetTriedBucket(am->nKey)];if(vTried.size()< ADDRMAN_TRIED_BUCKET_SIZE){info.nRandomPos=vRandom.size();info.fInTried=true;am->vRandom.push_back(am->nIdCount);am->mapInfo[am->nIdCount]=info;am->mapAddr[info]=am->nIdCount;vTried.push_back(am->nIdCount);am->nIdCount++;}else{nLost++;}}am->nTried-=nLost;for(int b=0;b< nUBuckets;b++){std::set< int > &vNew=am->vvNew[b];int nSize=0;READWRITE(nSize);for(int n=0;n< nSize;n++){int nIndex=0;READWRITE(nIndex);CAddrInfo &info=am->mapInfo[nIndex];if(nUBuckets==ADDRMAN_NEW_BUCKET_COUNT &&info.nRefCount< ADDRMAN_NEW_BUCKETS_PER_ADDRESS){info.nRefCount++;vNew.insert(nIndex);}}}}}});) CAddrMan()CAddrManinline
MakeTried(CAddrInfo &info, int nId, int nOrigin)CAddrManprotected
mapAddrCAddrManprivate
mapInfoCAddrManprivate
nIdCountCAddrManprivate
nKeyCAddrManprivate
nNewCAddrManprivate
nTriedCAddrManprivate
Select(int nUnkBias=50)CAddrManinline
Select_(int nUnkBias)CAddrManprotected
SelectTried(int nKBucket)CAddrManprotected
ShrinkNew(int nUBucket)CAddrManprotected
size()CAddrManinline
SwapRandom(unsigned int nRandomPos1, unsigned int nRandomPos2)CAddrManprotected
vRandomCAddrManprivate
vvNewCAddrManprivate
vvTriedCAddrManprivate