GetNode returns an node by its node id.
(name string)
| 244 | |
| 245 | // GetNode returns an node by its node id. |
| 246 | func (c *Consistent) GetNode(name string) (*proto.Node, error) { |
| 247 | c.RLock() |
| 248 | defer c.RUnlock() |
| 249 | c.cacheLock.RLock() |
| 250 | defer c.cacheLock.RUnlock() |
| 251 | |
| 252 | n, ok := c.circle[hashKey(c.nodeKey(proto.NodeID(name), 0))] |
| 253 | if ok { |
| 254 | return n, nil |
| 255 | } |
| 256 | return nil, ErrKeyNotFound |
| 257 | } |
| 258 | |
| 259 | func (c *Consistent) search(key proto.NodeKey) (i int) { |
| 260 | f := func(x int) bool { |