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

Method initItem

src/burp/BurpTasks.cpp:481–548  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

479}
480
481void BackupRelationTask::initItem(BurpGlobals* tdgbl, Item& item)
482{
483 item.m_gbl = tdgbl;
484 item.m_relation = m_relation;
485
486 // copy some data from master
487 tdgbl->gbl_database_file_name = m_masterGbl->gbl_database_file_name;
488 tdgbl->gbl_sw_verbose = m_masterGbl->gbl_sw_verbose;
489 tdgbl->gbl_sw_ignore_limbo = m_masterGbl->gbl_sw_ignore_limbo;
490 tdgbl->gbl_sw_meta = m_masterGbl->gbl_sw_meta;
491 tdgbl->gbl_sw_compress = m_masterGbl->gbl_sw_compress;
492 tdgbl->gbl_sw_version = m_masterGbl->gbl_sw_version;
493 tdgbl->gbl_sw_transportable = m_masterGbl->gbl_sw_transportable;
494 tdgbl->gbl_sw_blk_factor = m_masterGbl->gbl_sw_blk_factor;
495 tdgbl->gbl_sw_sql_role = m_masterGbl->gbl_sw_sql_role;
496 tdgbl->gbl_sw_user = m_masterGbl->gbl_sw_user;
497 tdgbl->gbl_sw_password = m_masterGbl->gbl_sw_password;
498 //??? tdgbl->gbl_sw_tr_user = m_masterGbl->gbl_sw_tr_user;
499 tdgbl->action = m_masterGbl->action;
500 tdgbl->sw_redirect = m_masterGbl->sw_redirect;
501 tdgbl->gbl_stat_flags = m_masterGbl->gbl_stat_flags;
502
503 if (item.m_ownAttach)
504 {
505 if (!item.m_att)
506 {
507 FbLocalStatus status;
508 DispatcherPtr provider;
509
510 // attach, start tran, etc
511
512 const unsigned char* dpbBuffer = m_masterGbl->gbl_dpb_data.begin();
513 const unsigned int dpbLength = m_masterGbl->gbl_dpb_data.getCount();
514
515 item.m_att = provider->attachDatabase(&status, tdgbl->gbl_database_file_name,
516 dpbLength, dpbBuffer);
517 if (status->getState() & IStatus::STATE_ERRORS)
518 BURP_abort(&status);
519
520 ClumpletWriter tpb(ClumpletReader::Tpb, 128, isc_tpb_version3);
521 tpb.insertTag(isc_tpb_concurrency);
522 tpb.insertTag(isc_tpb_read);
523 if (tdgbl->gbl_sw_ignore_limbo)
524 tpb.insertTag(isc_tpb_ignore_limbo);
525 tpb.insertTag(isc_tpb_no_auto_undo);
526 // add snapshot id
527 tpb.insertBigInt(isc_tpb_at_snapshot_number, m_masterGbl->tr_snapshot);
528
529 item.m_tra = item.m_att->startTransaction(&status,
530 tpb.getBufferLength(), tpb.getBuffer());
531
532 if (status->getState() & IStatus::STATE_ERRORS)
533 BURP_abort(&status);
534 }
535
536 tdgbl->db_handle = item.m_att;
537 tdgbl->tr_handle = item.m_tra;
538 }

Callers

nothing calls this directly

Calls 10

BURP_abortFunction · 0.85
beginMethod · 0.45
getCountMethod · 0.45
attachDatabaseMethod · 0.45
getStateMethod · 0.45
insertTagMethod · 0.45
insertBigIntMethod · 0.45
startTransactionMethod · 0.45
getBufferLengthMethod · 0.45
getBufferMethod · 0.45

Tested by

no test coverage detected