Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,6 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
load("//tests/utils/bazel:unit_test.bzl", "lm_cc_test")

cc_library(
name = "types",
hdrs = ["Types.hpp"],
Comment thread
MaciejKaszynski marked this conversation as resolved.
include_prefix = "score/mw/launch_manager/alive_monitor/details/common",
strip_include_prefix = "/score/launch_manager/src/daemon/src/alive_monitor/details/common",
visibility = ["//score/launch_manager/src/daemon/src/alive_monitor:__subpackages__"],
)

cc_library(
name = "alive_monitor_config",
srcs = ["AliveMonitorConfig.cpp"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ namespace daemon

AliveMonitorImpl::AliveMonitorImpl(
SptrIRecoveryClient recovery_client,
UptrISupervisionControlReceiver process_state_receiver,
UptrISupervisionControlReceiver observable_event_receiver,
const Config& config)
: m_recovery_client(recovery_client),
m_process_state_receiver(std::move(process_state_receiver)),
m_observable_event_receiver(std::move(observable_event_receiver)),
m_config(score::mw::lifecycle::internal::alive::aliveMonitorConfig(config))
{
}
Expand All @@ -44,7 +44,7 @@ EInitCode AliveMonitorImpl::init() noexcept
{
m_osClock.startMeasurement();

m_daemon = std::make_unique<PhmDaemon>(m_osClock, std::move(m_process_state_receiver));
m_daemon = std::make_unique<PhmDaemon>(m_osClock, std::move(m_observable_event_receiver));
initResult = m_daemon->init(m_recovery_client, m_config);

if (initResult == EInitCode::kNoError)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class AliveMonitorImpl : public IAliveMonitor
public:
AliveMonitorImpl(
SptrIRecoveryClient recovery_client,
UptrISupervisionControlReceiver process_state_receiver,
UptrISupervisionControlReceiver observable_event_receiver,
const Config& config);

EInitCode init() noexcept override;
Expand All @@ -56,7 +56,7 @@ class AliveMonitorImpl : public IAliveMonitor
SptrIRecoveryClient m_recovery_client{nullptr};
UptrPhmDaemon m_daemon{nullptr};
OsClock m_osClock{};
UptrISupervisionControlReceiver m_process_state_receiver;
UptrISupervisionControlReceiver m_observable_event_receiver;
AliveMonitorConfig m_config;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ cc_library(
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifappl:checkpoint",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifappl:data_structures",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifappl:monitor_if_daemon",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:process_state",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:process_state_reader",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:observable_event",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:observable_event_reader",
"//score/launch_manager/src/daemon/src/alive_monitor/details/supervision:alive",
"//score/launch_manager/src/daemon/src/alive_monitor/details/timers:timers_os_clock",
"//score/launch_manager/src/daemon/src/common:log",
Expand All @@ -56,7 +56,7 @@ cc_library(
"//score/launch_manager/src/daemon/src/alive_monitor/details/factory:flat_cfg_factory",
"//score/launch_manager/src/daemon/src/alive_monitor/details/factory:static_config",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifappl:monitor_if_daemon",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:process_state_reader",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:observable_event_reader",
"//score/launch_manager/src/daemon/src/alive_monitor/details/supervision:alive",
"//score/launch_manager/src/daemon/src/alive_monitor/details/timers:cycle_time_validator",
"//score/launch_manager/src/daemon/src/alive_monitor/details/timers:cycle_timer",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ namespace daemon
true_no_defect) */
/* RULECHECKER_comment(0, 4, check_incomplete_data_member_construction, "Default constructor is used for\
processStateReader.", true_no_defect) */
PhmDaemon::PhmDaemon(OsClock& f_osClock, std::unique_ptr<ISupervisionControlReceiver> f_process_state_receiver)
PhmDaemon::PhmDaemon(OsClock& f_osClock, std::unique_ptr<ISupervisionControlReceiver> f_observable_event_receiver)
: osClock{f_osClock},
cycleTimer{&osClock},
swClusterHandlers{},
processStateReader{std::move(f_process_state_receiver)}
processStateReader{std::move(f_observable_event_receiver)}
{
static_cast<void>(f_osClock);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include "score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemonConfig.hpp"
#include "score/mw/launch_manager/alive_monitor/details/daemon/SwClusterHandler.hpp"
#include "score/mw/launch_manager/alive_monitor/details/factory/StaticConfig.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ObservableEventReader.hpp"
#include "score/mw/launch_manager/alive_monitor/details/timers/CycleTimeValidator.hpp"
#include "score/mw/launch_manager/alive_monitor/details/timers/CycleTimer.hpp"
#include "score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp"
Expand Down Expand Up @@ -59,18 +59,18 @@ class PhmDaemon
using CycleTimer = score::lcm::saf::timers::CycleTimer;
using CycleTimeValidator = score::lcm::saf::timers::CycleTimeValidator;
using NanoSecondType = score::lcm::saf::timers::NanoSecondType;
using ProcessStateReader = score::lcm::saf::ifexm::ProcessStateReader;
using ObservableEventReader = score::lcm::saf::ifexm::ObservableEventReader;
using AliveMonitorConfig = score::mw::lifecycle::internal::alive::AliveMonitorConfig;

/* RULECHECKER_comment(0, 4, check_expensive_to_copy_in_parameter, "f_supervisionErrorInfo name is passed by value\
as same as generated function", true_no_defect) */
/// @brief Set the OS clock interface
/// @param[in] f_osClock Access to the system clock (dependency injection possible in tests)
/// @param[in] f_process_state_receiver process state receiver implementation (dependency injection possible in
/// tests)
/// @param[in] f_observable_event_receiver observable event receiver implementation (dependency injection possible
/// in tests)
/* RULECHECKER_comment(3,1, check_expensive_to_copy_in_parameter, "Move only types cannot be passed by const ref",
true_no_defect) */
PhmDaemon(OsClock& f_osClock, std::unique_ptr<ISupervisionControlReceiver> f_process_state_receiver);
PhmDaemon(OsClock& f_osClock, std::unique_ptr<ISupervisionControlReceiver> f_observable_event_receiver);

/* RULECHECKER_comment(0, 4, check_min_instructions, "Default destructor is not provided\
a function body", true_no_defect) */
Expand Down Expand Up @@ -216,8 +216,8 @@ class PhmDaemon
/// @brief Vector of SwCluster handler
std::vector<SwClusterHandler> swClusterHandlers;

/// @brief Process State Reader for PHM daemon
ProcessStateReader processStateReader;
/// @brief Observable Event Reader for PHM daemon
ObservableEventReader processStateReader;
};

} // namespace daemon
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ SwClusterHandler::~SwClusterHandler() = default;
bool SwClusterHandler::constructWorkers(
const AliveMonitorConfig& config,
std::shared_ptr<score::lcm::IRecoveryClient> f_recoveryClient_r,
ifexm::ProcessStateReader& f_processStateReader_r,
ifexm::ObservableEventReader& f_processStateReader_r,
const factory::SupervisionBufferConfig& f_bufferConfig_r) noexcept(false)
{
bool isSuccess{false};
Expand All @@ -58,7 +58,7 @@ bool SwClusterHandler::constructWorkers(
if (isSuccess)
{
LM_LOG_DEBUG() << "Software Cluster Handler starts constructing workers:" << f_swClusterName;
isSuccess = flatCfgFactory.createProcessStates(processStates, f_processStateReader_r);
isSuccess = flatCfgFactory.createObservableEvents(processStates, f_processStateReader_r);
}
if (isSuccess)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

#include "score/mw/launch_manager/alive_monitor/details/factory/StaticConfig.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifappl/DataStructures.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ObservableEvent.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ObservableEventReader.hpp"
#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp"

#include "score/mw/launch_manager/alive_monitor/details/common/AliveMonitorConfig.hpp"
Expand Down Expand Up @@ -97,7 +97,7 @@ class SwClusterHandler
bool constructWorkers(
const AliveMonitorConfig& config,
std::shared_ptr<score::lcm::IRecoveryClient> f_recoveryClient_r,
ifexm::ProcessStateReader& f_processStateReader_r,
ifexm::ObservableEventReader& f_processStateReader_r,
const factory::SupervisionBufferConfig& f_bufferConfig_r) noexcept(false);

/// @brief Perform cyclic execution
Expand All @@ -124,7 +124,7 @@ class SwClusterHandler
const std::string f_swClusterName;

/// Vector of Process states
std::vector<ifexm::ProcessState> processStates;
std::vector<ifexm::ObservableEvent> processStates;

/// Vector of Alive Interface IPCs
std::vector<ifappl::CheckpointIpcServer> aliveIfIpcs;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,11 @@ cc_library(
deps = [
":i_phm_factory",
"//score/launch_manager/src/daemon/src/alive_monitor/details/common:alive_monitor_config",
"//score/launch_manager/src/daemon/src/alive_monitor/details/common:types",
"//score/launch_manager/src/daemon/src/alive_monitor/details/factory:static_config",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifappl:checkpoint",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifappl:monitor_if_daemon",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:process_state",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:process_state_reader",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:observable_event",
"//score/launch_manager/src/daemon/src/alive_monitor/details/ifexm:observable_event_reader",
"//score/launch_manager/src/daemon/src/alive_monitor/details/supervision:alive",
"//score/launch_manager/src/daemon/src/alive_monitor/details/supervision:supervision_cfg",
"//score/launch_manager/src/daemon/src/alive_monitor/details/timers:time_conversion",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include "score/mw/launch_manager/alive_monitor/details/factory/StaticConfig.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ObservableEvent.hpp"
#include "score/mw/launch_manager/alive_monitor/details/supervision/Alive.hpp"
#include "score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp"
#include "score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp"
Expand Down Expand Up @@ -56,9 +56,9 @@ bool FlatCfgFactory::init(const std::vector<SupervisedComponentConfig>& supervis
return true;
}

bool FlatCfgFactory::createProcessStates(
std::vector<ifexm::ProcessState>& f_processStates_r,
ifexm::ProcessStateReader& f_processStateReader_r)
bool FlatCfgFactory::createObservableEvents(
std::vector<ifexm::ObservableEvent>& f_processStates_r,
ifexm::ObservableEventReader& f_processStateReader_r)
{
bool isSuccess{true};

Expand All @@ -67,40 +67,36 @@ bool FlatCfgFactory::createProcessStates(
f_processStates_r.reserve(supervised_components_.size());
for (const auto& comp : supervised_components_)
{
ifexm::ProcessCfg processCfg{};
processCfg.processShortName = std::string_view(comp.name);

const auto processId = getProcessId(comp);
processCfg.processId = processId.data();

f_processStates_r.emplace_back(processCfg);
isSuccess = f_processStateReader_r.registerProcessState(f_processStates_r.back(), processCfg.processId);
const auto id = IdentifierHash{comp.name};
f_processStates_r.emplace_back(id);
isSuccess = f_processStateReader_r.registerObservableEvent(f_processStates_r.back(), id);
if (!isSuccess)
{
break;
}

LM_LOG_DEBUG() << "Successfully created Process States:" << comp.name;
LM_LOG_DEBUG() << "Successfully created Observable Events:" << comp.name;
}
}
catch (const std::exception& f_exception_r)
{
isSuccess = false;
LM_LOG_ERROR() << "Could not create Process States due to exception:" << std::string_view{f_exception_r.what()};
LM_LOG_ERROR() << "Could not create Observable Events due to exception:"
<< std::string_view{f_exception_r.what()};
}

if (isSuccess)
{
LM_LOG_DEBUG() << "Number of constructed Process States:" << static_cast<uint64_t>(f_processStates_r.size());
LM_LOG_DEBUG() << "Number of constructed Observable Events:" << static_cast<uint64_t>(f_processStates_r.size());
}
else
{
for (auto& processState_r : f_processStates_r)
{
f_processStateReader_r.deregisterProcessState(processState_r.getProcessId());
f_processStateReader_r.deregisterObservableEvent(processState_r.event.id);
}
f_processStates_r.clear();
LM_LOG_ERROR() << "Could not create all necessary Process States.";
LM_LOG_ERROR() << "Could not create all necessary Observable Events.";
}

return isSuccess;
Expand Down Expand Up @@ -176,7 +172,7 @@ bool FlatCfgFactory::createAliveIfIpcs(std::vector<ifappl::CheckpointIpcServer>&
bool FlatCfgFactory::createAliveIf(
std::vector<ifappl::MonitorIfDaemon>& f_interfaces_r,
std::vector<ifappl::CheckpointIpcServer>& f_interfaceIpcs_r,
std::vector<ifexm::ProcessState>& f_processStates_r)
std::vector<ifexm::ObservableEvent>& f_processStates_r)
{
bool isSuccess{true};
try
Expand Down Expand Up @@ -207,7 +203,7 @@ bool FlatCfgFactory::createAliveIf(
bool FlatCfgFactory::createSupervisionCheckpoints(
std::vector<ifappl::Checkpoint>& f_checkpoints_r,
std::vector<ifappl::MonitorIfDaemon>& f_interfaces_r,
std::vector<ifexm::ProcessState>& f_processStates_r)
std::vector<ifexm::ObservableEvent>& f_processStates_r)
{
bool isSuccess{true};

Expand All @@ -221,7 +217,7 @@ bool FlatCfgFactory::createSupervisionCheckpoints(
const std::string checkpointCfgName = comp.name + "_checkpoint";
const uint32_t checkpointId = StaticConfig::k_DefaultCheckpointId;

const ifexm::ProcessState* process_p{&f_processStates_r.at(idx)};
const ifexm::ObservableEvent* process_p{&f_processStates_r.at(idx)};
f_checkpoints_r.emplace_back(checkpointCfgName.c_str(), checkpointId, process_p);
f_interfaces_r.at(idx).attachCheckpoint(f_checkpoints_r.back());

Expand Down Expand Up @@ -252,7 +248,7 @@ bool FlatCfgFactory::createSupervisionCheckpoints(
bool FlatCfgFactory::createAliveSupervisions(
std::vector<supervision::Alive>& f_alive_r,
std::vector<ifappl::Checkpoint>& f_checkpoints_r,
std::vector<ifexm::ProcessState>& f_processStates_r,
std::vector<ifexm::ObservableEvent>& f_processStates_r,
std::shared_ptr<RecoveryClient> f_recoveryClient_r)
{
bool isSuccess{true};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
#include "score/mw/launch_manager/alive_monitor/details/common/AliveMonitorConfig.hpp"
#include "score/mw/launch_manager/alive_monitor/details/factory/IPhmFactory.hpp"
#include "score/mw/launch_manager/alive_monitor/details/factory/StaticConfig.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp"
#include "score/mw/launch_manager/alive_monitor/details/ifexm/ObservableEventReader.hpp"
#include <string>
#include <vector>

Expand Down Expand Up @@ -73,9 +73,9 @@ class FlatCfgFactory : public IPhmFactory
bool init(const std::vector<SupervisedComponentConfig>& supervised);

/// @brief Refer to the description of the base class (IPhmFactory)
bool createProcessStates(
std::vector<ifexm::ProcessState>& f_processStates_r,
ifexm::ProcessStateReader& f_processStateReader_r) override;
bool createObservableEvents(
std::vector<ifexm::ObservableEvent>& f_processStates_r,
ifexm::ObservableEventReader& f_processStateReader_r) override;

/// Refer to the description of the base class (IPhmFactory)
bool createAliveIfIpcs(std::vector<ifappl::CheckpointIpcServer>& f_interfaceIpcs_r) override;
Expand All @@ -84,19 +84,19 @@ class FlatCfgFactory : public IPhmFactory
bool createAliveIf(
std::vector<ifappl::MonitorIfDaemon>& f_interfaces_r,
std::vector<ifappl::CheckpointIpcServer>& f_interfaceIpcs_r,
std::vector<ifexm::ProcessState>& f_processStates_r) override;
std::vector<ifexm::ObservableEvent>& f_processStates_r) override;

/// Refer to the description of the base class (IPhmFactory)
bool createSupervisionCheckpoints(
std::vector<ifappl::Checkpoint>& f_checkpoints_r,
std::vector<ifappl::MonitorIfDaemon>& f_interfaces_r,
std::vector<ifexm::ProcessState>& f_processStates_r) override;
std::vector<ifexm::ObservableEvent>& f_processStates_r) override;

/// Refer to the description of the base class (IPhmFactory)
bool createAliveSupervisions(
std::vector<supervision::Alive>& f_alive_r,
std::vector<ifappl::Checkpoint>& f_checkpoints_r,
std::vector<ifexm::ProcessState>& f_processStates_r,
std::vector<ifexm::ObservableEvent>& f_processStates_r,
std::shared_ptr<score::lcm::IRecoveryClient> f_recoveryClient_r) override;

private:
Expand Down
Loading
Loading