MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / API_ROUTINE isc_reconnect_transaction

Function API_ROUTINE isc_reconnect_transaction

src/yvalve/why.cpp:3230–3256  ·  view source on GitHub ↗

Connect to a transaction in limbo.

Source from the content-addressed store, hash-verified

3228
3229// Connect to a transaction in limbo.
3230ISC_STATUS API_ROUTINE isc_reconnect_transaction(ISC_STATUS* userStatus, isc_db_handle* dbHandle,
3231 isc_tr_handle* traHandle, USHORT length, const SCHAR* id)
3232{
3233 StatusVector status(userStatus);
3234 CheckStatusWrapper statusWrapper(&status);
3235
3236 try
3237 {
3238 nullCheck(traHandle, isc_bad_trans_handle);
3239
3240 RefPtr<YAttachment> attachment(translateHandle(attachments, dbHandle));
3241
3242 YTransaction* transaction = attachment->reconnectTransaction(&statusWrapper, length,
3243 reinterpret_cast<const UCHAR*>(id));
3244
3245 if (status.getState() & IStatus::STATE_ERRORS)
3246 status_exception::raise(status);
3247
3248 *traHandle = transaction->getHandle();
3249 }
3250 catch (const Exception& e)
3251 {
3252 e.stuffException(&statusWrapper);
3253 }
3254
3255 return status[1];
3256}
3257
3258
3259// Release a request.

Callers

nothing calls this directly

Calls 7

nullCheckFunction · 0.85
translateHandleFunction · 0.85
raiseFunction · 0.85
reconnectTransactionMethod · 0.45
getStateMethod · 0.45
getHandleMethod · 0.45
stuffExceptionMethod · 0.45

Tested by

no test coverage detected