| 174 | } |
| 175 | |
| 176 | Future<Void> setup(Database const& cx) override { |
| 177 | if (!success) { |
| 178 | return Void(); |
| 179 | } |
| 180 | auto db = cx.getPtr(); |
| 181 | db->addref(); |
| 182 | Reference<IDatabase> database(new ThreadSafeDatabase(db)); |
| 183 | Promise<bool> promise; |
| 184 | auto f = promise.getFuture(); |
| 185 | keepAlive(f, database); |
| 186 | workloadImpl->setup(reinterpret_cast<FDBDatabase*>(database.getPtr()), |
| 187 | GenericPromise<bool>(new FDBPromiseImpl(promise))); |
| 188 | return assertTrue(LiteralStringRef("setup"), f); |
| 189 | } |
| 190 | |
| 191 | Future<Void> start(Database const& cx) override { |
| 192 | if (!success) { |