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
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
/*
|
|
* File: DataStore.h
|
|
* Description: Central Storage for all the System Data.
|
|
* Author: Trenser
|
|
* Created: 01-Apr-2026
|
|
*/
|
|
|
|
#pragma once
|
|
#include <map>
|
|
#include "Employee.h"
|
|
#include "Log.h"
|
|
#include "Timestamp.h"
|
|
#include "Admin.h"
|
|
#include "HRManager.h"
|
|
#include "GeneralEmployee.h"
|
|
#include "ITExecutive.h"
|
|
#include "FinanceExecutive.h"
|
|
#include "TeamExecutive.h"
|
|
#include "TalentExecutive.h"
|
|
#include "Team.h"
|
|
#include "Room.h"
|
|
#include "Ticket.h"
|
|
#include "JobListing.h"
|
|
#include "Notification.h"
|
|
#include "Announcement.h"
|
|
#include "Faq.h"
|
|
#include "Payroll.h"
|
|
#include "Payslip.h"
|
|
|
|
using employeeMap = std::map<std::string, Employee*>;
|
|
using payrollMap = std::map<std::string, Payroll*>;
|
|
using payslipMap = std::map<std::string, Payslip*>;
|
|
using logMap = std::map<util::Timestamp, Log*>;
|
|
using candidateMap = std::map<std::string, Candidate*>;
|
|
|
|
class DataStore
|
|
{
|
|
private:
|
|
Employee* m_authenticatedEmployee;
|
|
employeeMap m_employees;
|
|
payrollMap m_payrolls;
|
|
payslipMap m_payslips;
|
|
logMap m_logs;
|
|
candidateMap m_candidates;
|
|
DataStore() : m_authenticatedEmployee(nullptr) {};
|
|
public:
|
|
static DataStore& getInstance();
|
|
DataStore(const DataStore&) = delete;
|
|
DataStore& operator=(const DataStore&) = delete;
|
|
DataStore(DataStore&&) = delete;
|
|
DataStore& operator=(DataStore&&) = delete;
|
|
employeeMap& getEmployees();
|
|
payrollMap& getPayrolls();
|
|
payslipMap& getPayslips();
|
|
logMap& getLogs();
|
|
candidateMap& getCandidates();
|
|
Employee*& getAuthenticatedEmployee();
|
|
void setAuthenticatedEmployee(Employee*);
|
|
~DataStore();
|
|
}; |