MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / startTransaction

Method startTransaction

src/jrd/replication/Replicator.cpp:156–182  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154// IReplicatedSession implementation
155
156IReplicatedTransaction* Replicator::startTransaction(CheckStatusWrapper* status, ITransaction* trans, SINT64 number)
157{
158 AutoPtr<Transaction> transaction;
159
160 try
161 {
162 MemoryPool& pool = getPool();
163 transaction = FB_NEW_POOL(pool) Transaction(this, trans);
164 m_transactions.add(transaction);
165
166 auto& txnData = transaction->getData();
167
168 fb_assert(!txnData.header.traNumber);
169 txnData.header.traNumber = number;
170 txnData.header.flags = BLOCK_BEGIN_TRANS;
171
172 txnData.buffer = m_manager->getBuffer();
173
174 txnData.putTag(opStartTransaction);
175 }
176 catch (const Exception& ex)
177 {
178 ex.stuffException(status);
179 }
180
181 return transaction.release();
182}
183
184void Replicator::prepareTransaction(CheckStatusWrapper* status, Transaction* transaction)
185{

Callers

nothing calls this directly

Calls 7

putTagMethod · 0.80
TransactionClass · 0.70
addMethod · 0.45
getDataMethod · 0.45
getBufferMethod · 0.45
stuffExceptionMethod · 0.45
releaseMethod · 0.45

Tested by

no test coverage detected