This commit is contained in:
2026-06-11 18:06:14 +05:30
parent 0bef16e82c
commit d41b9da4e2
@@ -38,6 +38,15 @@ bool DataStore::initialize()
{ {
return false; return false;
} }
if (!lockDataStore())
{
CloseHandle(m_globalMutex);
m_globalMutex = NULL;
return false;
}
bool success = true;
do
{
util::ensureDirectoryExists(config::file::DIRECTORY); util::ensureDirectoryExists(config::file::DIRECTORY);
m_users.fileName = config::file::USER_FILE; m_users.fileName = config::file::USER_FILE;
m_users.recordSize = sizeof(SerializedUser); m_users.recordSize = sizeof(SerializedUser);
@@ -63,53 +72,72 @@ bool DataStore::initialize()
m_inventoryManagementObservers.recordSize = sizeof(SerializedObserver); m_inventoryManagementObservers.recordSize = sizeof(SerializedObserver);
if (!SharedMemory::createOrOpenMapping(m_users)) if (!SharedMemory::createOrOpenMapping(m_users))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_notifications)) if (!SharedMemory::createOrOpenMapping(m_notifications))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_services)) if (!SharedMemory::createOrOpenMapping(m_services))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_comboPackages)) if (!SharedMemory::createOrOpenMapping(m_comboPackages))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_inventoryItems)) if (!SharedMemory::createOrOpenMapping(m_inventoryItems))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_serviceBookings)) if (!SharedMemory::createOrOpenMapping(m_serviceBookings))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_jobCards)) if (!SharedMemory::createOrOpenMapping(m_jobCards))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_invoices)) if (!SharedMemory::createOrOpenMapping(m_invoices))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_payments)) if (!SharedMemory::createOrOpenMapping(m_payments))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_serviceManagementObservers)) if (!SharedMemory::createOrOpenMapping(m_serviceManagementObservers))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_paymentManagementObservers)) if (!SharedMemory::createOrOpenMapping(m_paymentManagementObservers))
{ {
return false; success = false;
break;
} }
if (!SharedMemory::createOrOpenMapping(m_inventoryManagementObservers)) if (!SharedMemory::createOrOpenMapping(m_inventoryManagementObservers))
{ {
return false; success = false;
break;
} }
return true; } while (false);
unlockDataStore();
if (!success)
{
shutdown();
}
return success;
} }
/* /*