| 216 | |
| 217 | |
| 218 | Future<std::set<string>> ZooKeeperStorageProcess::names() |
| 219 | { |
| 220 | if (error.isSome()) { |
| 221 | return Failure(error.get()); |
| 222 | } else if (state != CONNECTED) { |
| 223 | Names* names = new Names(); |
| 224 | pending.names.push(names); |
| 225 | return names->promise.future(); |
| 226 | } |
| 227 | |
| 228 | Result<std::set<string>> result = doNames(); |
| 229 | |
| 230 | if (result.isNone()) { // Try again later. |
| 231 | Names* names = new Names(); |
| 232 | pending.names.push(names); |
| 233 | return names->promise.future(); |
| 234 | } else if (result.isError()) { |
| 235 | return Failure(result.error()); |
| 236 | } |
| 237 | |
| 238 | return result.get(); |
| 239 | } |
| 240 | |
| 241 | |
| 242 | Future<Option<Entry>> ZooKeeperStorageProcess::get(const string& name) |