50 lines
1.2 KiB
C++
50 lines
1.2 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"
|
|
|
|
using employeeMap = std::map<std::string,Employee*>;
|
|
using logMap = std::map<util::Timestamp, Log*>;
|
|
|
|
class DataStore
|
|
{
|
|
private:
|
|
Employee* m_authenticatedEmployee;
|
|
employeeMap m_employees;
|
|
logMap m_logs;
|
|
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();
|
|
Employee* getAuthenticatedUser();
|
|
logMap& getLogs();
|
|
Employee*& getAuthenticatedEmployee();
|
|
void setAuthenticatedEmployee(Employee*);
|
|
~DataStore();
|
|
}; |