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

Method internalClose

src/remote/client/interface.cpp:1423–1462  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1421
1422
1423void Blob::internalClose(CheckStatusWrapper* status)
1424{
1425/**************************************
1426 *
1427 * g d s _ c l o s e _ b l o b
1428 *
1429 **************************************
1430 *
1431 * Functional description
1432 * Close a completed blob.
1433 *
1434 **************************************/
1435 try
1436 {
1437 reset(status);
1438
1439 CHECK_HANDLE(blob, isc_bad_segstr_handle);
1440
1441 Rdb* rdb = blob->rbl_rdb;
1442 CHECK_HANDLE(rdb, isc_bad_db_handle);
1443 rem_port* port = rdb->rdb_port;
1444 RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION);
1445
1446 if ((blob->rbl_flags & Rbl::CREATE) && blob->rbl_ptr != blob->rbl_buffer)
1447 {
1448 fb_assert(!blob->isCached());
1449
1450 send_blob(status, blob, 0, NULL);
1451 }
1452
1453 if (!blob->isCached())
1454 release_object(status, rdb, op_close_blob, blob->rbl_id);
1455 release_blob(blob);
1456 blob = NULL;
1457 }
1458 catch (const Exception& ex)
1459 {
1460 ex.stuffException(status);
1461 }
1462}
1463
1464
1465void Blob::close(CheckStatusWrapper* status)

Callers

nothing calls this directly

Calls 7

CHECK_HANDLEFunction · 0.85
send_blobFunction · 0.85
release_objectFunction · 0.85
isCachedMethod · 0.80
resetFunction · 0.70
release_blobFunction · 0.70
stuffExceptionMethod · 0.45

Tested by

no test coverage detected