| 264 | |
| 265 | |
| 266 | Future<bool> ZooKeeperStorageProcess::set( |
| 267 | const Entry& entry, |
| 268 | const id::UUID& uuid) |
| 269 | { |
| 270 | if (error.isSome()) { |
| 271 | return Failure(error.get()); |
| 272 | } else if (state != CONNECTED) { |
| 273 | Set* set = new Set(entry, uuid); |
| 274 | pending.sets.push(set); |
| 275 | return set->promise.future(); |
| 276 | } |
| 277 | |
| 278 | Result<bool> result = doSet(entry, uuid); |
| 279 | |
| 280 | if (result.isNone()) { // Try again later. |
| 281 | Set* set = new Set(entry, uuid); |
| 282 | pending.sets.push(set); |
| 283 | return set->promise.future(); |
| 284 | } else if (result.isError()) { |
| 285 | return Failure(result.error()); |
| 286 | } |
| 287 | |
| 288 | return result.get(); |
| 289 | } |
| 290 | |
| 291 | |
| 292 | Future<bool> ZooKeeperStorageProcess::expunge(const Entry& entry) |