133785dd3f
- 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
126 lines
2.4 KiB
C++
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;
|
|
}
|