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

Method open_database_write

src/utilities/nbackup/nbackup.cpp:479–501  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

477}
478
479void NBackup::open_database_write(bool exclusive)
480{
481#ifdef WIN_NT
482 const DWORD shareFlags = exclusive ?
483 FILE_SHARE_READ :
484 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
485
486 dbase = CreateFile(dbname.c_str(), GENERIC_READ | GENERIC_WRITE,
487 shareFlags, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
488 if (dbase != INVALID_HANDLE_VALUE)
489 return;
490#else
491 const int flags = exclusive ?
492 O_EXCL | O_RDWR | O_LARGEFILE :
493 O_RDWR | O_LARGEFILE;
494
495 dbase = os_utils::open(dbname.c_str(), flags);
496 if (dbase >= 0)
497 return;
498#endif
499
500 status_exception::raise(Arg::Gds(isc_nbackup_err_opendb) << dbname.c_str() << Arg::OsError());
501}
502
503void NBackup::open_database_scan()
504{

Callers

nothing calls this directly

Calls 5

raiseFunction · 0.85
GdsClass · 0.85
OsErrorClass · 0.85
openFunction · 0.50
c_strMethod · 0.45

Tested by

no test coverage detected