| 353 | |
| 354 | |
| 355 | Future<Option<RecoverResponse>> runRecoverProtocol( |
| 356 | size_t quorum, |
| 357 | const Shared<Network>& network, |
| 358 | const Metadata::Status& status, |
| 359 | bool autoInitialize, |
| 360 | const Duration& timeout) |
| 361 | { |
| 362 | RecoverProtocolProcess* process = |
| 363 | new RecoverProtocolProcess( |
| 364 | quorum, |
| 365 | network, |
| 366 | status, |
| 367 | autoInitialize, |
| 368 | timeout); |
| 369 | |
| 370 | Future<Option<RecoverResponse>> future = process->future(); |
| 371 | spawn(process, true); |
| 372 | return future; |
| 373 | } |
| 374 | |
| 375 | |
| 376 | // This process is used to recover a replica. We first check the |