| 76 | } |
| 77 | |
| 78 | bool redis_node::add_slave(redis_node* slave) |
| 79 | { |
| 80 | if (slave == NULL) { |
| 81 | return false; |
| 82 | } |
| 83 | std::vector<redis_node*>::const_iterator cit; |
| 84 | for (cit = slaves_.begin(); cit != slaves_.end(); ++cit) { |
| 85 | if (*cit == slave) { |
| 86 | printf("slave exists: %s, id: %s, addr: %s\r\n", |
| 87 | slave->get_id(), (*cit)->get_id(), |
| 88 | (*cit)->get_addr()); |
| 89 | return false; |
| 90 | } |
| 91 | if ((*slave->get_id()) == 0) { |
| 92 | continue; |
| 93 | } |
| 94 | if (strcmp(slave->get_id(), (*cit)->get_id()) == 0) { |
| 95 | printf("slave exists: %s, id: %s, addr: %s\r\n", |
| 96 | slave->get_id(), (*cit)->get_id(), |
| 97 | (*cit)->get_addr()); |
| 98 | return false; |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | slaves_.push_back(slave); |
| 103 | return true; |
| 104 | } |
| 105 | |
| 106 | redis_node* redis_node::remove_slave(const char* id) |
| 107 | { |