| 198 | } |
| 199 | |
| 200 | void Replicator::commitTransaction(CheckStatusWrapper* status, Transaction* transaction) |
| 201 | { |
| 202 | try |
| 203 | { |
| 204 | auto& txnData = transaction->getData(); |
| 205 | |
| 206 | // Assert this transaction being de-facto dirty |
| 207 | const auto dataLength = txnData.buffer->getCount() - sizeof(Block); |
| 208 | fb_assert(txnData.flushes || dataLength > sizeof(UCHAR)); |
| 209 | |
| 210 | txnData.putGenerators(m_generators); |
| 211 | m_generators.clear(); |
| 212 | |
| 213 | txnData.putTag(opCommitTransaction); |
| 214 | flush(txnData, FLUSH_SYNC, BLOCK_END_TRANS); |
| 215 | } |
| 216 | catch (const Exception& ex) |
| 217 | { |
| 218 | ex.stuffException(status); |
| 219 | } |
| 220 | } |
| 221 | |
| 222 | void Replicator::rollbackTransaction(CheckStatusWrapper* status, Transaction* transaction) |
| 223 | { |
nothing calls this directly
no test coverage detected