Files
Training-Team2-Zenvy-Jan26/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp
T
joelthomastrenser 133785dd3f refactor: change memory management and fix related code
- Switched shared_ptr to raw pointers
- Added cleanup logic in DataStore
- Fixed Factory object creation
- Updated function signatures to match changes
- Small refactors and formatting fixes
2026-04-17 09:36:34 +05:30

126 lines
2.4 KiB
C++

/*
* File: DataStore.cpp
* Description: Central Storage for all the System Data.
* Author: Trenser
* Created: 01-Apr-2026
*/
#include "DataStore.h"
#include "EmployeeManagementService.h"
/*
* Function: getInstance
* Description: provides a singleton instance of the DataStore.
* Parameters:
* None
* Returns:
* DataStore& - reference to the single DataStore object.
*/
DataStore& DataStore::getInstance()
{
static DataStore dataStore;
return dataStore;
}
/*
* Function: getLogs
* Description: retrieves the log map containing system logs.
* Parameters:
* None
* Returns:
* logMap& - reference to the log map.
*/
logMap& DataStore::getLogs()
{
return m_logs;
}
/*
* Function: getAuthenticatedEmployee
* Description: returns the currently authenticated employee.
* Parameters:
* None
* Returns:
* std::shared_ptr<Employee>& - reference to the authenticated employee object.
*/
Employee*& DataStore::getAuthenticatedEmployee()
{
return m_authenticatedEmployee;
}
/*
* Function: setAuthenticatedEmployee
* Description: sets the currently authenticated employee.
* Parameters:
* authenticatedEmployee - shared pointer to the employee object to be set as authenticated.
* Returns:
* void - no return value.
*/
void DataStore::setAuthenticatedEmployee(Employee* authenticatedEmployee)
{
m_authenticatedEmployee = authenticatedEmployee;
}
/*
* Function: getEmployees
* Description: retrieves the employee map containing all employees.
* Parameters:
* None
* Returns:
* employeeMap& - reference to the employee map.
*/
employeeMap& DataStore::getEmployees()
{
return m_employees;
}
payrollMap& DataStore::getPayrolls()
{
return m_payrolls;
}
payslipMap& DataStore::getPayslips()
{
return m_payslips;
}
candidateMap& DataStore::getCandidates()
{
return m_candidates;
}
DataStore::~DataStore()
{
for (auto& pair : m_employees)
{
delete pair.second;
}
m_employees.clear();
for (auto& pair : m_payrolls)
{
delete pair.second;
}
m_payrolls.clear();
for (auto& pair : m_payslips)
{
delete pair.second;
}
m_payslips.clear();
for (auto& pair : m_logs)
{
delete pair.second;
}
m_logs.clear();
for (auto& pair : m_candidates)
{
delete pair.second;
}
m_candidates.clear();
m_authenticatedEmployee = nullptr;
}