Initial commit of source code
This commit is contained in:
38
src/core/requirementManager/requirementManager.h
Normal file
38
src/core/requirementManager/requirementManager.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <api/requirement.h>
|
||||
#include <dBus/dBus.h>
|
||||
#include <thread>
|
||||
|
||||
namespace core::requirementManager
|
||||
{
|
||||
//--------------------------------------------------------------
|
||||
class RequirementManager : public dBus::Node
|
||||
{
|
||||
public:
|
||||
RequirementManager() = delete; // Default constructor
|
||||
virtual ~RequirementManager(); // Default destructor
|
||||
RequirementManager(const RequirementManager &obj) = delete; // Copy constructor
|
||||
RequirementManager(RequirementManager &&obj) noexcept = delete; // Move constructor
|
||||
RequirementManager &operator=(const RequirementManager &obj) = delete; // Copy assignment operator
|
||||
RequirementManager &operator=(RequirementManager &&obj) noexcept = delete; // Move assignment operator
|
||||
|
||||
explicit RequirementManager(dBus::Bus &bus); // Constructor
|
||||
|
||||
protected:
|
||||
// dBus::Bus &m_bus; // Reference to the application bus
|
||||
|
||||
api::requirement::Requirement m_rootRequirement;
|
||||
|
||||
private:
|
||||
api::requirement::Requirement &getRootRequirement(); // Get the root requirement
|
||||
|
||||
// dBus management
|
||||
using Message_ptr = std::shared_ptr<dBus::Message>;
|
||||
void runBusListener(); // Run the bus listener thread
|
||||
void stopBusListener(); // Stop the bus listener thread
|
||||
void processMessageBus(const Message_ptr &message); // Process a message received from the bus
|
||||
std::jthread m_busListenerThread; // Thread for listening to bus messages related to requirements
|
||||
};
|
||||
//--------------------------------------------------------------
|
||||
} // namespace core::requirementManager
|
||||
Reference in New Issue
Block a user