Files
qt6-migration-pipeline/external/tmsif/include/ddkit/actors/ActorInfoDbCaretaker.hpp
T
2026-10-23 16:13:31 +00:00

44 lines
1.2 KiB
C++

#pragma once
#include "ddkit/base/ThreadSync.hpp"
#include "ddkit/access/TopicPoolWrite.hpp"
#include "ddkit/access/TopicPoolRead.hpp"
#include "ddkit/idls/ActorInfo.hpp"
#include "ddkit/actors/ActorInfo.hpp"
#include "ddkit/actors/ActorInfoDb.hpp"
namespace ddkit {
namespace actors {
ActorConfiguration actorInfoToActorConfiguration(ddkit_intern::ActorInfo actorInfo);
ActorInfo actorInfoToActorInfo(const ddkit_intern::ActorInfo& ddsActorInfo);
/// @brief Caretaker for actorInfo.
/// Registers for ActorInfo-msgs on dds and stores them in ActorInfoDb.
class ActorInfoDbCaretaker {
public:
ActorInfoDbCaretaker(ActorInfoDb& db);
~ActorInfoDbCaretaker();
void init(access::Participant& participant, std::shared_ptr<access::Dispatcher> dispatcher);
void close();
void onWrite_actorInfo(const ddkit_intern::ActorInfo& actorInfo);
void onDispose_actorInfo(const ddkit_intern::ActorInfo& actorInfo);
private:
ActorInfoDb& m_db;
access::IQosStrategyPtr m_qosStrategy;
access::ITopicStrategyPtr m_topicStrategy;
std::unique_ptr<access::TopicPoolRead> m_topicPoolRead;
int m_domainId;
};
} // namespace actors
} // namespace ddkit