| 178 | } |
| 179 | |
| 180 | ATSConsistentHashNode * |
| 181 | ATSConsistentHash::lookup_by_hashval(uint64_t hashval, ATSConsistentHashIter *i, bool *w) |
| 182 | { |
| 183 | ATSConsistentHashIter NodeMapIterUp, *iter; |
| 184 | bool *wptr, wrapped = false; |
| 185 | |
| 186 | if (w) { |
| 187 | wptr = w; |
| 188 | } else { |
| 189 | wptr = &wrapped; |
| 190 | } |
| 191 | |
| 192 | if (i) { |
| 193 | iter = i; |
| 194 | } else { |
| 195 | iter = &NodeMapIterUp; |
| 196 | } |
| 197 | |
| 198 | *iter = NodeMap.lower_bound(hashval); |
| 199 | |
| 200 | if (*iter == NodeMap.end()) { |
| 201 | *wptr = true; |
| 202 | *iter = NodeMap.begin(); |
| 203 | } |
| 204 | |
| 205 | return (*iter)->second; |
| 206 | } |
| 207 | |
| 208 | ATSConsistentHash::~ATSConsistentHash() |
| 209 | { |
no test coverage detected