From a6ccb53e941f6b1fb53b8afd1964f8449929a643 Mon Sep 17 00:00:00 2001 From: Maciej Kaszynski Date: Fri, 22 May 2026 10:35:44 +0100 Subject: [PATCH 1/2] Moving files Moving all files to comply with other modules --- .github/workflows/build.yml | 2 +- .github/workflows/build_qnx8.yml | 2 +- .github/workflows/code_coverage.yml | 4 +- .github/workflows/test_and_docs.yml | 2 +- BUILD | 6 +- Cargo.lock | 91 ++--- Cargo.toml | 12 +- docs/conf.py | 4 +- .../user_guide/configuration.rst | 10 +- .../user_guide/examples.rst | 2 +- examples/BUILD | 4 +- examples/control_application/BUILD | 4 +- .../control_application/control_daemon.cpp | 4 +- examples/cpp_lifecycle_app/main.cpp | 4 +- examples/cpp_supervised_app/BUILD | 4 +- examples/cpp_supervised_app/main.cpp | 10 +- examples/run.sh | 6 +- examples/rust_supervised_app/Cargo.toml | 4 +- score/mw/health/BUILD | 4 +- score/mw/health/health_monitoring_lib/BUILD | 32 ++ .../health}/health_monitoring_lib/Cargo.toml | 0 .../mw/health/health_monitoring_lib/cpp/BUILD | 65 ++++ .../health_monitoring_lib/cpp/common.cpp | 2 +- .../health_monitoring_lib/cpp}/common.h | 0 .../health_monitoring_lib/cpp/deadline/BUILD | 28 ++ .../cpp/deadline}/deadline_monitor.cpp | 2 +- .../cpp}/deadline/deadline_monitor.h | 4 +- .../health_monitoring_lib/cpp/details/BUILD | 37 ++ .../cpp/details}/log_init.cpp | 0 .../cpp/details}/thread.cpp | 2 +- .../cpp/details}/thread.h | 2 +- .../cpp/health_monitor.cpp | 2 +- .../cpp}/health_monitor.h | 12 +- .../cpp}/health_monitor_test.cpp | 6 +- .../health_monitoring_lib/cpp/heartbeat/BUILD | 27 ++ .../cpp/heartbeat}/heartbeat_monitor.cpp | 2 +- .../cpp}/heartbeat/heartbeat_monitor.h | 2 +- .../health_monitoring_lib/cpp/logic/BUILD | 29 ++ .../cpp/logic}/logic_monitor.cpp | 2 +- .../cpp}/logic/logic_monitor.h | 4 +- .../health/health_monitoring_lib/cpp}/tag.h | 0 .../health/health_monitoring_lib/rust/BUILD | 99 +++++ .../health_monitoring_lib/rust/common.rs | 0 .../rust/deadline/common.rs | 0 .../rust/deadline/deadline_monitor.rs | 0 .../rust/deadline/deadline_state.rs | 0 .../rust/deadline/ffi.rs | 0 .../rust/deadline/mod.rs | 0 .../health}/health_monitoring_lib/rust/ffi.rs | 0 .../rust/health_monitor.rs | 0 .../rust/heartbeat/ffi.rs | 0 .../rust/heartbeat/heartbeat_monitor.rs | 0 .../rust/heartbeat/heartbeat_state.rs | 0 .../rust/heartbeat/mod.rs | 0 .../health}/health_monitoring_lib/rust/lib.rs | 0 .../health}/health_monitoring_lib/rust/log.rs | 0 .../health_monitoring_lib/rust/logic/ffi.rs | 0 .../rust/logic/logic_monitor.rs | 0 .../rust/logic/logic_state.rs | 0 .../health_monitoring_lib/rust/logic/mod.rs | 0 .../rust/protected_memory.rs | 0 .../rust/supervisor_api_client/mod.rs | 0 .../score_supervisor_api_client.rs | 0 .../stub_supervisor_api_client.rs | 0 .../health}/health_monitoring_lib/rust/tag.rs | 0 .../health_monitoring_lib/rust/thread_ffi.rs | 0 .../health_monitoring_lib/rust/worker.rs | 0 score/mw/launch_manager/BUILD | 32 ++ score/mw/launch_manager/alive_monitor/BUILD | 92 +++++ .../launch_manager/alive_monitor}/Monitor.cpp | 2 +- .../launch_manager/alive_monitor}/Monitor.h | 2 +- .../alive_monitor}/MonitorImplWrapper.cpp | 6 +- .../alive_monitor}/MonitorImplWrapper.h | 0 .../alive_monitor}/config/hm_flatcfg.fbs | 0 .../config/hm_flatcfg_generated.h | 0 .../alive_monitor}/config/hmcore_flatcfg.fbs | 0 .../config/hmcore_flatcfg_generated.h | 0 .../alive_monitor/details/BUILD | 29 ++ .../alive_monitor/details}/MonitorImpl.cpp | 6 +- .../alive_monitor/details}/MonitorImpl.h | 10 +- .../alive_monitor/details/common/BUILD | 48 +++ .../details}/common/FixedSizeVector.hpp | 0 .../details}/common/LockedVector.hpp | 2 +- .../details}/common/Observer.hpp | 0 .../details}/common/TimeSortingBuffer.hpp | 4 +- .../alive_monitor/details}/common/Types.hpp | 0 .../details/daemon/AliveMonitorImpl.cpp | 12 +- .../details/daemon/AliveMonitorImpl.hpp | 6 +- .../alive_monitor/details/daemon/BUILD | 85 +++++ .../details/daemon/IAliveMonitor.hpp | 6 +- .../details}/daemon/PhmDaemon.cpp | 14 +- .../details}/daemon/PhmDaemon.hpp | 20 +- .../details}/daemon/PhmDaemonConfig.hpp | 0 .../details}/daemon/SwClusterHandler.cpp | 14 +- .../details}/daemon/SwClusterHandler.hpp | 14 +- .../alive_monitor/details/factory/BUILD | 82 +++++ .../details}/factory/FlatCfgFactory.cpp | 30 +- .../details}/factory/FlatCfgFactory.hpp | 10 +- .../details}/factory/IPhmFactory.hpp | 2 +- .../details}/factory/MachineConfigFactory.cpp | 6 +- .../details}/factory/MachineConfigFactory.hpp | 8 +- .../details}/factory/StaticConfig.hpp | 6 +- .../alive_monitor/details/ifappl/BUILD | 49 +++ .../details}/ifappl/Checkpoint.cpp | 2 +- .../details}/ifappl/Checkpoint.hpp | 6 +- .../details}/ifappl/DataStructures.hpp | 4 +- .../details}/ifappl/MonitorIfDaemon.cpp | 4 +- .../details}/ifappl/MonitorIfDaemon.hpp | 8 +- .../alive_monitor/details/ifexm/BUILD | 52 +++ .../details}/ifexm/ProcessCfg.cpp | 2 +- .../details}/ifexm/ProcessCfg.hpp | 2 +- .../details}/ifexm/ProcessState.cpp | 2 +- .../details}/ifexm/ProcessState.hpp | 10 +- .../details}/ifexm/ProcessStateReader.cpp | 4 +- .../details}/ifexm/ProcessStateReader.hpp | 12 +- .../alive_monitor/details/ipc/BUILD | 28 ++ .../alive_monitor/details}/ipc/IpcBase.hpp | 0 .../alive_monitor/details}/ipc/IpcClient.hpp | 2 +- .../alive_monitor/details}/ipc/IpcServer.hpp | 2 +- .../alive_monitor/details/logging/BUILD | 25 ++ .../details}/logging/PhmLogger.cpp | 2 +- .../details}/logging/PhmLogger.hpp | 0 .../alive_monitor/details/recovery/BUILD | 34 ++ .../details}/recovery/Notification.cpp | 2 +- .../details}/recovery/Notification.hpp | 4 +- .../details}/recovery/Notification_UT.cpp | 2 +- .../details}/supervision/Alive.cpp | 8 +- .../details}/supervision/Alive.hpp | 16 +- .../alive_monitor/details/supervision/BUILD | 118 ++++++ .../details}/supervision/Global.cpp | 10 +- .../details}/supervision/Global.hpp | 20 +- .../supervision/ICheckpointSupervision.cpp | 2 +- .../supervision/ICheckpointSupervision.hpp | 14 +- .../details}/supervision/ISupervision.cpp | 2 +- .../details}/supervision/ISupervision.hpp | 2 +- .../details}/supervision/Local.cpp | 6 +- .../details}/supervision/Local.hpp | 16 +- .../supervision/ProcessStateTracker.cpp | 2 +- .../supervision/ProcessStateTracker.hpp | 6 +- .../details}/supervision/SupervisionCfg.hpp | 6 +- .../alive_monitor/details/timers/BUILD | 57 +++ .../details}/timers/CycleTimeValidator.cpp | 2 +- .../details}/timers/CycleTimeValidator.hpp | 2 +- .../details}/timers/CycleTimer.cpp | 4 +- .../details}/timers/CycleTimer.hpp | 4 +- .../details}/timers/OsClockInterface.hpp | 0 .../details}/timers/TimeConversion.cpp | 2 +- .../details}/timers/TimeConversion.hpp | 2 +- .../details}/timers/Timers_OsClock.cpp | 4 +- .../details}/timers/Timers_OsClock.hpp | 0 .../alive_monitor/details/watchdog/BUILD | 54 +++ .../details}/watchdog/DeviceIf.cpp | 2 +- .../details}/watchdog/DeviceIf.hpp | 0 .../watchdog/IDeviceConfigFactory.hpp | 0 .../details}/watchdog/IWatchdogIf.hpp | 2 +- .../details}/watchdog/Watchdog.hpp | 0 .../details}/watchdog/WatchdogImpl.cpp | 8 +- .../details}/watchdog/WatchdogImpl.hpp | 6 +- .../launch_manager/alive_monitor/rust}/BUILD | 2 +- .../alive_monitor/rust}/Cargo.lock | 0 .../alive_monitor/rust}/Cargo.toml | 0 .../alive_monitor/rust}/src/errors.rs | 0 .../alive_monitor/rust}/src/lib.rs | 0 .../alive_monitor/rust}/src/monitor.rs | 0 score/mw/launch_manager/common/BUILD | 66 ++++ .../launch_manager}/common/concurrency/BUILD | 40 +-- .../concurrency/concurrency_error_domain.hpp | 0 .../common/concurrency/details/BUILD | 19 + .../details}/helgrind_annotations.hpp | 0 .../concurrency/mpmc_concurrent_queue.hpp | 6 +- .../mpmc_concurrent_queue_test.cpp | 2 +- .../mpmc_concurrent_queue_test_helgrind.supp | 0 .../common/concurrency/thread_pool.hpp | 114 ++++++ .../mw/launch_manager/common/constants.hpp | 36 +- .../common}/identifier_hash.cpp | 2 +- .../common}/identifier_hash.hpp | 0 .../common}/identifier_hash_UT.cpp | 5 +- .../mw/launch_manager/common}/log.hpp | 0 .../common}/process_group_state_id.hpp | 2 +- score/mw/launch_manager/configuration/BUILD | 50 +++ .../configuration}/config/BUILD | 4 - .../configuration}/config_schema/BUILD | 0 .../configuration}/config_schema/README.rst | 0 .../alive_supervision_defaults.json | 0 .../component_properties_defaults.json | 0 .../deployment_config_defaults.json | 0 .../default_values/run_target_defaults.json | 0 .../default_values/watchdog_defaults.json | 0 .../config_schema/examples/example_conf.json | 0 .../config_schema/launch_manager.schema.json | 0 .../config_schema/scripts/validate.py | 0 .../configuration/configuration_manager.cpp | 16 +- .../configuration/configuration_manager.hpp | 14 +- .../configuration}/lm_flatcfg.fbs | 0 .../configuration}/lm_flatcfg_generated.h | 0 score/mw/launch_manager/control/BUILD | 30 ++ .../control/control_client_channel.cpp | 7 +- .../control/control_client_channel.hpp | 5 +- .../main => score/mw/launch_manager}/main.cpp | 18 +- score/mw/launch_manager/osal/BUILD | 97 +++++ .../osal/details/linux/num_cores.cpp | 2 +- .../osal/details/linux/security_policy.cpp | 2 +- .../osal/details/linux/set_affinity.cpp | 2 +- .../osal/details/linux/set_groups.cpp | 2 +- .../osal/details}/posix/semaphore.cpp | 3 +- .../osal/details/posix/sys_exit.cpp | 0 .../osal/details/qnx/num_cores.cpp | 2 +- .../osal/details/qnx/security_policy.cpp | 2 +- .../osal/details/qnx/set_affinity.cpp | 2 +- .../osal/details/qnx/set_groups.cpp | 2 +- .../mw/launch_manager/osal/ipc_comms.hpp | 3 +- .../mw/launch_manager/osal/num_cores.hpp | 0 .../mw/launch_manager/osal/return_types.hpp | 1 - .../launch_manager/osal/security_policy.hpp | 0 .../mw/launch_manager}/osal/semaphore.hpp | 3 +- .../mw/launch_manager/osal/set_affinity.hpp | 0 .../mw/launch_manager/osal/set_groups.hpp | 0 .../mw/launch_manager/osal/sys_exit.hpp | 0 .../process_group_manager/BUILD | 74 ++++ .../alive_monitor_thread.cpp | 4 +- .../alive_monitor_thread.hpp | 8 +- .../process_group_manager/details/BUILD | 109 ++++++ .../process_group_manager/details}/graph.cpp | 8 +- .../process_group_manager/details}/graph.hpp | 12 +- .../details/os_handler.cpp | 2 +- .../details/os_handler.hpp | 4 +- .../details/process_group_manager.cpp | 8 +- .../details/process_info_node.cpp | 8 +- .../details/process_info_node.hpp | 4 +- .../details/process_launcher.cpp | 16 +- .../details/safe_process_map.cpp | 4 +- .../details/safe_process_map.hpp | 4 +- .../ialive_monitor_thread.hpp | 0 .../process_group_manager/iprocess.hpp | 4 +- .../process_group_manager.hpp | 30 +- .../launch_manager/process_state_client/BUILD | 75 ++++ .../process_state_client/details/BUILD | 25 ++ .../details/process_state_receiver.cpp | 4 +- .../details/process_state_receiver.hpp | 2 +- .../iprocess_state_notifier.hpp | 4 +- .../iprocess_state_receiver.hpp | 4 +- .../process_state_client/posix_process.hpp | 2 +- .../process_state_client_ut.cpp | 4 +- .../process_state_notifier.cpp | 6 +- .../process_state_notifier.hpp | 2 +- .../mw/launch_manager/recovery_client}/BUILD | 18 +- .../recovery_client}/irecovery_client.h | 2 +- .../recovery_client}/recovery_client.cpp | 2 +- .../recovery_client}/recovery_client.hpp | 2 +- .../recovery_client}/recovery_client_UT.cpp | 2 +- score/mw/lifecycle/BUILD | 53 +-- score/mw/lifecycle/control_client/BUILD | 29 ++ .../control_client}/control_client.cpp | 9 +- .../control_client}/control_client.h | 14 +- .../mw/lifecycle/control_client/details/BUILD | 33 ++ .../details}/control_client_impl.cpp | 11 +- .../details}/control_client_impl.hpp | 12 +- .../mw/lifecycle/execution_error.h | 0 .../mw/lifecycle}/execution_error_event.h | 2 +- .../mw/lifecycle/lifecycle_client}/BUILD | 101 +++--- .../aasapplicationcontainer.cpp | 4 +- .../aasapplicationcontainer.h | 4 +- .../lifecycle_client}/application.cpp | 2 +- .../lifecycle/lifecycle_client}/application.h | 2 +- .../lifecycle_client}/applicationcontext.cpp | 2 +- .../lifecycle_client}/applicationcontext.h | 0 .../applicationcontextmock.cpp | 4 +- .../applicationcontextmock.h | 0 .../lifecycle/lifecycle_client/details/BUILD | 27 ++ .../details/lifecycle_client_impl.cpp | 8 +- .../details/lifecycle_client_impl.hpp | 4 +- .../lifecycle_client}/lifecycle_client.h | 4 +- .../lifecycle_client}/lifecycleclient.cpp | 2 +- .../lifecycle_client}/lifecyclemanager.cpp | 4 +- .../lifecycle_client}/lifecyclemanager.h | 4 +- .../lifecyclemanagermock.cpp | 4 +- .../lifecycle_client}/lifecyclemanagermock.h | 4 +- .../lifecycle_client}/runapplication.cpp | 2 +- .../lifecycle_client}/runapplication.h | 4 +- .../mw/lifecycle/lifecycle_client/rust}/BUILD | 4 +- .../lifecycle_client/rust}/Cargo.lock | 0 .../lifecycle_client/rust}/Cargo.toml | 0 .../lifecycle_client/rust}/src/lib.rs | 0 .../lifecycle_client/rust}/src/lifecycle.rs | 0 scripts/config_mapping/config.bzl | 8 +- scripts/config_mapping/integration_tests.py | 2 +- scripts/config_mapping/tests/BUILD | 2 +- src/BUILD | 0 src/control_client_lib/BUILD | 36 -- src/health_monitoring_lib/BUILD | 174 --------- src/launch_manager_daemon/BUILD | 92 ----- src/launch_manager_daemon/common/BUILD | 119 ------ .../common/src/internal/config.cpp | 43 --- .../health_monitor_lib/BUILD | 339 ------------------ .../lifecycle_client_lib/BUILD | 43 --- .../process_state_client_lib/BUILD | 75 ---- .../LifecycleClientExt.hpp | 41 --- .../process_group_manager/workerthread.cpp | 84 ----- .../process_group_manager/workerthread.hpp | 77 ---- .../incorrect_config_non_reporting/BUILD | 5 +- .../non_reporting_process.cpp | 7 +- tests/integration/smoke/BUILD | 5 +- .../integration/smoke/control_daemon_mock.cpp | 5 +- tests/integration/smoke/gtest_process.cpp | 4 +- tests/utils/test_helper/test_helper.hpp | 2 +- 305 files changed, 2490 insertions(+), 1761 deletions(-) create mode 100644 score/mw/health/health_monitoring_lib/BUILD rename {src => score/mw/health}/health_monitoring_lib/Cargo.toml (100%) create mode 100644 score/mw/health/health_monitoring_lib/cpp/BUILD rename {src => score/mw/health}/health_monitoring_lib/cpp/common.cpp (97%) rename {src/health_monitoring_lib/cpp/include/score/hm => score/mw/health/health_monitoring_lib/cpp}/common.h (100%) create mode 100644 score/mw/health/health_monitoring_lib/cpp/deadline/BUILD rename {src/health_monitoring_lib/cpp => score/mw/health/health_monitoring_lib/cpp/deadline}/deadline_monitor.cpp (98%) rename {src/health_monitoring_lib/cpp/include/score/hm => score/mw/health/health_monitoring_lib/cpp}/deadline/deadline_monitor.h (97%) create mode 100644 score/mw/health/health_monitoring_lib/cpp/details/BUILD rename {src/health_monitoring_lib/cpp/tests => score/mw/health/health_monitoring_lib/cpp/details}/log_init.cpp (100%) rename {src/health_monitoring_lib/cpp => score/mw/health/health_monitoring_lib/cpp/details}/thread.cpp (98%) rename {src/health_monitoring_lib/cpp/include/score/hm => score/mw/health/health_monitoring_lib/cpp/details}/thread.h (97%) rename {src => score/mw/health}/health_monitoring_lib/cpp/health_monitor.cpp (99%) rename {src/health_monitoring_lib/cpp/include/score/hm => score/mw/health/health_monitoring_lib/cpp}/health_monitor.h (90%) rename {src/health_monitoring_lib/cpp/tests => score/mw/health/health_monitoring_lib/cpp}/health_monitor_test.cpp (96%) create mode 100644 score/mw/health/health_monitoring_lib/cpp/heartbeat/BUILD rename {src/health_monitoring_lib/cpp => score/mw/health/health_monitoring_lib/cpp/heartbeat}/heartbeat_monitor.cpp (96%) rename {src/health_monitoring_lib/cpp/include/score/hm => score/mw/health/health_monitoring_lib/cpp}/heartbeat/heartbeat_monitor.h (97%) create mode 100644 score/mw/health/health_monitoring_lib/cpp/logic/BUILD rename {src/health_monitoring_lib/cpp => score/mw/health/health_monitoring_lib/cpp/logic}/logic_monitor.cpp (98%) rename {src/health_monitoring_lib/cpp/include/score/hm => score/mw/health/health_monitoring_lib/cpp}/logic/logic_monitor.h (96%) rename {src/health_monitoring_lib/cpp/include/score/hm => score/mw/health/health_monitoring_lib/cpp}/tag.h (100%) create mode 100644 score/mw/health/health_monitoring_lib/rust/BUILD rename {src => score/mw/health}/health_monitoring_lib/rust/common.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/deadline/common.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/deadline/deadline_monitor.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/deadline/deadline_state.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/deadline/ffi.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/deadline/mod.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/ffi.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/health_monitor.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/heartbeat/ffi.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/heartbeat/heartbeat_monitor.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/heartbeat/heartbeat_state.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/heartbeat/mod.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/lib.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/log.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/logic/ffi.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/logic/logic_monitor.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/logic/logic_state.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/logic/mod.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/protected_memory.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/supervisor_api_client/mod.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/supervisor_api_client/score_supervisor_api_client.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/supervisor_api_client/stub_supervisor_api_client.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/tag.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/thread_ffi.rs (100%) rename {src => score/mw/health}/health_monitoring_lib/rust/worker.rs (100%) create mode 100644 score/mw/launch_manager/BUILD create mode 100644 score/mw/launch_manager/alive_monitor/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib => score/mw/launch_manager/alive_monitor}/Monitor.cpp (95%) rename {src/launch_manager_daemon/health_monitor_lib/include/score/lcm => score/mw/launch_manager/alive_monitor}/Monitor.h (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib => score/mw/launch_manager/alive_monitor}/MonitorImplWrapper.cpp (86%) rename {src/launch_manager_daemon/health_monitor_lib/include/score/lcm => score/mw/launch_manager/alive_monitor}/MonitorImplWrapper.h (100%) rename {src/launch_manager_daemon/health_monitor_lib => score/mw/launch_manager/alive_monitor}/config/hm_flatcfg.fbs (100%) rename {src/launch_manager_daemon/health_monitor_lib => score/mw/launch_manager/alive_monitor}/config/hm_flatcfg_generated.h (100%) rename {src/launch_manager_daemon/health_monitor_lib => score/mw/launch_manager/alive_monitor}/config/hmcore_flatcfg.fbs (100%) rename {src/launch_manager_daemon/health_monitor_lib => score/mw/launch_manager/alive_monitor}/config/hmcore_flatcfg_generated.h (100%) create mode 100644 score/mw/launch_manager/alive_monitor/details/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib => score/mw/launch_manager/alive_monitor/details}/MonitorImpl.cpp (96%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib => score/mw/launch_manager/alive_monitor/details}/MonitorImpl.h (93%) create mode 100644 score/mw/launch_manager/alive_monitor/details/common/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/common/FixedSizeVector.hpp (100%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/common/LockedVector.hpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/common/Observer.hpp (100%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/common/TimeSortingBuffer.hpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/common/Types.hpp (100%) rename src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/HealthMonitorImpl.cpp => score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.cpp (79%) rename src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/HealthMonitorImpl.hpp => score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.hpp (81%) create mode 100644 score/mw/launch_manager/alive_monitor/details/daemon/BUILD rename src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/IHealthMonitor.hpp => score/mw/launch_manager/alive_monitor/details/daemon/IAliveMonitor.hpp (90%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/daemon/PhmDaemon.cpp (87%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/daemon/PhmDaemon.hpp (93%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/daemon/PhmDaemonConfig.hpp (100%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/daemon/SwClusterHandler.cpp (89%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/daemon/SwClusterHandler.hpp (90%) create mode 100644 score/mw/launch_manager/alive_monitor/details/factory/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/factory/FlatCfgFactory.cpp (96%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/factory/FlatCfgFactory.hpp (94%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/factory/IPhmFactory.hpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/factory/MachineConfigFactory.cpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/factory/MachineConfigFactory.hpp (94%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/factory/StaticConfig.hpp (88%) create mode 100644 score/mw/launch_manager/alive_monitor/details/ifappl/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifappl/Checkpoint.cpp (96%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifappl/Checkpoint.hpp (95%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifappl/DataStructures.hpp (93%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifappl/MonitorIfDaemon.cpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifappl/MonitorIfDaemon.hpp (95%) create mode 100644 score/mw/launch_manager/alive_monitor/details/ifexm/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifexm/ProcessCfg.cpp (92%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifexm/ProcessCfg.hpp (96%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifexm/ProcessState.cpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifexm/ProcessState.hpp (93%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifexm/ProcessStateReader.cpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ifexm/ProcessStateReader.hpp (90%) create mode 100644 score/mw/launch_manager/alive_monitor/details/ipc/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ipc/IpcBase.hpp (100%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ipc/IpcClient.hpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/ipc/IpcServer.hpp (99%) create mode 100644 score/mw/launch_manager/alive_monitor/details/logging/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/logging/PhmLogger.cpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/logging/PhmLogger.hpp (100%) create mode 100644 score/mw/launch_manager/alive_monitor/details/recovery/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/recovery/Notification.cpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/recovery/Notification.hpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/recovery/Notification_UT.cpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/Alive.cpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/Alive.hpp (95%) create mode 100644 score/mw/launch_manager/alive_monitor/details/supervision/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/Global.cpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/Global.hpp (93%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/ICheckpointSupervision.cpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/ICheckpointSupervision.hpp (93%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/ISupervision.cpp (92%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/ISupervision.hpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/Local.cpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/Local.hpp (93%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/ProcessStateTracker.cpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/ProcessStateTracker.hpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/supervision/SupervisionCfg.hpp (97%) create mode 100644 score/mw/launch_manager/alive_monitor/details/timers/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/CycleTimeValidator.cpp (95%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/CycleTimeValidator.hpp (95%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/CycleTimer.cpp (94%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/CycleTimer.hpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/OsClockInterface.hpp (100%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/TimeConversion.cpp (96%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/TimeConversion.hpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/Timers_OsClock.cpp (92%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/timers/Timers_OsClock.hpp (100%) create mode 100644 score/mw/launch_manager/alive_monitor/details/watchdog/BUILD rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/watchdog/DeviceIf.cpp (95%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/watchdog/DeviceIf.hpp (100%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/watchdog/IDeviceConfigFactory.hpp (100%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/watchdog/IWatchdogIf.hpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/watchdog/Watchdog.hpp (100%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/watchdog/WatchdogImpl.cpp (98%) rename {src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf => score/mw/launch_manager/alive_monitor/details}/watchdog/WatchdogImpl.hpp (97%) rename {src/launch_manager_daemon/health_monitor_lib/rust_bindings => score/mw/launch_manager/alive_monitor/rust}/BUILD (92%) rename {src/launch_manager_daemon/health_monitor_lib/rust_bindings => score/mw/launch_manager/alive_monitor/rust}/Cargo.lock (100%) rename {src/launch_manager_daemon/health_monitor_lib/rust_bindings => score/mw/launch_manager/alive_monitor/rust}/Cargo.toml (100%) rename {src/launch_manager_daemon/health_monitor_lib/rust_bindings => score/mw/launch_manager/alive_monitor/rust}/src/errors.rs (100%) rename {src/launch_manager_daemon/health_monitor_lib/rust_bindings => score/mw/launch_manager/alive_monitor/rust}/src/lib.rs (100%) rename {src/launch_manager_daemon/health_monitor_lib/rust_bindings => score/mw/launch_manager/alive_monitor/rust}/src/monitor.rs (100%) create mode 100644 score/mw/launch_manager/common/BUILD rename {src/launch_manager_daemon => score/mw/launch_manager}/common/concurrency/BUILD (54%) rename {src/launch_manager_daemon => score/mw/launch_manager}/common/concurrency/concurrency_error_domain.hpp (100%) create mode 100644 score/mw/launch_manager/common/concurrency/details/BUILD rename {src/launch_manager_daemon/common/concurrency => score/mw/launch_manager/common/concurrency/details}/helgrind_annotations.hpp (100%) rename {src/launch_manager_daemon => score/mw/launch_manager}/common/concurrency/mpmc_concurrent_queue.hpp (98%) rename {src/launch_manager_daemon => score/mw/launch_manager}/common/concurrency/mpmc_concurrent_queue_test.cpp (99%) rename src/launch_manager_daemon/common/concurrency/helgrind.supp => score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue_test_helgrind.supp (100%) create mode 100644 score/mw/launch_manager/common/concurrency/thread_pool.hpp rename src/launch_manager_daemon/common/include/score/lcm/internal/config.hpp => score/mw/launch_manager/common/constants.hpp (65%) rename {src/launch_manager_daemon/common/src => score/mw/launch_manager/common}/identifier_hash.cpp (98%) rename {src/launch_manager_daemon/common/include/score/lcm => score/mw/launch_manager/common}/identifier_hash.hpp (100%) rename {src/launch_manager_daemon/common/src => score/mw/launch_manager/common}/identifier_hash_UT.cpp (98%) rename {src/launch_manager_daemon/common/include/score/lcm/internal => score/mw/launch_manager/common}/log.hpp (100%) rename {src/launch_manager_daemon/common/include/score/lcm/internal => score/mw/launch_manager/common}/process_group_state_id.hpp (95%) create mode 100644 score/mw/launch_manager/configuration/BUILD rename {src/launch_manager_daemon => score/mw/launch_manager/configuration}/config/BUILD (88%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/BUILD (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/README.rst (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/default_values/alive_supervision_defaults.json (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/default_values/component_properties_defaults.json (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/default_values/deployment_config_defaults.json (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/default_values/run_target_defaults.json (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/default_values/watchdog_defaults.json (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/examples/example_conf.json (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/launch_manager.schema.json (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/config_schema/scripts/validate.py (100%) rename src/launch_manager_daemon/src/configuration_manager/configurationmanager.cpp => score/mw/launch_manager/configuration/configuration_manager.cpp (98%) rename src/launch_manager_daemon/src/configuration_manager/configurationmanager.hpp => score/mw/launch_manager/configuration/configuration_manager.hpp (98%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/lm_flatcfg.fbs (100%) rename {src/launch_manager_daemon/config => score/mw/launch_manager/configuration}/lm_flatcfg_generated.h (100%) create mode 100644 score/mw/launch_manager/control/BUILD rename src/launch_manager_daemon/common/src/internal/controlclientchannel.cpp => score/mw/launch_manager/control/control_client_channel.cpp (98%) rename src/launch_manager_daemon/common/include/score/lcm/internal/controlclientchannel.hpp => score/mw/launch_manager/control/control_client_channel.hpp (99%) rename {src/launch_manager_daemon/src/main => score/mw/launch_manager}/main.cpp (89%) create mode 100644 score/mw/launch_manager/osal/BUILD rename src/launch_manager_daemon/common/src/internal/osal/linux/numcores.cpp => score/mw/launch_manager/osal/details/linux/num_cores.cpp (94%) rename src/launch_manager_daemon/common/src/internal/osal/linux/securitypolicy.cpp => score/mw/launch_manager/osal/details/linux/security_policy.cpp (93%) rename src/launch_manager_daemon/common/src/internal/osal/linux/setaffinity.cpp => score/mw/launch_manager/osal/details/linux/set_affinity.cpp (96%) rename src/launch_manager_daemon/common/src/internal/osal/linux/setgroups.cpp => score/mw/launch_manager/osal/details/linux/set_groups.cpp (94%) rename {src/launch_manager_daemon/common/src/internal/osal => score/mw/launch_manager/osal/details}/posix/semaphore.cpp (97%) rename src/launch_manager_daemon/common/src/internal/osal/posix/sysexit.cpp => score/mw/launch_manager/osal/details/posix/sys_exit.cpp (100%) rename src/launch_manager_daemon/common/src/internal/osal/qnx/numcores.cpp => score/mw/launch_manager/osal/details/qnx/num_cores.cpp (94%) rename src/launch_manager_daemon/common/src/internal/osal/qnx/securitypolicy.cpp => score/mw/launch_manager/osal/details/qnx/security_policy.cpp (95%) rename src/launch_manager_daemon/common/src/internal/osal/qnx/setaffinity.cpp => score/mw/launch_manager/osal/details/qnx/set_affinity.cpp (94%) rename src/launch_manager_daemon/common/src/internal/osal/qnx/setgroups.cpp => score/mw/launch_manager/osal/details/qnx/set_groups.cpp (94%) rename src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalipccomms.hpp => score/mw/launch_manager/osal/ipc_comms.hpp (99%) rename src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalnumcores.hpp => score/mw/launch_manager/osal/num_cores.hpp (100%) rename src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalreturntypes.hpp => score/mw/launch_manager/osal/return_types.hpp (99%) rename src/launch_manager_daemon/common/include/score/lcm/internal/osal/securitypolicy.hpp => score/mw/launch_manager/osal/security_policy.hpp (100%) rename {src/launch_manager_daemon/common/include/score/lcm/internal => score/mw/launch_manager}/osal/semaphore.hpp (99%) rename src/launch_manager_daemon/common/include/score/lcm/internal/osal/setaffinity.hpp => score/mw/launch_manager/osal/set_affinity.hpp (100%) rename src/launch_manager_daemon/common/include/score/lcm/internal/osal/setgroups.hpp => score/mw/launch_manager/osal/set_groups.hpp (100%) rename src/launch_manager_daemon/common/include/score/lcm/internal/osal/sysexit.hpp => score/mw/launch_manager/osal/sys_exit.hpp (100%) create mode 100644 score/mw/launch_manager/process_group_manager/BUILD rename {src/launch_manager_daemon/src => score/mw/launch_manager}/process_group_manager/alive_monitor_thread.cpp (95%) rename {src/launch_manager_daemon/src => score/mw/launch_manager}/process_group_manager/alive_monitor_thread.hpp (84%) create mode 100644 score/mw/launch_manager/process_group_manager/details/BUILD rename {src/launch_manager_daemon/src/process_group_manager => score/mw/launch_manager/process_group_manager/details}/graph.cpp (98%) rename {src/launch_manager_daemon/src/process_group_manager => score/mw/launch_manager/process_group_manager/details}/graph.hpp (98%) rename src/launch_manager_daemon/src/process_group_manager/oshandler.cpp => score/mw/launch_manager/process_group_manager/details/os_handler.cpp (94%) rename src/launch_manager_daemon/src/process_group_manager/oshandler.hpp => score/mw/launch_manager/process_group_manager/details/os_handler.hpp (96%) rename src/launch_manager_daemon/src/process_group_manager/processgroupmanager.cpp => score/mw/launch_manager/process_group_manager/details/process_group_manager.cpp (98%) rename src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp => score/mw/launch_manager/process_group_manager/details/process_info_node.cpp (99%) rename src/launch_manager_daemon/src/process_group_manager/processinfonode.hpp => score/mw/launch_manager/process_group_manager/details/process_info_node.hpp (99%) rename src/launch_manager_daemon/src/process_group_manager/processlauncher.cpp => score/mw/launch_manager/process_group_manager/details/process_launcher.cpp (97%) rename src/launch_manager_daemon/src/process_group_manager/safeprocessmap.cpp => score/mw/launch_manager/process_group_manager/details/safe_process_map.cpp (97%) rename src/launch_manager_daemon/src/process_group_manager/safeprocessmap.hpp => score/mw/launch_manager/process_group_manager/details/safe_process_map.hpp (98%) rename {src/launch_manager_daemon/src => score/mw/launch_manager}/process_group_manager/ialive_monitor_thread.hpp (100%) rename {src/launch_manager_daemon/src => score/mw/launch_manager}/process_group_manager/iprocess.hpp (98%) rename src/launch_manager_daemon/src/process_group_manager/processgroupmanager.hpp => score/mw/launch_manager/process_group_manager/process_group_manager.hpp (93%) create mode 100644 score/mw/launch_manager/process_state_client/BUILD create mode 100644 score/mw/launch_manager/process_state_client/details/BUILD rename src/launch_manager_daemon/process_state_client_lib/src/processstatereceiver.cpp => score/mw/launch_manager/process_state_client/details/process_state_receiver.cpp (92%) rename src/launch_manager_daemon/process_state_client_lib/include/score/lcm/processstatereceiver.hpp => score/mw/launch_manager/process_state_client/details/process_state_receiver.hpp (97%) rename src/launch_manager_daemon/process_state_client_lib/include/score/lcm/iprocessstatenotifier.hpp => score/mw/launch_manager/process_state_client/iprocess_state_notifier.hpp (93%) rename src/launch_manager_daemon/process_state_client_lib/include/score/lcm/iprocessstatereceiver.hpp => score/mw/launch_manager/process_state_client/iprocess_state_receiver.hpp (92%) rename src/launch_manager_daemon/process_state_client_lib/include/score/lcm/posixprocess.hpp => score/mw/launch_manager/process_state_client/posix_process.hpp (98%) rename src/launch_manager_daemon/process_state_client_lib/src/processstateclient_UT.cpp => score/mw/launch_manager/process_state_client/process_state_client_ut.cpp (97%) rename src/launch_manager_daemon/process_state_client_lib/src/processstatenotifier.cpp => score/mw/launch_manager/process_state_client/process_state_notifier.cpp (87%) rename src/launch_manager_daemon/process_state_client_lib/include/score/lcm/processstatenotifier.hpp => score/mw/launch_manager/process_state_client/process_state_notifier.hpp (97%) rename {src/launch_manager_daemon/recovery_client_lib => score/mw/launch_manager/recovery_client}/BUILD (64%) rename {src/launch_manager_daemon/recovery_client_lib/include/score/lcm => score/mw/launch_manager/recovery_client}/irecovery_client.h (97%) rename {src/launch_manager_daemon/recovery_client_lib/src => score/mw/launch_manager/recovery_client}/recovery_client.cpp (94%) rename {src/launch_manager_daemon/recovery_client_lib/include/score/lcm => score/mw/launch_manager/recovery_client}/recovery_client.hpp (96%) rename {src/launch_manager_daemon/recovery_client_lib/src => score/mw/launch_manager/recovery_client}/recovery_client_UT.cpp (97%) create mode 100644 score/mw/lifecycle/control_client/BUILD rename {src/control_client_lib/src => score/mw/lifecycle/control_client}/control_client.cpp (91%) rename {src/control_client_lib/include/score/lcm => score/mw/lifecycle/control_client}/control_client.h (97%) create mode 100644 score/mw/lifecycle/control_client/details/BUILD rename {src/control_client_lib/src => score/mw/lifecycle/control_client/details}/control_client_impl.cpp (98%) rename {src/control_client_lib/src => score/mw/lifecycle/control_client/details}/control_client_impl.hpp (97%) rename src/launch_manager_daemon/common/include/score/lcm/exec_error_domain.h => score/mw/lifecycle/execution_error.h (100%) rename {src/control_client_lib/src => score/mw/lifecycle}/execution_error_event.h (95%) rename {src/lifecycle_client_lib => score/mw/lifecycle/lifecycle_client}/BUILD (69%) rename {src/lifecycle_client_lib/src => score/mw/lifecycle/lifecycle_client}/aasapplicationcontainer.cpp (96%) rename {src/lifecycle_client_lib/include => score/mw/lifecycle/lifecycle_client}/aasapplicationcontainer.h (97%) rename {src/lifecycle_client_lib/src => score/mw/lifecycle/lifecycle_client}/application.cpp (90%) rename {src/lifecycle_client_lib/include => score/mw/lifecycle/lifecycle_client}/application.h (97%) rename {src/lifecycle_client_lib/src => score/mw/lifecycle/lifecycle_client}/applicationcontext.cpp (96%) rename {src/lifecycle_client_lib/include => score/mw/lifecycle/lifecycle_client}/applicationcontext.h (100%) rename {src/lifecycle_client_lib/test/ut/mocks => score/mw/lifecycle/lifecycle_client}/applicationcontextmock.cpp (94%) rename {src/lifecycle_client_lib/test/ut/mocks => score/mw/lifecycle/lifecycle_client}/applicationcontextmock.h (100%) create mode 100644 score/mw/lifecycle/lifecycle_client/details/BUILD rename src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclientimpl.cpp => score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.cpp (95%) rename src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclientimpl.hpp => score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.hpp (97%) rename {src/launch_manager_daemon/lifecycle_client_lib/include/score/lcm => score/mw/lifecycle/lifecycle_client}/lifecycle_client.h (98%) rename {src/launch_manager_daemon/lifecycle_client_lib/src => score/mw/lifecycle/lifecycle_client}/lifecycleclient.cpp (96%) rename {src/lifecycle_client_lib/src => score/mw/lifecycle/lifecycle_client}/lifecyclemanager.cpp (98%) rename {src/lifecycle_client_lib/include => score/mw/lifecycle/lifecycle_client}/lifecyclemanager.h (95%) rename {src/lifecycle_client_lib/test/ut/mocks => score/mw/lifecycle/lifecycle_client}/lifecyclemanagermock.cpp (95%) rename {src/lifecycle_client_lib/test/ut/mocks => score/mw/lifecycle/lifecycle_client}/lifecyclemanagermock.h (92%) rename {src/lifecycle_client_lib/src => score/mw/lifecycle/lifecycle_client}/runapplication.cpp (90%) rename {src/lifecycle_client_lib/include => score/mw/lifecycle/lifecycle_client}/runapplication.h (95%) rename {src/launch_manager_daemon/lifecycle_client_lib/rust_bindings => score/mw/lifecycle/lifecycle_client/rust}/BUILD (85%) rename {src/launch_manager_daemon/lifecycle_client_lib/rust_bindings => score/mw/lifecycle/lifecycle_client/rust}/Cargo.lock (100%) rename {src/launch_manager_daemon/lifecycle_client_lib/rust_bindings => score/mw/lifecycle/lifecycle_client/rust}/Cargo.toml (100%) rename {src/launch_manager_daemon/lifecycle_client_lib/rust_bindings => score/mw/lifecycle/lifecycle_client/rust}/src/lib.rs (100%) rename {src/launch_manager_daemon/lifecycle_client_lib/rust_bindings => score/mw/lifecycle/lifecycle_client/rust}/src/lifecycle.rs (100%) delete mode 100644 src/BUILD delete mode 100644 src/control_client_lib/BUILD delete mode 100644 src/health_monitoring_lib/BUILD delete mode 100644 src/launch_manager_daemon/BUILD delete mode 100644 src/launch_manager_daemon/common/BUILD delete mode 100644 src/launch_manager_daemon/common/src/internal/config.cpp delete mode 100644 src/launch_manager_daemon/health_monitor_lib/BUILD delete mode 100644 src/launch_manager_daemon/lifecycle_client_lib/BUILD delete mode 100644 src/launch_manager_daemon/process_state_client_lib/BUILD delete mode 100644 src/launch_manager_daemon/src/process_group_manager/LifecycleClientExt.hpp delete mode 100644 src/launch_manager_daemon/src/process_group_manager/workerthread.cpp delete mode 100644 src/launch_manager_daemon/src/process_group_manager/workerthread.hpp diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f9d071956..b46621278 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,4 +48,4 @@ jobs: - name: Build with Bazel run: | - bazel build --lockfile_mode=error --config ${{ matrix.config }} //src/... //examples/... + bazel build --lockfile_mode=error --config ${{ matrix.config }} //score/mw/... //examples/... diff --git a/.github/workflows/build_qnx8.yml b/.github/workflows/build_qnx8.yml index 40f5e47f9..fd5f52da3 100644 --- a/.github/workflows/build_qnx8.yml +++ b/.github/workflows/build_qnx8.yml @@ -30,7 +30,7 @@ jobs: matrix: config: ['arm64-qnx', 'x86_64-qnx'] with: - bazel-target: '//src/... //examples/...' + bazel-target: '//score/mw/... //examples/...' bazel-config: ${{ matrix.config }} credential-helper: 'scripts/internal/qnx_creds.py' environment-name: 'workflow-approval' diff --git a/.github/workflows/code_coverage.yml b/.github/workflows/code_coverage.yml index fea299955..8413009da 100644 --- a/.github/workflows/code_coverage.yml +++ b/.github/workflows/code_coverage.yml @@ -26,7 +26,7 @@ jobs: cpp: uses: eclipse-score/cicd-workflows/.github/workflows/cpp-coverage.yml@c1c90b1a82a1fab0fc202979dde6686b2162d5a8 # v0.0.0 with: - bazel-target: "//src/..." + bazel-target: "//score/mw/..." bazel-config: "x86_64-linux" extra-bazel-flags: "--test_output=errors --nocache_test_results --lockfile_mode=error" artifact-name-suffix: "_cpp" @@ -35,7 +35,7 @@ jobs: rust: uses: eclipse-score/cicd-workflows/.github/workflows/rust-coverage.yml@c1c90b1a82a1fab0fc202979dde6686b2162d5a8 # v0.0.0 with: - bazel-test-targets: "//src/..." + bazel-test-targets: "//score/mw/..." bazel-test-config-flags: "--config=x86_64-linux --config=ferrocene-coverage --lockfile_mode=error" bazel-test-args: "--test_output=errors --nocache_test_results" coverage-target: "//:rust_coverage" diff --git a/.github/workflows/test_and_docs.yml b/.github/workflows/test_and_docs.yml index 0c3e81269..d51d35642 100644 --- a/.github/workflows/test_and_docs.yml +++ b/.github/workflows/test_and_docs.yml @@ -44,7 +44,7 @@ jobs: contents: read pull-requests: read with: - bazel-target: 'test --lockfile_mode=error //src/... //tests/... --config=x86_64-linux' + bazel-target: 'test --lockfile_mode=error //score/mw/... //tests/... --config=x86_64-linux' upload-name: 'bazel-testlogs' packages: 'fakechroot' build-docs: diff --git a/BUILD b/BUILD index 7c5b97876..e9df0a53d 100644 --- a/BUILD +++ b/BUILD @@ -46,7 +46,7 @@ copyright_checker( name = "copyright", srcs = [ "examples", - "src", + "score", "//:BUILD", "//:MODULE.bazel", ], @@ -81,7 +81,7 @@ rust_coverage_report( "x86_64-linux", "ferrocene-coverage", ], - query = 'kind("rust_test", //src/...) except attr("tags", "loom", //src/...)', + query = 'kind("rust_test", //score/mw/...) except attr("tags", "loom", //score/mw/...)', visibility = ["//visibility:public"], ) @@ -94,7 +94,7 @@ alias( # Docs docs( data = [ - "//src/launch_manager_daemon/config/config_schema:config_schema_files", + "//score/mw/launch_manager/configuration/config_schema:config_schema_files", "@score_platform//:needs_json", # This allows linking to feature requirements. "@score_process//:needs_json", # This allows linking to requirements (wp__requirements_comp, etc.) from the process_description repository. ], diff --git a/Cargo.lock b/Cargo.lock index 8fc3b0c2b..5d7b04091 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -28,15 +28,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -63,9 +63,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.56" +version = "1.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" dependencies = [ "find-msvc-tools", "shlex", @@ -79,9 +79,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "clap" -version = "4.5.52" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa8120877db0e5c011242f96806ce3c94e0737ab8108532a76a3300a01db2ab8" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -89,9 +89,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.52" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02576b399397b659c26064fbc92a75fede9d18ffd5f80ca1cd74ddab167016e1" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ "anstream", "anstyle", @@ -101,9 +101,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.49" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck", "proc-macro2", @@ -113,21 +113,31 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.6" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "containers" version = "0.1.0" source = "git+https://github.com/eclipse-score/baselibs_rust.git?tag=v0.1.1#7227b67c45dff719901d8f3763d5a37fb55aa0ad" +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -176,9 +186,9 @@ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "lazy_static" @@ -188,9 +198,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "lifecycle_client_rs" @@ -253,9 +263,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -275,24 +285,24 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -407,9 +417,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", @@ -445,10 +455,11 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -474,9 +485,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.110" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -534,9 +545,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", @@ -552,9 +563,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "utf8parse" diff --git a/Cargo.toml b/Cargo.toml index 00e88c2c4..fc3bf19ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ [workspace] resolver = "2" members = [ - "src/launch_manager_daemon/lifecycle_client_lib/rust_bindings", - "src/launch_manager_daemon/health_monitor_lib/rust_bindings", - "src/health_monitoring_lib", + "score/mw/lifecycle/lifecycle_client/rust", + "score/mw/launch_manager/alive_monitor/rust", + "score/mw/health/health_monitoring_lib", "examples/rust_supervised_app", ] -default-members = ["src/health_monitoring_lib"] +default-members = ["score/mw/health/health_monitoring_lib"] [workspace.package] edition = "2021" @@ -19,8 +19,8 @@ libc = "0.2.177" clap = { version = "4.5.49", features = ["derive"] } signal-hook = "0.3.18" -monitor_rs = { path = "src/launch_manager_daemon/health_monitor_lib/rust_bindings" } # Temporary API -health_monitoring_lib = { path = "src/health_monitoring_lib" } +monitor_rs = { path = "score/mw/launch_manager/alive_monitor/rust" } # Temporary API +health_monitoring_lib = { path = "score/mw/health/health_monitoring_lib" } score_log = { git = "https://github.com/eclipse-score/baselibs_rust.git", tag = "v0.1.1" } score_testing_macros = { git = "https://github.com/eclipse-score/baselibs_rust.git", tag = "v0.1.1" } stdout_logger = { git = "https://github.com/eclipse-score/baselibs_rust.git", tag = "v0.1.1" } diff --git a/docs/conf.py b/docs/conf.py index 8bf189939..e645e3902 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -118,10 +118,10 @@ def setup(app): srcdir = Path(app.srcdir) workspace_root = Path(os.getcwd()) src_json_dir = ( - workspace_root / "src" / "launch_manager_daemon" / "config" / "config_schema" + workspace_root / "src" / "launch_manager" / "config" / "config_schema" ) dest_json_dir = ( - srcdir.parent / "src" / "launch_manager_daemon" / "config" / "config_schema" + srcdir.parent / "src" / "launch_manager" / "config" / "config_schema" ) if src_json_dir.exists() and not dest_json_dir.exists(): dest_json_dir.parent.mkdir(parents=True, exist_ok=True) diff --git a/docs/module/launch_manager_deamon/user_guide/configuration.rst b/docs/module/launch_manager_deamon/user_guide/configuration.rst index 910563768..12055bc2b 100644 --- a/docs/module/launch_manager_deamon/user_guide/configuration.rst +++ b/docs/module/launch_manager_deamon/user_guide/configuration.rst @@ -428,7 +428,7 @@ alive_supervision .. dropdown:: alive_supervision_defaults.json - .. literalinclude:: ../../../../src/launch_manager_daemon/config/config_schema/default_values/alive_supervision_defaults.json + .. literalinclude:: ../../../../score/mw/launch_manager/configuration/config_schema/default_values/alive_supervision_defaults.json :language: json watchdog @@ -438,7 +438,7 @@ watchdog .. dropdown:: watchdog_defaults.json - .. literalinclude:: ../../../../src/launch_manager_daemon/config/config_schema/default_values/watchdog_defaults.json + .. literalinclude:: ../../../../score/mw/launch_manager/configuration/config_schema/default_values/watchdog_defaults.json :language: json run_target @@ -446,7 +446,7 @@ run_target .. dropdown:: run_target_defaults.json - .. literalinclude:: ../../../../src/launch_manager_daemon/config/config_schema/default_values/run_target_defaults.json + .. literalinclude:: ../../../../score/mw/launch_manager/configuration/config_schema/default_values/run_target_defaults.json :language: json component_properties @@ -454,7 +454,7 @@ component_properties .. dropdown:: component_properties_defaults.json - .. literalinclude:: ../../../../src/launch_manager_daemon/config/config_schema/default_values/component_properties_defaults.json + .. literalinclude:: ../../../../score/mw/launch_manager/configuration/config_schema/default_values/component_properties_defaults.json :language: json deployment_config @@ -462,7 +462,7 @@ deployment_config .. dropdown:: deployment_config_defaults.json - .. literalinclude:: ../../../../src/launch_manager_daemon/config/config_schema/default_values/deployment_config_defaults.json + .. literalinclude:: ../../../../score/mw/launch_manager/configuration/config_schema/default_values/deployment_config_defaults.json :language: json fallback_run_target diff --git a/docs/module/launch_manager_deamon/user_guide/examples.rst b/docs/module/launch_manager_deamon/user_guide/examples.rst index 544fda2f6..73487815d 100644 --- a/docs/module/launch_manager_deamon/user_guide/examples.rst +++ b/docs/module/launch_manager_deamon/user_guide/examples.rst @@ -26,7 +26,7 @@ apply various features effectively. .. dropdown:: example_conf.json - .. literalinclude:: ../../../../src/launch_manager_daemon/config/config_schema/examples/example_conf.json + .. literalinclude:: ../../../../score/mw/launch_manager/configuration/config_schema/examples/example_conf.json :language: json The `example_conf.json` file is a fundamental example within the **Launch diff --git a/examples/BUILD b/examples/BUILD index 4c8080d23..238f0767e 100644 --- a/examples/BUILD +++ b/examples/BUILD @@ -32,10 +32,10 @@ filegroup( filegroup( name = "lm_binaries", srcs = [ + "//score/mw/launch_manager/process_state_client", "//score/mw/lifecycle:control_cc", "//score/mw/lifecycle:launch_manager", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", - "//src/launch_manager_daemon/process_state_client_lib:process_state_client", + "//score/mw/lifecycle/lifecycle_client", ], ) diff --git a/examples/control_application/BUILD b/examples/control_application/BUILD index d25b46a7d..26ab66b92 100644 --- a/examples/control_application/BUILD +++ b/examples/control_application/BUILD @@ -10,6 +10,8 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_binary") + cc_binary( name = "lmcontrol", srcs = [ @@ -54,6 +56,6 @@ cc_binary( deps = [ "//externals/ipc_dropin", "//score/mw/lifecycle:control_cc", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + "//score/mw/lifecycle/lifecycle_client", ], ) diff --git a/examples/control_application/control_daemon.cpp b/examples/control_application/control_daemon.cpp index f0d4b87f9..822ae2bfd 100644 --- a/examples/control_application/control_daemon.cpp +++ b/examples/control_application/control_daemon.cpp @@ -16,8 +16,8 @@ #include #include -#include -#include +#include +#include #include "ipc_dropin/socket.hpp" #include "control.hpp" diff --git a/examples/cpp_lifecycle_app/main.cpp b/examples/cpp_lifecycle_app/main.cpp index d806549a6..4ad81a156 100644 --- a/examples/cpp_lifecycle_app/main.cpp +++ b/examples/cpp_lifecycle_app/main.cpp @@ -24,8 +24,8 @@ #include #endif -#include "src/lifecycle_client_lib/include/application.h" -#include "src/lifecycle_client_lib/include/runapplication.h" +#include +#include /// @brief CLI configuration options for the not_supervised_application process struct Config diff --git a/examples/cpp_supervised_app/BUILD b/examples/cpp_supervised_app/BUILD index 2dcc73602..7a9bb3070 100644 --- a/examples/cpp_supervised_app/BUILD +++ b/examples/cpp_supervised_app/BUILD @@ -10,6 +10,8 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_binary") + cc_binary( name = "cpp_supervised_app", srcs = [ @@ -32,7 +34,7 @@ cc_binary( deps = [ "//score/mw/health:health_monitoring_cc", "//score/mw/lifecycle:alive_cc", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + "//score/mw/lifecycle/lifecycle_client", "@score_baselibs_rust//src/log/stdout_logger_cpp_init", ], ) diff --git a/examples/cpp_supervised_app/main.cpp b/examples/cpp_supervised_app/main.cpp index 67cd29b2c..aaafc8419 100644 --- a/examples/cpp_supervised_app/main.cpp +++ b/examples/cpp_supervised_app/main.cpp @@ -23,14 +23,12 @@ #include #endif -#include "score/lcm/Monitor.h" -#include "score/lcm/lifecycle_client.h" -#include "score/mw/log/rust/stdout_logger_init.h" -#include -#include +#include +#include +#include +#include #include -using score::lcm::Monitor; /// @brief CLI configuration options for the demo_application process struct Config diff --git a/examples/run.sh b/examples/run.sh index d68126093..6009ddd7f 100755 --- a/examples/run.sh +++ b/examples/run.sh @@ -32,7 +32,7 @@ else BAZEL_BIN="$PWD/../bazel-bin" fi -LM_BINARY="$BAZEL_BIN/src/launch_manager_daemon/launch_manager" +LM_BINARY="$BAZEL_BIN/score/mw/launch_manager/launch_manager" DEMO_APP_BINARY="$BAZEL_BIN/examples/cpp_supervised_app/cpp_supervised_app" DEMO_APP_WO_HM_BINARY="$BAZEL_BIN/examples/cpp_lifecycle_app/cpp_lifecycle_app" RUST_APP_BINARY="$BAZEL_BIN/examples/rust_supervised_app/rust_supervised_app" @@ -71,8 +71,8 @@ cp $CONTROL_APP_BINARY tmp/control_app/ cp $CONTROL_CLI_BINARY tmp/control_app/ mkdir -p tmp/lib -cp $BAZEL_BIN/src/launch_manager_daemon/process_state_client_lib/libprocess_state_client.so tmp/lib/ -cp $BAZEL_BIN/src/launch_manager_daemon/lifecycle_client_lib/liblifecycle_client.so tmp/lib/ +cp $BAZEL_BIN/score/mw/launch_manager/process_state_client_lib/libprocess_state_client.so tmp/lib/ +cp $BAZEL_BIN/score/mw/launch_manager/lifecycle_client_lib/liblifecycle_client.so tmp/lib/ cp $BAZEL_BIN/src/control_client_lib/libcontrol_client_lib.so tmp/lib/ docker build . -t demo diff --git a/examples/rust_supervised_app/Cargo.toml b/examples/rust_supervised_app/Cargo.toml index 1426669bc..adf848251 100644 --- a/examples/rust_supervised_app/Cargo.toml +++ b/examples/rust_supervised_app/Cargo.toml @@ -11,8 +11,8 @@ path = "src/main.rs" clap = { workspace = true } libc = { workspace = true } signal-hook = { workspace = true } -lifecycle_client_rs = { path = "../../src/launch_manager_daemon/lifecycle_client_lib/rust_bindings" } -monitor_rs = { path = "../../src/launch_manager_daemon/health_monitor_lib/rust_bindings" } +lifecycle_client_rs = { path = "../../score/mw/lifecycle/lifecycle_client/rust" } +monitor_rs = { path = "../../score/mw/launch_manager/alive_monitor/rust" } health_monitoring_lib.workspace = true score_log.workspace = true stdout_logger.workspace = true diff --git a/score/mw/health/BUILD b/score/mw/health/BUILD index 2c108d6bb..ea926b733 100644 --- a/score/mw/health/BUILD +++ b/score/mw/health/BUILD @@ -15,10 +15,10 @@ package(default_visibility = ["//visibility:public"]) alias( name = "health_monitoring_cc", - actual = "//src/health_monitoring_lib:health_monitoring_lib_cc", + actual = "//score/mw/health/health_monitoring_lib:health_monitoring_lib_cc", ) alias( name = "health_monitoring_rust", - actual = "//src/health_monitoring_lib:health_monitoring_lib", + actual = "//score/mw/health/health_monitoring_lib/rust:health_monitoring_lib", ) diff --git a/score/mw/health/health_monitoring_lib/BUILD b/score/mw/health/health_monitoring_lib/BUILD new file mode 100644 index 000000000..d7b5b3f8a --- /dev/null +++ b/score/mw/health/health_monitoring_lib/BUILD @@ -0,0 +1,32 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "health_monitoring_lib_cc", + visibility = ["//visibility:public"], + deps = [ + "//score/mw/health/health_monitoring_lib/cpp:health_monitor", + "//score/mw/health/health_monitoring_lib/rust:health_monitoring_lib_ffi", + ], +) + +cc_library( + name = "health_monitoring_lib_cc_stub_supervisor", + visibility = ["//score/mw/health/health_monitoring_lib/cpp:__pkg__"], + deps = [ + "//score/mw/health/health_monitoring_lib/cpp:health_monitor", + "//score/mw/health/health_monitoring_lib/rust:health_monitoring_lib_stub_supervisor", + ], +) diff --git a/src/health_monitoring_lib/Cargo.toml b/score/mw/health/health_monitoring_lib/Cargo.toml similarity index 100% rename from src/health_monitoring_lib/Cargo.toml rename to score/mw/health/health_monitoring_lib/Cargo.toml diff --git a/score/mw/health/health_monitoring_lib/cpp/BUILD b/score/mw/health/health_monitoring_lib/cpp/BUILD new file mode 100644 index 000000000..414806310 --- /dev/null +++ b/score/mw/health/health_monitoring_lib/cpp/BUILD @@ -0,0 +1,65 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +load("@rules_cc//cc:defs.bzl", "cc_library") +load("@score_baselibs//:bazel/unit_tests.bzl", "cc_gtest_unit_test") + +cc_library( + name = "tag", + hdrs = ["tag.h"], + include_prefix = "score/mw/health/health_monitoring_lib", + strip_include_prefix = "/score/mw/health/health_monitoring_lib/cpp", + visibility = ["//visibility:public"], +) + +cc_library( + name = "common", + srcs = ["common.cpp"], + hdrs = ["common.h"], + include_prefix = "score/mw/health/health_monitoring_lib", + strip_include_prefix = "/score/mw/health/health_monitoring_lib/cpp", + visibility = ["//visibility:public"], + deps = ["@score_baselibs//score/language/futurecpp"], +) + +cc_library( + name = "health_monitor", + srcs = ["health_monitor.cpp"], + hdrs = ["health_monitor.h"], + include_prefix = "score/mw/health/health_monitoring_lib", + strip_include_prefix = "/score/mw/health/health_monitoring_lib/cpp", + visibility = ["//score:__subpackages__"], + deps = [ + ":common", + ":tag", + "//score/mw/health/health_monitoring_lib/cpp/details:thread", + "//score/mw/health/health_monitoring_lib/cpp/deadline:deadline_monitor", + "//score/mw/health/health_monitoring_lib/cpp/heartbeat:heartbeat_monitor", + "//score/mw/health/health_monitoring_lib/cpp/logic:logic_monitor", + ], +) + +cc_gtest_unit_test( + name = "cpp_tests", + srcs = [ + "health_monitor_test.cpp", + ], + linkopts = select({ + "@platforms//os:qnx": ["-lsocket"], + "@platforms//os:linux": [], + }), + deps = [ + "//score/mw/health/health_monitoring_lib:health_monitoring_lib_cc_stub_supervisor", + "//score/mw/health/health_monitoring_lib/cpp/details:log_init", + ], +) diff --git a/src/health_monitoring_lib/cpp/common.cpp b/score/mw/health/health_monitoring_lib/cpp/common.cpp similarity index 97% rename from src/health_monitoring_lib/cpp/common.cpp rename to score/mw/health/health_monitoring_lib/cpp/common.cpp index 9ff407a33..eb6bd93c9 100644 --- a/src/health_monitoring_lib/cpp/common.cpp +++ b/score/mw/health/health_monitoring_lib/cpp/common.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ #include -#include +#include "score/mw/health/health_monitoring_lib/common.h" namespace score::hm::internal { diff --git a/src/health_monitoring_lib/cpp/include/score/hm/common.h b/score/mw/health/health_monitoring_lib/cpp/common.h similarity index 100% rename from src/health_monitoring_lib/cpp/include/score/hm/common.h rename to score/mw/health/health_monitoring_lib/cpp/common.h diff --git a/score/mw/health/health_monitoring_lib/cpp/deadline/BUILD b/score/mw/health/health_monitoring_lib/cpp/deadline/BUILD new file mode 100644 index 000000000..ef2edad28 --- /dev/null +++ b/score/mw/health/health_monitoring_lib/cpp/deadline/BUILD @@ -0,0 +1,28 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "deadline_monitor", + srcs = ["deadline_monitor.cpp"], + hdrs = ["deadline_monitor.h"], + include_prefix = "score/mw/health/health_monitoring_lib", + strip_include_prefix = "/score/mw/health/health_monitoring_lib/cpp", + visibility = ["//visibility:public"], + deps = [ + "//score/mw/health/health_monitoring_lib/cpp:common", + "//score/mw/health/health_monitoring_lib/cpp:tag", + "@score_baselibs//score/result", + ], +) diff --git a/src/health_monitoring_lib/cpp/deadline_monitor.cpp b/score/mw/health/health_monitoring_lib/cpp/deadline/deadline_monitor.cpp similarity index 98% rename from src/health_monitoring_lib/cpp/deadline_monitor.cpp rename to score/mw/health/health_monitoring_lib/cpp/deadline/deadline_monitor.cpp index ae9a18c1e..262d76278 100644 --- a/src/health_monitoring_lib/cpp/deadline_monitor.cpp +++ b/score/mw/health/health_monitoring_lib/cpp/deadline/deadline_monitor.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/hm/deadline/deadline_monitor.h" +#include "score/mw/health/health_monitoring_lib/deadline/deadline_monitor.h" namespace { diff --git a/src/health_monitoring_lib/cpp/include/score/hm/deadline/deadline_monitor.h b/score/mw/health/health_monitoring_lib/cpp/deadline/deadline_monitor.h similarity index 97% rename from src/health_monitoring_lib/cpp/include/score/hm/deadline/deadline_monitor.h rename to score/mw/health/health_monitoring_lib/cpp/deadline/deadline_monitor.h index 525c321c6..78bc01344 100644 --- a/src/health_monitoring_lib/cpp/include/score/hm/deadline/deadline_monitor.h +++ b/score/mw/health/health_monitoring_lib/cpp/deadline/deadline_monitor.h @@ -14,8 +14,8 @@ #define SCORE_HM_DEADLINE_DEADLINE_MONITOR_H #include -#include -#include +#include "score/mw/health/health_monitoring_lib/common.h" +#include "score/mw/health/health_monitoring_lib/tag.h" #include #include diff --git a/score/mw/health/health_monitoring_lib/cpp/details/BUILD b/score/mw/health/health_monitoring_lib/cpp/details/BUILD new file mode 100644 index 000000000..23b6ed483 --- /dev/null +++ b/score/mw/health/health_monitoring_lib/cpp/details/BUILD @@ -0,0 +1,37 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "log_init", + srcs = ["log_init.cpp"], + visibility = ["//score/mw/health/health_monitoring_lib/cpp:__pkg__"], + deps = [ + "@googletest//:gtest", + "@score_baselibs_rust//src/log/stdout_logger_cpp_init", + ], +) + +cc_library( + name = "thread", + srcs = ["thread.cpp"], + hdrs = ["thread.h"], + include_prefix = "score/mw/health/health_monitoring_lib", + strip_include_prefix = "/score/mw/health/health_monitoring_lib/cpp/details", + visibility = ["//score/mw/health/health_monitoring_lib/cpp:__pkg__"], + deps = [ + "//score/mw/health/health_monitoring_lib/cpp:common", + "@score_baselibs//score/language/futurecpp", + ], +) diff --git a/src/health_monitoring_lib/cpp/tests/log_init.cpp b/score/mw/health/health_monitoring_lib/cpp/details/log_init.cpp similarity index 100% rename from src/health_monitoring_lib/cpp/tests/log_init.cpp rename to score/mw/health/health_monitoring_lib/cpp/details/log_init.cpp diff --git a/src/health_monitoring_lib/cpp/thread.cpp b/score/mw/health/health_monitoring_lib/cpp/details/thread.cpp similarity index 98% rename from src/health_monitoring_lib/cpp/thread.cpp rename to score/mw/health/health_monitoring_lib/cpp/details/thread.cpp index d720513ea..702fd9107 100644 --- a/src/health_monitoring_lib/cpp/thread.cpp +++ b/score/mw/health/health_monitoring_lib/cpp/details/thread.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/hm/thread.h" +#include "score/mw/health/health_monitoring_lib/thread.h" #include namespace diff --git a/src/health_monitoring_lib/cpp/include/score/hm/thread.h b/score/mw/health/health_monitoring_lib/cpp/details/thread.h similarity index 97% rename from src/health_monitoring_lib/cpp/include/score/hm/thread.h rename to score/mw/health/health_monitoring_lib/cpp/details/thread.h index 748ab5d32..b38d510ba 100644 --- a/src/health_monitoring_lib/cpp/include/score/hm/thread.h +++ b/score/mw/health/health_monitoring_lib/cpp/details/thread.h @@ -13,7 +13,7 @@ #ifndef SCORE_HM_THREAD_H #define SCORE_HM_THREAD_H -#include "common.h" +#include "score/mw/health/health_monitoring_lib/common.h" #include #include diff --git a/src/health_monitoring_lib/cpp/health_monitor.cpp b/score/mw/health/health_monitoring_lib/cpp/health_monitor.cpp similarity index 99% rename from src/health_monitoring_lib/cpp/health_monitor.cpp rename to score/mw/health/health_monitoring_lib/cpp/health_monitor.cpp index 3b14466df..e03de071c 100644 --- a/src/health_monitoring_lib/cpp/health_monitor.cpp +++ b/score/mw/health/health_monitoring_lib/cpp/health_monitor.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/hm/health_monitor.h" +#include "score/mw/health/health_monitoring_lib/health_monitor.h" namespace { diff --git a/src/health_monitoring_lib/cpp/include/score/hm/health_monitor.h b/score/mw/health/health_monitoring_lib/cpp/health_monitor.h similarity index 90% rename from src/health_monitoring_lib/cpp/include/score/hm/health_monitor.h rename to score/mw/health/health_monitoring_lib/cpp/health_monitor.h index 886a62ae6..85a775481 100644 --- a/src/health_monitoring_lib/cpp/include/score/hm/health_monitor.h +++ b/score/mw/health/health_monitoring_lib/cpp/health_monitor.h @@ -13,12 +13,12 @@ #ifndef SCORE_HM_HEALTH_MONITOR_H #define SCORE_HM_HEALTH_MONITOR_H -#include -#include -#include -#include -#include -#include +#include "score/mw/health/health_monitoring_lib/common.h" +#include "score/mw/health/health_monitoring_lib/deadline/deadline_monitor.h" +#include "score/mw/health/health_monitoring_lib/heartbeat/heartbeat_monitor.h" +#include "score/mw/health/health_monitoring_lib/logic/logic_monitor.h" +#include "score/mw/health/health_monitoring_lib/tag.h" +#include "score/mw/health/health_monitoring_lib/thread.h" namespace score::hm { diff --git a/src/health_monitoring_lib/cpp/tests/health_monitor_test.cpp b/score/mw/health/health_monitoring_lib/cpp/health_monitor_test.cpp similarity index 96% rename from src/health_monitoring_lib/cpp/tests/health_monitor_test.cpp rename to score/mw/health/health_monitoring_lib/cpp/health_monitor_test.cpp index c31c7f5fa..80d0f4b71 100644 --- a/src/health_monitoring_lib/cpp/tests/health_monitor_test.cpp +++ b/score/mw/health/health_monitoring_lib/cpp/health_monitor_test.cpp @@ -10,9 +10,9 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/hm/health_monitor.h" -#include "score/hm/common.h" -#include "score/hm/tag.h" +#include "score/mw/health/health_monitoring_lib/health_monitor.h" +#include "score/mw/health/health_monitoring_lib/common.h" +#include "score/mw/health/health_monitoring_lib/tag.h" #include #include diff --git a/score/mw/health/health_monitoring_lib/cpp/heartbeat/BUILD b/score/mw/health/health_monitoring_lib/cpp/heartbeat/BUILD new file mode 100644 index 000000000..eb5e777c9 --- /dev/null +++ b/score/mw/health/health_monitoring_lib/cpp/heartbeat/BUILD @@ -0,0 +1,27 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "heartbeat_monitor", + srcs = ["heartbeat_monitor.cpp"], + hdrs = ["heartbeat_monitor.h"], + include_prefix = "score/mw/health/health_monitoring_lib", + strip_include_prefix = "/score/mw/health/health_monitoring_lib/cpp", + visibility = ["//visibility:public"], + deps = [ + "//score/mw/health/health_monitoring_lib/cpp:common", + "@score_baselibs//score/result", + ], +) diff --git a/src/health_monitoring_lib/cpp/heartbeat_monitor.cpp b/score/mw/health/health_monitoring_lib/cpp/heartbeat/heartbeat_monitor.cpp similarity index 96% rename from src/health_monitoring_lib/cpp/heartbeat_monitor.cpp rename to score/mw/health/health_monitoring_lib/cpp/heartbeat/heartbeat_monitor.cpp index 7a4b6b874..0ba91f914 100644 --- a/src/health_monitoring_lib/cpp/heartbeat_monitor.cpp +++ b/score/mw/health/health_monitoring_lib/cpp/heartbeat/heartbeat_monitor.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/hm/heartbeat/heartbeat_monitor.h" +#include "score/mw/health/health_monitoring_lib/heartbeat/heartbeat_monitor.h" namespace { extern "C" { diff --git a/src/health_monitoring_lib/cpp/include/score/hm/heartbeat/heartbeat_monitor.h b/score/mw/health/health_monitoring_lib/cpp/heartbeat/heartbeat_monitor.h similarity index 97% rename from src/health_monitoring_lib/cpp/include/score/hm/heartbeat/heartbeat_monitor.h rename to score/mw/health/health_monitoring_lib/cpp/heartbeat/heartbeat_monitor.h index 336620842..f1ecd0560 100644 --- a/src/health_monitoring_lib/cpp/include/score/hm/heartbeat/heartbeat_monitor.h +++ b/score/mw/health/health_monitoring_lib/cpp/heartbeat/heartbeat_monitor.h @@ -14,7 +14,7 @@ #define SCORE_HM_HEARTBEAT_HEARTBEAT_MONITOR_H #include -#include +#include "score/mw/health/health_monitoring_lib/common.h" namespace score::hm { diff --git a/score/mw/health/health_monitoring_lib/cpp/logic/BUILD b/score/mw/health/health_monitoring_lib/cpp/logic/BUILD new file mode 100644 index 000000000..2cf0649ec --- /dev/null +++ b/score/mw/health/health_monitoring_lib/cpp/logic/BUILD @@ -0,0 +1,29 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "logic_monitor", + srcs = ["logic_monitor.cpp"], + hdrs = ["logic_monitor.h"], + include_prefix = "score/mw/health/health_monitoring_lib", + strip_include_prefix = "/score/mw/health/health_monitoring_lib/cpp", + visibility = ["//visibility:public"], + deps = [ + "//score/mw/health/health_monitoring_lib/cpp:common", + "//score/mw/health/health_monitoring_lib/cpp:tag", + "@score_baselibs//score/language/futurecpp", + "@score_baselibs//score/result", + ], +) diff --git a/src/health_monitoring_lib/cpp/logic_monitor.cpp b/score/mw/health/health_monitoring_lib/cpp/logic/logic_monitor.cpp similarity index 98% rename from src/health_monitoring_lib/cpp/logic_monitor.cpp rename to score/mw/health/health_monitoring_lib/cpp/logic/logic_monitor.cpp index b54f28d1f..7feb86c7c 100644 --- a/src/health_monitoring_lib/cpp/logic_monitor.cpp +++ b/score/mw/health/health_monitoring_lib/cpp/logic/logic_monitor.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/hm/logic/logic_monitor.h" +#include "score/mw/health/health_monitoring_lib/logic/logic_monitor.h" #include namespace diff --git a/src/health_monitoring_lib/cpp/include/score/hm/logic/logic_monitor.h b/score/mw/health/health_monitoring_lib/cpp/logic/logic_monitor.h similarity index 96% rename from src/health_monitoring_lib/cpp/include/score/hm/logic/logic_monitor.h rename to score/mw/health/health_monitoring_lib/cpp/logic/logic_monitor.h index d7acdd477..745bb6dfd 100644 --- a/src/health_monitoring_lib/cpp/include/score/hm/logic/logic_monitor.h +++ b/score/mw/health/health_monitoring_lib/cpp/logic/logic_monitor.h @@ -13,8 +13,8 @@ #ifndef SCORE_HM_LOGIC_LOGIC_MONITOR_H #define SCORE_HM_LOGIC_LOGIC_MONITOR_H -#include "score/hm/common.h" -#include "score/hm/tag.h" +#include "score/mw/health/health_monitoring_lib/common.h" +#include "score/mw/health/health_monitoring_lib/tag.h" #include #include diff --git a/src/health_monitoring_lib/cpp/include/score/hm/tag.h b/score/mw/health/health_monitoring_lib/cpp/tag.h similarity index 100% rename from src/health_monitoring_lib/cpp/include/score/hm/tag.h rename to score/mw/health/health_monitoring_lib/cpp/tag.h diff --git a/score/mw/health/health_monitoring_lib/rust/BUILD b/score/mw/health/health_monitoring_lib/rust/BUILD new file mode 100644 index 000000000..e3626b42f --- /dev/null +++ b/score/mw/health/health_monitoring_lib/rust/BUILD @@ -0,0 +1,99 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_static_library", "rust_test") + +COMMON_RUST_DEPS = [ + "@score_baselibs_rust//src/containers:containers", + "@score_baselibs_rust//src/thread:thread", + "@score_baselibs_rust//src/log/score_log:score_log", + "//score/mw/lifecycle:alive_rust", +] + +PROC_MACRO_DEPS = [ + "@score_baselibs_rust//src/testing_macros:score_testing_macros", +] + +rust_library( + name = "health_monitoring_lib", + srcs = glob(["**/*.rs"]), + crate_root = "lib.rs", + proc_macro_deps = PROC_MACRO_DEPS, + visibility = ["//visibility:public"], + deps = COMMON_RUST_DEPS, +) + +rust_static_library( + name = "health_monitoring_lib_ffi", + srcs = glob(["**/*.rs"]), + crate_name = "health_monitoring_lib", + crate_root = "lib.rs", + proc_macro_deps = PROC_MACRO_DEPS, + visibility = ["//score/mw/health/health_monitoring_lib:__pkg__"], + deps = COMMON_RUST_DEPS, +) + +rust_static_library( + name = "health_monitoring_lib_stub_supervisor", + srcs = glob(["**/*.rs"]), + crate_features = ["stub_supervisor_api_client"], + crate_root = "lib.rs", + proc_macro_deps = PROC_MACRO_DEPS, + visibility = ["//score/mw/health/health_monitoring_lib:__pkg__"], + deps = COMMON_RUST_DEPS, +) + +rust_test( + name = "tests", + crate = ":health_monitoring_lib", + crate_features = ["stub_supervisor_api_client"], + rustc_flags = [ + "-C", + "link-arg=-lm", + "-C", + "link-arg=-lc", + ] + select({ + "@platforms//os:qnx": ["-Clink-arg=-lc++"], + "@platforms//os:linux": [ + "-Clink-arg=-lrt", + "-Clink-arg=-lstdc++", + ], + }), + deps = ["@score_baselibs_rust//src/log/stdout_logger"], +) + +rust_test( + name = "loom_tests", + crate = ":health_monitoring_lib", + crate_features = ["stub_supervisor_api_client"], + rustc_flags = [ + "--cfg", + "loom", + "-C", + "link-arg=-lm", + "-C", + "link-arg=-lc", + ] + select({ + "@platforms//os:qnx": ["-Clink-arg=-lc++"], + "@platforms//os:linux": [ + "-Clink-arg=-lrt", + "-Clink-arg=-lstdc++", + ], + }), + tags = ["loom"], + target_compatible_with = ["@platforms//os:linux"], + deps = [ + "@score_baselibs_rust//src/log/stdout_logger", + "@score_crates//:loom", + ], +) diff --git a/src/health_monitoring_lib/rust/common.rs b/score/mw/health/health_monitoring_lib/rust/common.rs similarity index 100% rename from src/health_monitoring_lib/rust/common.rs rename to score/mw/health/health_monitoring_lib/rust/common.rs diff --git a/src/health_monitoring_lib/rust/deadline/common.rs b/score/mw/health/health_monitoring_lib/rust/deadline/common.rs similarity index 100% rename from src/health_monitoring_lib/rust/deadline/common.rs rename to score/mw/health/health_monitoring_lib/rust/deadline/common.rs diff --git a/src/health_monitoring_lib/rust/deadline/deadline_monitor.rs b/score/mw/health/health_monitoring_lib/rust/deadline/deadline_monitor.rs similarity index 100% rename from src/health_monitoring_lib/rust/deadline/deadline_monitor.rs rename to score/mw/health/health_monitoring_lib/rust/deadline/deadline_monitor.rs diff --git a/src/health_monitoring_lib/rust/deadline/deadline_state.rs b/score/mw/health/health_monitoring_lib/rust/deadline/deadline_state.rs similarity index 100% rename from src/health_monitoring_lib/rust/deadline/deadline_state.rs rename to score/mw/health/health_monitoring_lib/rust/deadline/deadline_state.rs diff --git a/src/health_monitoring_lib/rust/deadline/ffi.rs b/score/mw/health/health_monitoring_lib/rust/deadline/ffi.rs similarity index 100% rename from src/health_monitoring_lib/rust/deadline/ffi.rs rename to score/mw/health/health_monitoring_lib/rust/deadline/ffi.rs diff --git a/src/health_monitoring_lib/rust/deadline/mod.rs b/score/mw/health/health_monitoring_lib/rust/deadline/mod.rs similarity index 100% rename from src/health_monitoring_lib/rust/deadline/mod.rs rename to score/mw/health/health_monitoring_lib/rust/deadline/mod.rs diff --git a/src/health_monitoring_lib/rust/ffi.rs b/score/mw/health/health_monitoring_lib/rust/ffi.rs similarity index 100% rename from src/health_monitoring_lib/rust/ffi.rs rename to score/mw/health/health_monitoring_lib/rust/ffi.rs diff --git a/src/health_monitoring_lib/rust/health_monitor.rs b/score/mw/health/health_monitoring_lib/rust/health_monitor.rs similarity index 100% rename from src/health_monitoring_lib/rust/health_monitor.rs rename to score/mw/health/health_monitoring_lib/rust/health_monitor.rs diff --git a/src/health_monitoring_lib/rust/heartbeat/ffi.rs b/score/mw/health/health_monitoring_lib/rust/heartbeat/ffi.rs similarity index 100% rename from src/health_monitoring_lib/rust/heartbeat/ffi.rs rename to score/mw/health/health_monitoring_lib/rust/heartbeat/ffi.rs diff --git a/src/health_monitoring_lib/rust/heartbeat/heartbeat_monitor.rs b/score/mw/health/health_monitoring_lib/rust/heartbeat/heartbeat_monitor.rs similarity index 100% rename from src/health_monitoring_lib/rust/heartbeat/heartbeat_monitor.rs rename to score/mw/health/health_monitoring_lib/rust/heartbeat/heartbeat_monitor.rs diff --git a/src/health_monitoring_lib/rust/heartbeat/heartbeat_state.rs b/score/mw/health/health_monitoring_lib/rust/heartbeat/heartbeat_state.rs similarity index 100% rename from src/health_monitoring_lib/rust/heartbeat/heartbeat_state.rs rename to score/mw/health/health_monitoring_lib/rust/heartbeat/heartbeat_state.rs diff --git a/src/health_monitoring_lib/rust/heartbeat/mod.rs b/score/mw/health/health_monitoring_lib/rust/heartbeat/mod.rs similarity index 100% rename from src/health_monitoring_lib/rust/heartbeat/mod.rs rename to score/mw/health/health_monitoring_lib/rust/heartbeat/mod.rs diff --git a/src/health_monitoring_lib/rust/lib.rs b/score/mw/health/health_monitoring_lib/rust/lib.rs similarity index 100% rename from src/health_monitoring_lib/rust/lib.rs rename to score/mw/health/health_monitoring_lib/rust/lib.rs diff --git a/src/health_monitoring_lib/rust/log.rs b/score/mw/health/health_monitoring_lib/rust/log.rs similarity index 100% rename from src/health_monitoring_lib/rust/log.rs rename to score/mw/health/health_monitoring_lib/rust/log.rs diff --git a/src/health_monitoring_lib/rust/logic/ffi.rs b/score/mw/health/health_monitoring_lib/rust/logic/ffi.rs similarity index 100% rename from src/health_monitoring_lib/rust/logic/ffi.rs rename to score/mw/health/health_monitoring_lib/rust/logic/ffi.rs diff --git a/src/health_monitoring_lib/rust/logic/logic_monitor.rs b/score/mw/health/health_monitoring_lib/rust/logic/logic_monitor.rs similarity index 100% rename from src/health_monitoring_lib/rust/logic/logic_monitor.rs rename to score/mw/health/health_monitoring_lib/rust/logic/logic_monitor.rs diff --git a/src/health_monitoring_lib/rust/logic/logic_state.rs b/score/mw/health/health_monitoring_lib/rust/logic/logic_state.rs similarity index 100% rename from src/health_monitoring_lib/rust/logic/logic_state.rs rename to score/mw/health/health_monitoring_lib/rust/logic/logic_state.rs diff --git a/src/health_monitoring_lib/rust/logic/mod.rs b/score/mw/health/health_monitoring_lib/rust/logic/mod.rs similarity index 100% rename from src/health_monitoring_lib/rust/logic/mod.rs rename to score/mw/health/health_monitoring_lib/rust/logic/mod.rs diff --git a/src/health_monitoring_lib/rust/protected_memory.rs b/score/mw/health/health_monitoring_lib/rust/protected_memory.rs similarity index 100% rename from src/health_monitoring_lib/rust/protected_memory.rs rename to score/mw/health/health_monitoring_lib/rust/protected_memory.rs diff --git a/src/health_monitoring_lib/rust/supervisor_api_client/mod.rs b/score/mw/health/health_monitoring_lib/rust/supervisor_api_client/mod.rs similarity index 100% rename from src/health_monitoring_lib/rust/supervisor_api_client/mod.rs rename to score/mw/health/health_monitoring_lib/rust/supervisor_api_client/mod.rs diff --git a/src/health_monitoring_lib/rust/supervisor_api_client/score_supervisor_api_client.rs b/score/mw/health/health_monitoring_lib/rust/supervisor_api_client/score_supervisor_api_client.rs similarity index 100% rename from src/health_monitoring_lib/rust/supervisor_api_client/score_supervisor_api_client.rs rename to score/mw/health/health_monitoring_lib/rust/supervisor_api_client/score_supervisor_api_client.rs diff --git a/src/health_monitoring_lib/rust/supervisor_api_client/stub_supervisor_api_client.rs b/score/mw/health/health_monitoring_lib/rust/supervisor_api_client/stub_supervisor_api_client.rs similarity index 100% rename from src/health_monitoring_lib/rust/supervisor_api_client/stub_supervisor_api_client.rs rename to score/mw/health/health_monitoring_lib/rust/supervisor_api_client/stub_supervisor_api_client.rs diff --git a/src/health_monitoring_lib/rust/tag.rs b/score/mw/health/health_monitoring_lib/rust/tag.rs similarity index 100% rename from src/health_monitoring_lib/rust/tag.rs rename to score/mw/health/health_monitoring_lib/rust/tag.rs diff --git a/src/health_monitoring_lib/rust/thread_ffi.rs b/score/mw/health/health_monitoring_lib/rust/thread_ffi.rs similarity index 100% rename from src/health_monitoring_lib/rust/thread_ffi.rs rename to score/mw/health/health_monitoring_lib/rust/thread_ffi.rs diff --git a/src/health_monitoring_lib/rust/worker.rs b/score/mw/health/health_monitoring_lib/rust/worker.rs similarity index 100% rename from src/health_monitoring_lib/rust/worker.rs rename to score/mw/health/health_monitoring_lib/rust/worker.rs diff --git a/score/mw/launch_manager/BUILD b/score/mw/launch_manager/BUILD new file mode 100644 index 000000000..623e9eced --- /dev/null +++ b/score/mw/launch_manager/BUILD @@ -0,0 +1,32 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_binary") + +cc_binary( + name = "launch_manager", + srcs = ["main.cpp"], + linkopts = select({ + "@platforms//os:qnx": ["-lsecpol"], + "@platforms//os:linux": ["-lpthread"], + }), + visibility = ["//visibility:public"], + deps = [ + "//score/mw/launch_manager/alive_monitor", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/osal:ipc_comms", + "//score/mw/launch_manager/process_group_manager", + "//score/mw/launch_manager/process_group_manager:alive_monitor_thread", + "//score/mw/launch_manager/process_state_client:process_state_notifier", + "//score/mw/launch_manager/recovery_client", + ], +) diff --git a/score/mw/launch_manager/alive_monitor/BUILD b/score/mw/launch_manager/alive_monitor/BUILD new file mode 100644 index 000000000..1c27169e6 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/BUILD @@ -0,0 +1,92 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +filegroup( + name = "am_flatcfg_fbs", + srcs = ["config/hm_flatcfg.fbs"], + visibility = ["//visibility:public"], +) + +filegroup( + name = "am_core_flatcfg_fbs", + srcs = ["config/hmcore_flatcfg.fbs"], + visibility = ["//visibility:public"], +) + +exports_files(["config/hm_flatcfg.fbs"]) + +cc_library( + name = "config", + hdrs = [ + "config/hm_flatcfg_generated.h", + "config/hmcore_flatcfg_generated.h", + ], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "alive_monitor_h", + hdrs = [ + "Monitor.h", + "MonitorImplWrapper.h", + ], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "am-lib", + srcs = [ + "Monitor.cpp", + "MonitorImplWrapper.cpp", + ], + hdrs = [ + "Monitor.h", + "MonitorImplWrapper.h", + ], + visibility = ["//score:__subpackages__"], + deps = [ + ":alive_monitor_h", + "//score/mw/launch_manager/alive_monitor/details:monitor_impl", + ] + select({ + "@platforms//os:qnx": [], + "@platforms//os:linux": ["//externals/acl"], + }), +) + +cc_library( + name = "alive_monitor", + visibility = ["//visibility:public"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/daemon:health_monitor_impl", + ], +) + +cc_library( + name = "am_shared_lib", + hdrs = [ + "Monitor.h", + "MonitorImplWrapper.h", + ], + include_prefix = "score/mw/launch_manager/alive_monitor", + strip_include_prefix = "/score/mw/launch_manager/alive_monitor", + visibility = ["//visibility:public"], + deps = [ + ":am-lib", + "//score/mw/launch_manager/alive_monitor/details/ipc:ipc_if", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + "@flatbuffers", + ], + alwayslink = True, +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/Monitor.cpp b/score/mw/launch_manager/alive_monitor/Monitor.cpp similarity index 95% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/Monitor.cpp rename to score/mw/launch_manager/alive_monitor/Monitor.cpp index f39efe4a0..8f7b51115 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/Monitor.cpp +++ b/score/mw/launch_manager/alive_monitor/Monitor.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/Monitor.h" +#include "score/mw/launch_manager/alive_monitor/Monitor.h" enum class Dummy : std::uint32_t {}; diff --git a/src/launch_manager_daemon/health_monitor_lib/include/score/lcm/Monitor.h b/score/mw/launch_manager/alive_monitor/Monitor.h similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/include/score/lcm/Monitor.h rename to score/mw/launch_manager/alive_monitor/Monitor.h index 018217bed..b72f39b83 100644 --- a/src/launch_manager_daemon/health_monitor_lib/include/score/lcm/Monitor.h +++ b/score/mw/launch_manager/alive_monitor/Monitor.h @@ -19,7 +19,7 @@ #include #include -#include "score/lcm/MonitorImplWrapper.h" +#include "score/mw/launch_manager/alive_monitor/MonitorImplWrapper.h" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImplWrapper.cpp b/score/mw/launch_manager/alive_monitor/MonitorImplWrapper.cpp similarity index 86% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImplWrapper.cpp rename to score/mw/launch_manager/alive_monitor/MonitorImplWrapper.cpp index 3d53962f0..de9366de0 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImplWrapper.cpp +++ b/score/mw/launch_manager/alive_monitor/MonitorImplWrapper.cpp @@ -11,10 +11,10 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/MonitorImplWrapper.h" +#include "score/mw/launch_manager/alive_monitor/MonitorImplWrapper.h" -#include "score/lcm/hmlib/MonitorImpl.h" -#include "score/lcm/Monitor.h" +#include "score/mw/launch_manager/alive_monitor/details/MonitorImpl.h" +#include "score/mw/launch_manager/alive_monitor/Monitor.h" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/include/score/lcm/MonitorImplWrapper.h b/score/mw/launch_manager/alive_monitor/MonitorImplWrapper.h similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/include/score/lcm/MonitorImplWrapper.h rename to score/mw/launch_manager/alive_monitor/MonitorImplWrapper.h diff --git a/src/launch_manager_daemon/health_monitor_lib/config/hm_flatcfg.fbs b/score/mw/launch_manager/alive_monitor/config/hm_flatcfg.fbs similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/config/hm_flatcfg.fbs rename to score/mw/launch_manager/alive_monitor/config/hm_flatcfg.fbs diff --git a/src/launch_manager_daemon/health_monitor_lib/config/hm_flatcfg_generated.h b/score/mw/launch_manager/alive_monitor/config/hm_flatcfg_generated.h similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/config/hm_flatcfg_generated.h rename to score/mw/launch_manager/alive_monitor/config/hm_flatcfg_generated.h diff --git a/src/launch_manager_daemon/health_monitor_lib/config/hmcore_flatcfg.fbs b/score/mw/launch_manager/alive_monitor/config/hmcore_flatcfg.fbs similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/config/hmcore_flatcfg.fbs rename to score/mw/launch_manager/alive_monitor/config/hmcore_flatcfg.fbs diff --git a/src/launch_manager_daemon/health_monitor_lib/config/hmcore_flatcfg_generated.h b/score/mw/launch_manager/alive_monitor/config/hmcore_flatcfg_generated.h similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/config/hmcore_flatcfg_generated.h rename to score/mw/launch_manager/alive_monitor/config/hmcore_flatcfg_generated.h diff --git a/score/mw/launch_manager/alive_monitor/details/BUILD b/score/mw/launch_manager/alive_monitor/details/BUILD new file mode 100644 index 000000000..f1a6ad21a --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/BUILD @@ -0,0 +1,29 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "monitor_impl", + srcs = ["MonitorImpl.cpp"], + hdrs = ["MonitorImpl.h"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor:alive_monitor_h", + "//score/mw/launch_manager/alive_monitor:config", + "//score/mw/launch_manager/alive_monitor/details/ifappl:data_structures", + "//score/mw/launch_manager/alive_monitor/details/ipc:ipc_if", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + "@flatbuffers", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImpl.cpp b/score/mw/launch_manager/alive_monitor/details/MonitorImpl.cpp similarity index 96% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImpl.cpp rename to score/mw/launch_manager/alive_monitor/details/MonitorImpl.cpp index 35bdbd0d6..5f426d77d 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImpl.cpp +++ b/score/mw/launch_manager/alive_monitor/details/MonitorImpl.cpp @@ -11,15 +11,15 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/hmlib/MonitorImpl.h" +#include "score/mw/launch_manager/alive_monitor/details/MonitorImpl.h" #include #include #include -#include "score/lcm/saf/timers/Timers_OsClock.hpp" -#include "hm_flatcfg_generated.h" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/config/hm_flatcfg_generated.h" #include diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImpl.h b/score/mw/launch_manager/alive_monitor/details/MonitorImpl.h similarity index 93% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImpl.h rename to score/mw/launch_manager/alive_monitor/details/MonitorImpl.h index 9a388d1ed..881cca35c 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/hmlib/MonitorImpl.h +++ b/score/mw/launch_manager/alive_monitor/details/MonitorImpl.h @@ -18,11 +18,11 @@ #include #include -#include "score/lcm/MonitorImplWrapper.h" -#include "score/lcm/Monitor.h" -#include "score/lcm/saf/ifappl/DataStructures.hpp" -#include "score/lcm/saf/ipc/IpcClient.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/MonitorImplWrapper.h" +#include "score/mw/launch_manager/alive_monitor/Monitor.h" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/DataStructures.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ipc/IpcClient.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" namespace score { diff --git a/score/mw/launch_manager/alive_monitor/details/common/BUILD b/score/mw/launch_manager/alive_monitor/details/common/BUILD new file mode 100644 index 000000000..c83ef1bfa --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/common/BUILD @@ -0,0 +1,48 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "types", + hdrs = ["Types.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "observer", + hdrs = ["Observer.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "fixed_size_vector", + hdrs = ["FixedSizeVector.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "locked_vector", + hdrs = ["LockedVector.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [":fixed_size_vector"], +) + +cc_library( + name = "time_sorting_buffer", + hdrs = ["TimeSortingBuffer.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":fixed_size_vector", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/FixedSizeVector.hpp b/score/mw/launch_manager/alive_monitor/details/common/FixedSizeVector.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/FixedSizeVector.hpp rename to score/mw/launch_manager/alive_monitor/details/common/FixedSizeVector.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/LockedVector.hpp b/score/mw/launch_manager/alive_monitor/details/common/LockedVector.hpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/LockedVector.hpp rename to score/mw/launch_manager/alive_monitor/details/common/LockedVector.hpp index a03967c05..eaa64ee3a 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/LockedVector.hpp +++ b/score/mw/launch_manager/alive_monitor/details/common/LockedVector.hpp @@ -14,7 +14,7 @@ #ifndef LOCKEDVECTOR_HPP_INCLUDED #define LOCKEDVECTOR_HPP_INCLUDED -#include "score/lcm/saf/common/FixedSizeVector.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/FixedSizeVector.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/Observer.hpp b/score/mw/launch_manager/alive_monitor/details/common/Observer.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/Observer.hpp rename to score/mw/launch_manager/alive_monitor/details/common/Observer.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/TimeSortingBuffer.hpp b/score/mw/launch_manager/alive_monitor/details/common/TimeSortingBuffer.hpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/TimeSortingBuffer.hpp rename to score/mw/launch_manager/alive_monitor/details/common/TimeSortingBuffer.hpp index b6d701ac1..0a2e3d702 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/TimeSortingBuffer.hpp +++ b/score/mw/launch_manager/alive_monitor/details/common/TimeSortingBuffer.hpp @@ -16,8 +16,8 @@ #include #include -#include "score/lcm/saf/common/FixedSizeVector.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/FixedSizeVector.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/Types.hpp b/score/mw/launch_manager/alive_monitor/details/common/Types.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/common/Types.hpp rename to score/mw/launch_manager/alive_monitor/details/common/Types.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/HealthMonitorImpl.cpp b/score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.cpp similarity index 79% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/HealthMonitorImpl.cpp rename to score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.cpp index ab49c3e3a..79964286f 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/HealthMonitorImpl.cpp +++ b/score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.cpp @@ -15,19 +15,19 @@ #include #include -#include "score/lcm/saf/daemon/HealthMonitorImpl.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/watchdog/WatchdogImpl.hpp" +#include "score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.hpp" namespace score { namespace lcm { namespace saf { namespace daemon { -HealthMonitorImpl::HealthMonitorImpl(std::shared_ptr recovery_client, std::unique_ptr watchdog, std::unique_ptr process_state_receiver) +AliveMonitorImpl::AliveMonitorImpl(std::shared_ptr recovery_client, std::unique_ptr watchdog, std::unique_ptr process_state_receiver) : m_recovery_client(recovery_client), m_watchdog(std::move(watchdog)), m_logger{score::lcm::saf::logging::PhmLogger::getLogger(score::lcm::saf::logging::PhmLogger::EContext::factory)}, m_process_state_receiver{std::move(process_state_receiver)} {} -EInitCode HealthMonitorImpl::init() noexcept { +EInitCode AliveMonitorImpl::init() noexcept { score::lcm::saf::daemon::EInitCode initResult{score::lcm::saf::daemon::EInitCode::kGeneralError}; try { m_osClock.startMeasurement(); @@ -52,7 +52,7 @@ EInitCode HealthMonitorImpl::init() noexcept { return initResult; } -bool HealthMonitorImpl::run(std::atomic_bool& cancel_thread) noexcept { +bool AliveMonitorImpl::run(std::atomic_bool& cancel_thread) noexcept { assert(m_daemon != nullptr && "HealthMonitor: Instance is not initialized!"); return m_daemon->startCyclicExec(cancel_thread); } diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/HealthMonitorImpl.hpp b/score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.hpp similarity index 81% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/HealthMonitorImpl.hpp rename to score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.hpp index c96b035f3..3f8a83603 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/HealthMonitorImpl.hpp +++ b/score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.hpp @@ -16,7 +16,7 @@ #include #include -#include "score/lcm/saf/daemon/IHealthMonitor.hpp" +#include "score/mw/launch_manager/alive_monitor/details/daemon/IAliveMonitor.hpp" namespace score { namespace lcm { @@ -31,9 +31,9 @@ class IWatchdogIf; namespace daemon { -class HealthMonitorImpl : public IHealthMonitor { +class AliveMonitorImpl : public IAliveMonitor { public: - HealthMonitorImpl(std::shared_ptr recovery_client, std::unique_ptr watchdog, std::unique_ptr process_state_receiver); + AliveMonitorImpl(std::shared_ptr recovery_client, std::unique_ptr watchdog, std::unique_ptr process_state_receiver); EInitCode init() noexcept override; diff --git a/score/mw/launch_manager/alive_monitor/details/daemon/BUILD b/score/mw/launch_manager/alive_monitor/details/daemon/BUILD new file mode 100644 index 000000000..66255e6f8 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/daemon/BUILD @@ -0,0 +1,85 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "phm_daemon_config", + hdrs = ["PhmDaemonConfig.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "sw_cluster_handler", + srcs = ["SwClusterHandler.cpp"], + hdrs = ["SwClusterHandler.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/factory:flat_cfg_factory", + "//score/mw/launch_manager/alive_monitor/details/factory:machine_config_factory", + "//score/mw/launch_manager/alive_monitor/details/ifappl:checkpoint", + "//score/mw/launch_manager/alive_monitor/details/ifappl:data_structures", + "//score/mw/launch_manager/alive_monitor/details/ifappl:monitor_if_daemon", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state_reader", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/recovery:notification", + "//score/mw/launch_manager/alive_monitor/details/supervision:alive", + "//score/mw/launch_manager/alive_monitor/details/supervision:global", + "//score/mw/launch_manager/alive_monitor/details/supervision:local", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) + +cc_library( + name = "phm_daemon", + srcs = ["PhmDaemon.cpp"], + hdrs = ["PhmDaemon.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":phm_daemon_config", + ":sw_cluster_handler", + "//score/mw/launch_manager/alive_monitor/details/factory:flat_cfg_factory", + "//score/mw/launch_manager/alive_monitor/details/factory:machine_config_factory", + "//score/mw/launch_manager/alive_monitor/details/ifappl:monitor_if_daemon", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state_reader", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/supervision:alive", + "//score/mw/launch_manager/alive_monitor/details/supervision:global", + "//score/mw/launch_manager/alive_monitor/details/supervision:local", + "//score/mw/launch_manager/alive_monitor/details/timers:cycle_time_validator", + "//score/mw/launch_manager/alive_monitor/details/timers:cycle_timer", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + "//score/mw/launch_manager/alive_monitor/details/watchdog:i_watchdog_if", + "//score/mw/lifecycle/control_client", + "//score/mw/lifecycle/lifecycle_client", + ], +) + +cc_library( + name = "i_health_monitor", + hdrs = ["IAliveMonitor.hpp"], + visibility = ["//visibility:public"], + deps = [":phm_daemon"], +) + +cc_library( + name = "health_monitor_impl", + srcs = ["AliveMonitorImpl.cpp"], + hdrs = ["AliveMonitorImpl.hpp"], + visibility = ["//visibility:public"], + deps = [ + ":i_health_monitor", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/watchdog:watchdog_impl", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/IHealthMonitor.hpp b/score/mw/launch_manager/alive_monitor/details/daemon/IAliveMonitor.hpp similarity index 90% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/IHealthMonitor.hpp rename to score/mw/launch_manager/alive_monitor/details/daemon/IAliveMonitor.hpp index ebd0f1970..624d88a6c 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/IHealthMonitor.hpp +++ b/score/mw/launch_manager/alive_monitor/details/daemon/IAliveMonitor.hpp @@ -15,7 +15,7 @@ #include -#include "score/lcm/saf/daemon/PhmDaemon.hpp" +#include "score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemon.hpp" namespace score { @@ -27,9 +27,9 @@ namespace daemon { /// @brief Interface for HealthMonitor functionality -class IHealthMonitor { +class IAliveMonitor { public: - virtual ~IHealthMonitor() = default; + virtual ~IAliveMonitor() = default; /// @brief Initialize the HealthMonitor functionality /// @return kNoError if initialization was successful, otherwise an appropriate error code. diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/PhmDaemon.cpp b/score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemon.cpp similarity index 87% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/PhmDaemon.cpp rename to score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemon.cpp index 782ddaea9..0f8518d51 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/PhmDaemon.cpp +++ b/score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemon.cpp @@ -11,14 +11,14 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/daemon/PhmDaemon.hpp" +#include "score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemon.hpp" -#include "score/lcm/saf/factory/FlatCfgFactory.hpp" -#include "score/lcm/saf/ifappl/MonitorIfDaemon.hpp" -#include "score/lcm/saf/supervision/Alive.hpp" -#include "score/lcm/saf/supervision/Global.hpp" -#include "score/lcm/saf/supervision/Local.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Alive.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Global.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/PhmDaemon.hpp b/score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemon.hpp similarity index 93% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/PhmDaemon.hpp rename to score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemon.hpp index 08e4e69fe..547601a9e 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/PhmDaemon.hpp +++ b/score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemon.hpp @@ -19,16 +19,16 @@ #include #include -#include "score/lcm/lifecycle_client.h" -#include "score/lcm/control_client.h" -#include "score/lcm/saf/daemon/PhmDaemonConfig.hpp" -#include "score/lcm/saf/daemon/SwClusterHandler.hpp" -#include "score/lcm/saf/factory/MachineConfigFactory.hpp" -#include "score/lcm/saf/ifexm/ProcessStateReader.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/timers/CycleTimeValidator.hpp" -#include "score/lcm/saf/timers/CycleTimer.hpp" -#include "score/lcm/saf/watchdog/IWatchdogIf.hpp" +#include "score/mw/lifecycle/lifecycle_client.h" +#include "score/mw/lifecycle/control_client.h" +#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/MachineConfigFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.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/watchdog/IWatchdogIf.hpp" namespace score { namespace lcm diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/PhmDaemonConfig.hpp b/score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemonConfig.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/PhmDaemonConfig.hpp rename to score/mw/launch_manager/alive_monitor/details/daemon/PhmDaemonConfig.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/SwClusterHandler.cpp b/score/mw/launch_manager/alive_monitor/details/daemon/SwClusterHandler.cpp similarity index 89% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/SwClusterHandler.cpp rename to score/mw/launch_manager/alive_monitor/details/daemon/SwClusterHandler.cpp index d12826439..dfc3f40f2 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/SwClusterHandler.cpp +++ b/score/mw/launch_manager/alive_monitor/details/daemon/SwClusterHandler.cpp @@ -11,14 +11,14 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/daemon/SwClusterHandler.hpp" +#include "score/mw/launch_manager/alive_monitor/details/daemon/SwClusterHandler.hpp" -#include "score/lcm/saf/factory/FlatCfgFactory.hpp" -#include "score/lcm/saf/ifappl/Checkpoint.hpp" -#include "score/lcm/saf/ifappl/MonitorIfDaemon.hpp" -#include "score/lcm/saf/supervision/Alive.hpp" -#include "score/lcm/saf/supervision/Global.hpp" -#include "score/lcm/saf/supervision/Local.hpp" +#include "score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.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/supervision/Alive.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Global.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/SwClusterHandler.hpp b/score/mw/launch_manager/alive_monitor/details/daemon/SwClusterHandler.hpp similarity index 90% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/SwClusterHandler.hpp rename to score/mw/launch_manager/alive_monitor/details/daemon/SwClusterHandler.hpp index 5e50a998b..ed5e7a1e4 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/daemon/SwClusterHandler.hpp +++ b/score/mw/launch_manager/alive_monitor/details/daemon/SwClusterHandler.hpp @@ -17,13 +17,13 @@ #include #include -#include "score/lcm/saf/factory/MachineConfigFactory.hpp" -#include "score/lcm/saf/ifappl/DataStructures.hpp" -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/ifexm/ProcessStateReader.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/recovery/Notification.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.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/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/recovery/Notification.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/score/mw/launch_manager/alive_monitor/details/factory/BUILD b/score/mw/launch_manager/alive_monitor/details/factory/BUILD new file mode 100644 index 000000000..23c763895 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/factory/BUILD @@ -0,0 +1,82 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "i_phm_factory", + hdrs = ["IPhmFactory.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/ifappl:data_structures", + ], +) + +cc_library( + name = "static_config", + hdrs = ["StaticConfig.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/ifappl:data_structures", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + "//score/mw/launch_manager/alive_monitor/details/watchdog:i_device_config_factory", + ], +) + +cc_library( + name = "machine_config_factory", + srcs = ["MachineConfigFactory.cpp"], + hdrs = ["MachineConfigFactory.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":static_config", + "//score/mw/launch_manager/alive_monitor:config", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/timers:time_conversion", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + "//score/mw/launch_manager/alive_monitor/details/watchdog:i_device_config_factory", + "@flatbuffers", + ] + select({ + "@platforms//os:qnx": [], + "@platforms//os:linux": ["//externals/acl"], + }), +) + +cc_library( + name = "flat_cfg_factory", + srcs = ["FlatCfgFactory.cpp"], + hdrs = ["FlatCfgFactory.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":i_phm_factory", + ":machine_config_factory", + "//score/mw/launch_manager/alive_monitor:config", + "//score/mw/launch_manager/alive_monitor/details/common:types", + "//score/mw/launch_manager/alive_monitor/details/ifappl:checkpoint", + "//score/mw/launch_manager/alive_monitor/details/ifappl:monitor_if_daemon", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state_reader", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/recovery:notification", + "//score/mw/launch_manager/alive_monitor/details/supervision:alive", + "//score/mw/launch_manager/alive_monitor/details/supervision:global", + "//score/mw/launch_manager/alive_monitor/details/supervision:local", + "//score/mw/launch_manager/alive_monitor/details/supervision:supervision_cfg", + "//score/mw/launch_manager/alive_monitor/details/timers:time_conversion", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + "//score/mw/launch_manager/common:identifier_hash", + "@flatbuffers", + ] + select({ + "@platforms//os:qnx": [], + "@platforms//os:linux": ["//externals/acl"], + }), +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/FlatCfgFactory.cpp b/score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.cpp similarity index 96% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/FlatCfgFactory.cpp rename to score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.cpp index 509407afa..c40c75f8d 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/FlatCfgFactory.cpp +++ b/score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.cpp @@ -11,26 +11,26 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/factory/FlatCfgFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.hpp" #include #include #include -#include "score/lcm/identifier_hash.hpp" -#include "score/lcm/saf/factory/IPhmFactory.hpp" -#include "score/lcm/saf/factory/StaticConfig.hpp" -#include "score/lcm/saf/ifappl/Checkpoint.hpp" -#include "score/lcm/saf/ifappl/MonitorIfDaemon.hpp" -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/recovery/Notification.hpp" -#include "score/lcm/saf/supervision/Alive.hpp" -#include "score/lcm/saf/supervision/Global.hpp" -#include "score/lcm/saf/supervision/Local.hpp" -#include "score/lcm/saf/supervision/SupervisionCfg.hpp" -#include "score/lcm/saf/timers/TimeConversion.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/common/identifier_hash.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/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/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/recovery/Notification.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Alive.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Global.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/FlatCfgFactory.hpp b/score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.hpp similarity index 94% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/FlatCfgFactory.hpp rename to score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.hpp index b6302b7f3..c67c01e8b 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/FlatCfgFactory.hpp +++ b/score/mw/launch_manager/alive_monitor/details/factory/FlatCfgFactory.hpp @@ -19,11 +19,11 @@ #include #include -#include "score/lcm/saf/common/Types.hpp" -#include "score/lcm/saf/factory/IPhmFactory.hpp" -#include "score/lcm/saf/factory/MachineConfigFactory.hpp" -#include "score/lcm/saf/ifexm/ProcessStateReader.hpp" -#include "hm_flatcfg_generated.h" +#include "score/mw/launch_manager/alive_monitor/details/common/Types.hpp" +#include "score/mw/launch_manager/alive_monitor/details/factory/IPhmFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp" +#include "score/mw/launch_manager/alive_monitor/config/hm_flatcfg_generated.h" #include "flatbuffers/flatbuffers.h" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/IPhmFactory.hpp b/score/mw/launch_manager/alive_monitor/details/factory/IPhmFactory.hpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/IPhmFactory.hpp rename to score/mw/launch_manager/alive_monitor/details/factory/IPhmFactory.hpp index c49596cc5..8012fb78f 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/IPhmFactory.hpp +++ b/score/mw/launch_manager/alive_monitor/details/factory/IPhmFactory.hpp @@ -16,7 +16,7 @@ #define IPHMFACTORY_HPP_INCLUDED #include -#include "score/lcm/saf/ifappl/DataStructures.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/DataStructures.hpp" namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/MachineConfigFactory.cpp b/score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.cpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/MachineConfigFactory.cpp rename to score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.cpp index 97ea0ace1..fd958f2cd 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/MachineConfigFactory.cpp +++ b/score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.cpp @@ -10,13 +10,13 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/factory/MachineConfigFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.hpp" #include #include #include -#include "score/lcm/saf/timers/TimeConversion.hpp" -#include "hmcore_flatcfg_generated.h" +#include "score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp" +#include "score/mw/launch_manager/alive_monitor/config/hmcore_flatcfg_generated.h" #include "flatbuffers/flatbuffers.h" diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/MachineConfigFactory.hpp b/score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.hpp similarity index 94% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/MachineConfigFactory.hpp rename to score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.hpp index a7a37c32d..3cba842f6 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/MachineConfigFactory.hpp +++ b/score/mw/launch_manager/alive_monitor/details/factory/MachineConfigFactory.hpp @@ -16,10 +16,10 @@ #define MACHINE_CONFIG_FACTORY_HPP_INCLUDED #include -#include "score/lcm/saf/factory/StaticConfig.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" -#include "score/lcm/saf/watchdog/IDeviceConfigFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/factory/StaticConfig.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/IDeviceConfigFactory.hpp" namespace HMCOREFlatBuffer { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/StaticConfig.hpp b/score/mw/launch_manager/alive_monitor/details/factory/StaticConfig.hpp similarity index 88% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/StaticConfig.hpp rename to score/mw/launch_manager/alive_monitor/details/factory/StaticConfig.hpp index 1f19bf148..f90e3df16 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/factory/StaticConfig.hpp +++ b/score/mw/launch_manager/alive_monitor/details/factory/StaticConfig.hpp @@ -16,9 +16,9 @@ #include -#include "score/lcm/saf/ifappl/DataStructures.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" -#include "score/lcm/saf/watchdog/IDeviceConfigFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/DataStructures.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/IDeviceConfigFactory.hpp" namespace score { diff --git a/score/mw/launch_manager/alive_monitor/details/ifappl/BUILD b/score/mw/launch_manager/alive_monitor/details/ifappl/BUILD new file mode 100644 index 000000000..c33b68ad2 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/ifappl/BUILD @@ -0,0 +1,49 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "data_structures", + hdrs = ["DataStructures.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/ipc:ipc_if", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) + +cc_library( + name = "checkpoint", + srcs = ["Checkpoint.cpp"], + hdrs = ["Checkpoint.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/common:observer", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) + +cc_library( + name = "monitor_if_daemon", + srcs = ["MonitorIfDaemon.cpp"], + hdrs = ["MonitorIfDaemon.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":checkpoint", + ":data_structures", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/Checkpoint.cpp b/score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.cpp similarity index 96% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/Checkpoint.cpp rename to score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.cpp index e4fce4b7d..e7468bdd7 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/Checkpoint.cpp +++ b/score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/ifappl/Checkpoint.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/Checkpoint.hpp b/score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.hpp similarity index 95% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/Checkpoint.hpp rename to score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.hpp index 5e2f91e5c..f3730ff8f 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/Checkpoint.hpp +++ b/score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.hpp @@ -19,9 +19,9 @@ #include -#include "score/lcm/saf/common/Observer.hpp" -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Observer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/DataStructures.hpp b/score/mw/launch_manager/alive_monitor/details/ifappl/DataStructures.hpp similarity index 93% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/DataStructures.hpp rename to score/mw/launch_manager/alive_monitor/details/ifappl/DataStructures.hpp index e9495702f..57c1a8ca9 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/DataStructures.hpp +++ b/score/mw/launch_manager/alive_monitor/details/ifappl/DataStructures.hpp @@ -16,8 +16,8 @@ #include -#include "score/lcm/saf/ipc/IpcServer.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ipc/IpcServer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/MonitorIfDaemon.cpp b/score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.cpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/MonitorIfDaemon.cpp rename to score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.cpp index 1d98ed7c6..6224e4fa3 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/MonitorIfDaemon.cpp +++ b/score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.cpp @@ -11,11 +11,11 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/ifappl/MonitorIfDaemon.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.hpp" #include -#include "score/lcm/saf/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/MonitorIfDaemon.hpp b/score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.hpp similarity index 95% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/MonitorIfDaemon.hpp rename to score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.hpp index daeeea4e4..8c88eaeba 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifappl/MonitorIfDaemon.hpp +++ b/score/mw/launch_manager/alive_monitor/details/ifappl/MonitorIfDaemon.hpp @@ -16,10 +16,10 @@ #include #include -#include "score/lcm/saf/ifappl/Checkpoint.hpp" -#include "score/lcm/saf/ifappl/DataStructures.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/DataStructures.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/score/mw/launch_manager/alive_monitor/details/ifexm/BUILD b/score/mw/launch_manager/alive_monitor/details/ifexm/BUILD new file mode 100644 index 000000000..1cc6b2401 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/ifexm/BUILD @@ -0,0 +1,52 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "process_cfg", + srcs = ["ProcessCfg.cpp"], + hdrs = ["ProcessCfg.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/common:types", + ], +) + +cc_library( + name = "process_state", + srcs = ["ProcessState.cpp"], + hdrs = ["ProcessState.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":process_cfg", + "//score/mw/launch_manager/alive_monitor/details/common:observer", + "//score/mw/launch_manager/alive_monitor/details/common:types", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + "//score/mw/launch_manager/process_state_client", + ], +) + +cc_library( + name = "process_state_reader", + srcs = ["ProcessStateReader.cpp"], + hdrs = ["ProcessStateReader.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":process_state", + "//score/mw/launch_manager/alive_monitor/details/common:types", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/timers:time_conversion", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + "//score/mw/launch_manager/process_state_client", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessCfg.cpp b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessCfg.cpp similarity index 92% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessCfg.cpp rename to score/mw/launch_manager/alive_monitor/details/ifexm/ProcessCfg.cpp index 3b90f960c..86fc9fa12 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessCfg.cpp +++ b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessCfg.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/ifexm/ProcessCfg.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessCfg.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessCfg.hpp b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessCfg.hpp similarity index 96% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessCfg.hpp rename to score/mw/launch_manager/alive_monitor/details/ifexm/ProcessCfg.hpp index 64112d19e..9de5f2506 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessCfg.hpp +++ b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessCfg.hpp @@ -18,7 +18,7 @@ #include #include -#include "score/lcm/saf/common/Types.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Types.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessState.cpp b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.cpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessState.cpp rename to score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.cpp index 95d769d09..923ba57c2 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessState.cpp +++ b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessState.hpp b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp similarity index 93% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessState.hpp rename to score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp index 9b9f994ea..891aca9a2 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessState.hpp +++ b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp @@ -19,12 +19,12 @@ #endif #include -#include "score/lcm/saf/common/Observer.hpp" -#include "score/lcm/saf/common/Types.hpp" -#include "score/lcm/saf/ifexm/ProcessCfg.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Observer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Types.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessCfg.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" -#include "score/lcm/posixprocess.hpp" +#include "score/mw/launch_manager/process_state_client/posix_process.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessStateReader.cpp b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.cpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessStateReader.cpp rename to score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.cpp index a7b44e940..b676a8da2 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessStateReader.cpp +++ b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.cpp @@ -11,9 +11,9 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/ifexm/ProcessStateReader.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp" -#include "score/lcm/saf/timers/TimeConversion.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessStateReader.hpp b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp similarity index 90% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessStateReader.hpp rename to score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp index dc179afa9..75db72899 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ifexm/ProcessStateReader.hpp +++ b/score/mw/launch_manager/alive_monitor/details/ifexm/ProcessStateReader.hpp @@ -16,12 +16,12 @@ #include -#include "score/lcm/saf/common/Types.hpp" -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" -#include "score/lcm/posixprocess.hpp" -#include "score/lcm/iprocessstatereceiver.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Types.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/process_state_client/posix_process.hpp" +#include "score/mw/launch_manager/process_state_client/iprocess_state_receiver.hpp" namespace score { diff --git a/score/mw/launch_manager/alive_monitor/details/ipc/BUILD b/score/mw/launch_manager/alive_monitor/details/ipc/BUILD new file mode 100644 index 000000000..ba8903154 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/ipc/BUILD @@ -0,0 +1,28 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "ipc_if", + hdrs = [ + "IpcBase.hpp", + "IpcClient.hpp", + "IpcServer.hpp", + ], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = ["//externals/ipc_dropin"] + select({ + "@platforms//os:qnx": [], + "@platforms//os:linux": ["//externals/acl"], + }), + alwayslink = True, +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ipc/IpcBase.hpp b/score/mw/launch_manager/alive_monitor/details/ipc/IpcBase.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ipc/IpcBase.hpp rename to score/mw/launch_manager/alive_monitor/details/ipc/IpcBase.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ipc/IpcClient.hpp b/score/mw/launch_manager/alive_monitor/details/ipc/IpcClient.hpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ipc/IpcClient.hpp rename to score/mw/launch_manager/alive_monitor/details/ipc/IpcClient.hpp index 610704051..c101aecf6 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ipc/IpcClient.hpp +++ b/score/mw/launch_manager/alive_monitor/details/ipc/IpcClient.hpp @@ -17,7 +17,7 @@ #include #include -#include "score/lcm/saf/ipc/IpcBase.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ipc/IpcBase.hpp" #include "ipc_dropin/socket.hpp" namespace score diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ipc/IpcServer.hpp b/score/mw/launch_manager/alive_monitor/details/ipc/IpcServer.hpp similarity index 99% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ipc/IpcServer.hpp rename to score/mw/launch_manager/alive_monitor/details/ipc/IpcServer.hpp index 7adaed311..af690371e 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/ipc/IpcServer.hpp +++ b/score/mw/launch_manager/alive_monitor/details/ipc/IpcServer.hpp @@ -22,7 +22,7 @@ #include #include -#include "score/lcm/saf/ipc/IpcBase.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ipc/IpcBase.hpp" #include #include "ipc_dropin/socket.hpp" diff --git a/score/mw/launch_manager/alive_monitor/details/logging/BUILD b/score/mw/launch_manager/alive_monitor/details/logging/BUILD new file mode 100644 index 000000000..1917443a4 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/logging/BUILD @@ -0,0 +1,25 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "phm_logging", + srcs = ["PhmLogger.cpp"], + hdrs = ["PhmLogger.hpp"], + defines = select({ + "//config:lm_use_cout_log": [], + "//conditions:default": ["LC_LOG_SCORE_MW_LOG"], + }), + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = ["@score_baselibs//score/mw/log"], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/logging/PhmLogger.cpp b/score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.cpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/logging/PhmLogger.cpp rename to score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.cpp index 64b227fd6..1f1e9201c 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/logging/PhmLogger.cpp +++ b/score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.cpp @@ -13,7 +13,7 @@ #include -#include "score/lcm/saf/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/logging/PhmLogger.hpp b/score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/logging/PhmLogger.hpp rename to score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp diff --git a/score/mw/launch_manager/alive_monitor/details/recovery/BUILD b/score/mw/launch_manager/alive_monitor/details/recovery/BUILD new file mode 100644 index 000000000..7285386d4 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/recovery/BUILD @@ -0,0 +1,34 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + +cc_library( + name = "notification", + srcs = ["Notification.cpp"], + hdrs = ["Notification.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/recovery_client", + ], +) + +cc_test( + name = "Notification_UT", + srcs = ["Notification_UT.cpp"], + deps = [ + ":notification", + "@googletest//:gtest_main", + "@score_baselibs//score/mw/log:backend_stub_testutil", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification.cpp b/score/mw/launch_manager/alive_monitor/details/recovery/Notification.cpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification.cpp rename to score/mw/launch_manager/alive_monitor/details/recovery/Notification.cpp index d4fa5107c..e7c4dd6b7 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification.cpp +++ b/score/mw/launch_manager/alive_monitor/details/recovery/Notification.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/recovery/Notification.hpp" +#include "score/mw/launch_manager/alive_monitor/details/recovery/Notification.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification.hpp b/score/mw/launch_manager/alive_monitor/details/recovery/Notification.hpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification.hpp rename to score/mw/launch_manager/alive_monitor/details/recovery/Notification.hpp index 24d0eee1e..ceb8b8744 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification.hpp +++ b/score/mw/launch_manager/alive_monitor/details/recovery/Notification.hpp @@ -25,8 +25,8 @@ #include #include -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/recovery_client/irecovery_client.h" namespace xaap { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification_UT.cpp b/score/mw/launch_manager/alive_monitor/details/recovery/Notification_UT.cpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification_UT.cpp rename to score/mw/launch_manager/alive_monitor/details/recovery/Notification_UT.cpp index a24f98cd8..78e591268 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/recovery/Notification_UT.cpp +++ b/score/mw/launch_manager/alive_monitor/details/recovery/Notification_UT.cpp @@ -13,7 +13,7 @@ #include #include -#include "score/lcm/saf/recovery/Notification.hpp" +#include "score/mw/launch_manager/alive_monitor/details/recovery/Notification.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Alive.cpp b/score/mw/launch_manager/alive_monitor/details/supervision/Alive.cpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Alive.cpp rename to score/mw/launch_manager/alive_monitor/details/supervision/Alive.cpp index b454807ba..985d7c533 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Alive.cpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/Alive.cpp @@ -11,14 +11,14 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/supervision/Alive.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Alive.hpp" #include #include -#include "score/lcm/saf/common/Types.hpp" -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Types.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Alive.hpp b/score/mw/launch_manager/alive_monitor/details/supervision/Alive.hpp similarity index 95% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Alive.hpp rename to score/mw/launch_manager/alive_monitor/details/supervision/Alive.hpp index 0f99d7a45..7ab320c3e 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Alive.hpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/Alive.hpp @@ -20,14 +20,14 @@ #include -#include "score/lcm/Monitor.h" -#include "score/lcm/saf/common/TimeSortingBuffer.hpp" -#include "score/lcm/saf/ifappl/Checkpoint.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/supervision/ICheckpointSupervision.hpp" -#include "score/lcm/saf/supervision/ProcessStateTracker.hpp" -#include "score/lcm/saf/supervision/SupervisionCfg.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/Monitor.h" +#include "score/mw/launch_manager/alive_monitor/details/common/TimeSortingBuffer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifappl/Checkpoint.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/score/mw/launch_manager/alive_monitor/details/supervision/BUILD b/score/mw/launch_manager/alive_monitor/details/supervision/BUILD new file mode 100644 index 000000000..c52e08760 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/supervision/BUILD @@ -0,0 +1,118 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "supervision_cfg", + hdrs = ["SupervisionCfg.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/common:types", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) + +cc_library( + name = "i_supervision", + srcs = ["ISupervision.cpp"], + hdrs = ["ISupervision.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) + +cc_library( + name = "process_state_tracker", + srcs = ["ProcessStateTracker.cpp"], + hdrs = ["ProcessStateTracker.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + "//score/mw/launch_manager/alive_monitor/details/common:types", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + ], +) + +cc_library( + name = "i_checkpoint_supervision", + srcs = ["ICheckpointSupervision.cpp"], + hdrs = ["ICheckpointSupervision.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":i_supervision", + ":process_state_tracker", + ":supervision_cfg", + "//score/mw/launch_manager/alive_monitor:alive_monitor_h", + "//score/mw/launch_manager/alive_monitor/details/common:observer", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + ], +) + +cc_library( + name = "alive", + srcs = ["Alive.cpp"], + hdrs = ["Alive.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":i_checkpoint_supervision", + ":process_state_tracker", + ":supervision_cfg", + "//score/mw/launch_manager/alive_monitor:alive_monitor_h", + "//score/mw/launch_manager/alive_monitor/details/common:time_sorting_buffer", + "//score/mw/launch_manager/alive_monitor/details/ifappl:checkpoint", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) + +cc_library( + name = "local", + srcs = ["Local.cpp"], + hdrs = ["Local.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":alive", + ":i_checkpoint_supervision", + ":i_supervision", + ":supervision_cfg", + "//score/mw/launch_manager/alive_monitor:alive_monitor_h", + "//score/mw/launch_manager/alive_monitor/details/common:observer", + "//score/mw/launch_manager/alive_monitor/details/common:time_sorting_buffer", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) + +cc_library( + name = "global", + srcs = ["Global.cpp"], + hdrs = ["Global.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":i_checkpoint_supervision", + ":i_supervision", + ":local", + ":supervision_cfg", + "//score/mw/launch_manager/alive_monitor:alive_monitor_h", + "//score/mw/launch_manager/alive_monitor/details/common:observer", + "//score/mw/launch_manager/alive_monitor/details/common:time_sorting_buffer", + "//score/mw/launch_manager/alive_monitor/details/common:types", + "//score/mw/launch_manager/alive_monitor/details/ifexm:process_state", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/recovery:notification", + "//score/mw/launch_manager/alive_monitor/details/timers:timers_os_clock", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Global.cpp b/score/mw/launch_manager/alive_monitor/details/supervision/Global.cpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Global.cpp rename to score/mw/launch_manager/alive_monitor/details/supervision/Global.cpp index 68ee44f7b..0193088c8 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Global.cpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/Global.cpp @@ -11,13 +11,13 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/supervision/Global.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Global.hpp" #include -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/recovery/Notification.hpp" -#include "score/lcm/saf/supervision/Local.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/recovery/Notification.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Global.hpp b/score/mw/launch_manager/alive_monitor/details/supervision/Global.hpp similarity index 93% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Global.hpp rename to score/mw/launch_manager/alive_monitor/details/supervision/Global.hpp index 62bf23794..2ceb31d6b 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Global.hpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/Global.hpp @@ -25,16 +25,16 @@ #include -#include "score/lcm/Monitor.h" -#include "score/lcm/saf/common/Observer.hpp" -#include "score/lcm/saf/common/TimeSortingBuffer.hpp" -#include "score/lcm/saf/common/Types.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/supervision/ICheckpointSupervision.hpp" -#include "score/lcm/saf/supervision/ISupervision.hpp" -#include "score/lcm/saf/supervision/Local.hpp" -#include "score/lcm/saf/supervision/SupervisionCfg.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/Monitor.h" +#include "score/mw/launch_manager/alive_monitor/details/common/Observer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/TimeSortingBuffer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Types.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ICheckpointSupervision.cpp b/score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.cpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ICheckpointSupervision.cpp rename to score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.cpp index a965923bd..2bb8fba65 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ICheckpointSupervision.cpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/supervision/ICheckpointSupervision.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.hpp" #include diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ICheckpointSupervision.hpp b/score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.hpp similarity index 93% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ICheckpointSupervision.hpp rename to score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.hpp index 11b8f92cb..ef7d6a6e0 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ICheckpointSupervision.hpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.hpp @@ -19,13 +19,13 @@ #include -#include "score/lcm/Monitor.h" -#include "score/lcm/saf/common/Observer.hpp" -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/supervision/ISupervision.hpp" -#include "score/lcm/saf/supervision/ProcessStateTracker.hpp" -#include "score/lcm/saf/supervision/SupervisionCfg.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/Monitor.h" +#include "score/mw/launch_manager/alive_monitor/details/common/Observer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ISupervision.cpp b/score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.cpp similarity index 92% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ISupervision.cpp rename to score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.cpp index 071aaa7e4..72c4480b7 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ISupervision.cpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/supervision/ISupervision.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ISupervision.hpp b/score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.hpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ISupervision.hpp rename to score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.hpp index 97b354db6..ecaae95a0 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ISupervision.hpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.hpp @@ -19,7 +19,7 @@ #include #include #include -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Local.cpp b/score/mw/launch_manager/alive_monitor/details/supervision/Local.cpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Local.cpp rename to score/mw/launch_manager/alive_monitor/details/supervision/Local.cpp index 999c88047..d6860ff76 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Local.cpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/Local.cpp @@ -11,13 +11,13 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/supervision/Local.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp" #include #include -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Local.hpp b/score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp similarity index 93% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Local.hpp rename to score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp index 6ee3bc7f7..04fe4bc7b 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/Local.hpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/Local.hpp @@ -24,14 +24,14 @@ #include #include -#include "score/lcm/Monitor.h" -#include "score/lcm/saf/common/Observer.hpp" -#include "score/lcm/saf/common/TimeSortingBuffer.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/supervision/Alive.hpp" -#include "score/lcm/saf/supervision/ICheckpointSupervision.hpp" -#include "score/lcm/saf/supervision/ISupervision.hpp" -#include "score/lcm/saf/supervision/SupervisionCfg.hpp" +#include "score/mw/launch_manager/alive_monitor/Monitor.h" +#include "score/mw/launch_manager/alive_monitor/details/common/Observer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/TimeSortingBuffer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/Alive.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ICheckpointSupervision.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ISupervision.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ProcessStateTracker.cpp b/score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.cpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ProcessStateTracker.cpp rename to score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.cpp index dbd24fb77..7dd3c54da 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ProcessStateTracker.cpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/supervision/ProcessStateTracker.hpp" +#include "score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.hpp" #include diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ProcessStateTracker.hpp b/score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.hpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ProcessStateTracker.hpp rename to score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.hpp index 2623dc62d..2065c374d 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ProcessStateTracker.hpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/ProcessStateTracker.hpp @@ -19,9 +19,9 @@ #endif #include -#include "score/lcm/saf/common/Types.hpp" -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Types.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" #define ENABLE_DBG 0 namespace score diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/SupervisionCfg.hpp b/score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/SupervisionCfg.hpp rename to score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp index 238db246b..c0e727295 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/SupervisionCfg.hpp +++ b/score/mw/launch_manager/alive_monitor/details/supervision/SupervisionCfg.hpp @@ -14,9 +14,9 @@ #ifndef SUPERVISIONCFG_HPP_INCLUDED #define SUPERVISIONCFG_HPP_INCLUDED -#include "score/lcm/saf/common/Types.hpp" -#include "score/lcm/saf/ifexm/ProcessState.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/common/Types.hpp" +#include "score/mw/launch_manager/alive_monitor/details/ifexm/ProcessState.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/score/mw/launch_manager/alive_monitor/details/timers/BUILD b/score/mw/launch_manager/alive_monitor/details/timers/BUILD new file mode 100644 index 000000000..b144bc7c9 --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/timers/BUILD @@ -0,0 +1,57 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "os_clock_interface", + hdrs = ["OsClockInterface.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "timers_os_clock", + srcs = [ + "TimeConversion.cpp", + "Timers_OsClock.cpp", + ], + hdrs = [ + "TimeConversion.hpp", + "Timers_OsClock.hpp", + ], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +alias( + name = "time_conversion", + actual = ":timers_os_clock", + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "cycle_time_validator", + srcs = ["CycleTimeValidator.cpp"], + hdrs = ["CycleTimeValidator.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [":os_clock_interface"], +) + +cc_library( + name = "cycle_timer", + srcs = ["CycleTimer.cpp"], + hdrs = ["CycleTimer.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":os_clock_interface", + ":timers_os_clock", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimeValidator.cpp b/score/mw/launch_manager/alive_monitor/details/timers/CycleTimeValidator.cpp similarity index 95% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimeValidator.cpp rename to score/mw/launch_manager/alive_monitor/details/timers/CycleTimeValidator.cpp index 5f16a0a75..f03cd9d1e 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimeValidator.cpp +++ b/score/mw/launch_manager/alive_monitor/details/timers/CycleTimeValidator.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "CycleTimeValidator.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/CycleTimeValidator.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimeValidator.hpp b/score/mw/launch_manager/alive_monitor/details/timers/CycleTimeValidator.hpp similarity index 95% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimeValidator.hpp rename to score/mw/launch_manager/alive_monitor/details/timers/CycleTimeValidator.hpp index 88dcf8f8d..55857d64d 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimeValidator.hpp +++ b/score/mw/launch_manager/alive_monitor/details/timers/CycleTimeValidator.hpp @@ -17,7 +17,7 @@ #include -#include "OsClockInterface.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/OsClockInterface.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimer.cpp b/score/mw/launch_manager/alive_monitor/details/timers/CycleTimer.cpp similarity index 94% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimer.cpp rename to score/mw/launch_manager/alive_monitor/details/timers/CycleTimer.cpp index 1388c470a..d05e58896 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimer.cpp +++ b/score/mw/launch_manager/alive_monitor/details/timers/CycleTimer.cpp @@ -10,9 +10,9 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "CycleTimer.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/CycleTimer.hpp" -#include "score/lcm/saf/timers/TimeConversion.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp" namespace score { namespace lcm diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimer.hpp b/score/mw/launch_manager/alive_monitor/details/timers/CycleTimer.hpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimer.hpp rename to score/mw/launch_manager/alive_monitor/details/timers/CycleTimer.hpp index dc6763187..11a5cb6b0 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/CycleTimer.hpp +++ b/score/mw/launch_manager/alive_monitor/details/timers/CycleTimer.hpp @@ -19,8 +19,8 @@ /* RULECHECKER_comment(0, 3, check_include_errno, "Required to process clock_nanosleep return value", true_no_defect) */ #include -#include "score/lcm/saf/timers/OsClockInterface.hpp" -#include "score/lcm/saf/timers/Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/OsClockInterface.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/OsClockInterface.hpp b/score/mw/launch_manager/alive_monitor/details/timers/OsClockInterface.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/OsClockInterface.hpp rename to score/mw/launch_manager/alive_monitor/details/timers/OsClockInterface.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/TimeConversion.cpp b/score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.cpp similarity index 96% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/TimeConversion.cpp rename to score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.cpp index 7200513e2..3a2482e25 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/TimeConversion.cpp +++ b/score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "TimeConversion.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp" #include diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/TimeConversion.hpp b/score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/TimeConversion.hpp rename to score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp index d34a00162..584cb3a71 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/TimeConversion.hpp +++ b/score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp @@ -19,7 +19,7 @@ #include #include -#include "Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/Timers_OsClock.cpp b/score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.cpp similarity index 92% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/Timers_OsClock.cpp rename to score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.cpp index a82dc660e..418906609 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/Timers_OsClock.cpp +++ b/score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "Timers_OsClock.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp" /* RULECHECKER_comment(0, 4, {check_include_time}, "Monotonic clock is needed from this header.\ other clocks and time format is not used.", true_no_defect) */ @@ -19,7 +19,7 @@ #include #include -#include "TimeConversion.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/TimeConversion.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/Timers_OsClock.hpp b/score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/timers/Timers_OsClock.hpp rename to score/mw/launch_manager/alive_monitor/details/timers/Timers_OsClock.hpp diff --git a/score/mw/launch_manager/alive_monitor/details/watchdog/BUILD b/score/mw/launch_manager/alive_monitor/details/watchdog/BUILD new file mode 100644 index 000000000..47e7dacef --- /dev/null +++ b/score/mw/launch_manager/alive_monitor/details/watchdog/BUILD @@ -0,0 +1,54 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "i_device_config_factory", + hdrs = ["IDeviceConfigFactory.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "i_watchdog_if", + hdrs = ["IWatchdogIf.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [":i_device_config_factory"], +) + +cc_library( + name = "watchdog", + hdrs = ["Watchdog.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "device_if", + srcs = ["DeviceIf.cpp"], + hdrs = ["DeviceIf.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], +) + +cc_library( + name = "watchdog_impl", + srcs = ["WatchdogImpl.cpp"], + hdrs = ["WatchdogImpl.hpp"], + visibility = ["//score/mw/launch_manager/alive_monitor:__subpackages__"], + deps = [ + ":device_if", + ":i_device_config_factory", + ":i_watchdog_if", + ":watchdog", + "//score/mw/launch_manager/alive_monitor/details/logging:phm_logging", + "//score/mw/launch_manager/alive_monitor/details/timers:os_clock_interface", + ], +) diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/DeviceIf.cpp b/score/mw/launch_manager/alive_monitor/details/watchdog/DeviceIf.cpp similarity index 95% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/DeviceIf.cpp rename to score/mw/launch_manager/alive_monitor/details/watchdog/DeviceIf.cpp index 4757a965c..fe7b73a4f 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/DeviceIf.cpp +++ b/score/mw/launch_manager/alive_monitor/details/watchdog/DeviceIf.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/watchdog/DeviceIf.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/DeviceIf.hpp" #include #include diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/DeviceIf.hpp b/score/mw/launch_manager/alive_monitor/details/watchdog/DeviceIf.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/DeviceIf.hpp rename to score/mw/launch_manager/alive_monitor/details/watchdog/DeviceIf.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/IDeviceConfigFactory.hpp b/score/mw/launch_manager/alive_monitor/details/watchdog/IDeviceConfigFactory.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/IDeviceConfigFactory.hpp rename to score/mw/launch_manager/alive_monitor/details/watchdog/IDeviceConfigFactory.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/IWatchdogIf.hpp b/score/mw/launch_manager/alive_monitor/details/watchdog/IWatchdogIf.hpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/IWatchdogIf.hpp rename to score/mw/launch_manager/alive_monitor/details/watchdog/IWatchdogIf.hpp index ed299d414..d9b2ab0f5 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/IWatchdogIf.hpp +++ b/score/mw/launch_manager/alive_monitor/details/watchdog/IWatchdogIf.hpp @@ -17,7 +17,7 @@ #include -#include "score/lcm/saf/watchdog/IDeviceConfigFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/IDeviceConfigFactory.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/Watchdog.hpp b/score/mw/launch_manager/alive_monitor/details/watchdog/Watchdog.hpp similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/Watchdog.hpp rename to score/mw/launch_manager/alive_monitor/details/watchdog/Watchdog.hpp diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/WatchdogImpl.cpp b/score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.cpp similarity index 98% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/WatchdogImpl.cpp rename to score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.cpp index f2042d4d3..da910ef7e 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/WatchdogImpl.cpp +++ b/score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/saf/watchdog/WatchdogImpl.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.hpp" #include #include @@ -18,9 +18,9 @@ #include #include -#include "score/lcm/saf/timers/OsClockInterface.hpp" -#include "score/lcm/saf/watchdog/DeviceIf.hpp" -#include "score/lcm/saf/watchdog/Watchdog.hpp" +#include "score/mw/launch_manager/alive_monitor/details/timers/OsClockInterface.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/DeviceIf.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/Watchdog.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/WatchdogImpl.hpp b/score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.hpp similarity index 97% rename from src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/WatchdogImpl.hpp rename to score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.hpp index 508e9919d..d381e529c 100644 --- a/src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/watchdog/WatchdogImpl.hpp +++ b/score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.hpp @@ -20,9 +20,9 @@ #include #include -#include "score/lcm/saf/logging/PhmLogger.hpp" -#include "score/lcm/saf/watchdog/IDeviceConfigFactory.hpp" -#include "score/lcm/saf/watchdog/IWatchdogIf.hpp" +#include "score/mw/launch_manager/alive_monitor/details/logging/PhmLogger.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/IDeviceConfigFactory.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/IWatchdogIf.hpp" namespace score { diff --git a/src/launch_manager_daemon/health_monitor_lib/rust_bindings/BUILD b/score/mw/launch_manager/alive_monitor/rust/BUILD similarity index 92% rename from src/launch_manager_daemon/health_monitor_lib/rust_bindings/BUILD rename to score/mw/launch_manager/alive_monitor/rust/BUILD index 447372ebf..c0bf6264c 100644 --- a/src/launch_manager_daemon/health_monitor_lib/rust_bindings/BUILD +++ b/score/mw/launch_manager/alive_monitor/rust/BUILD @@ -23,7 +23,7 @@ rust_library( ], deps = [ "//score/mw/lifecycle:alive_cc", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + "//score/mw/lifecycle/lifecycle_client", "@score_crates//:libc", ], ) diff --git a/src/launch_manager_daemon/health_monitor_lib/rust_bindings/Cargo.lock b/score/mw/launch_manager/alive_monitor/rust/Cargo.lock similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/rust_bindings/Cargo.lock rename to score/mw/launch_manager/alive_monitor/rust/Cargo.lock diff --git a/src/launch_manager_daemon/health_monitor_lib/rust_bindings/Cargo.toml b/score/mw/launch_manager/alive_monitor/rust/Cargo.toml similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/rust_bindings/Cargo.toml rename to score/mw/launch_manager/alive_monitor/rust/Cargo.toml diff --git a/src/launch_manager_daemon/health_monitor_lib/rust_bindings/src/errors.rs b/score/mw/launch_manager/alive_monitor/rust/src/errors.rs similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/rust_bindings/src/errors.rs rename to score/mw/launch_manager/alive_monitor/rust/src/errors.rs diff --git a/src/launch_manager_daemon/health_monitor_lib/rust_bindings/src/lib.rs b/score/mw/launch_manager/alive_monitor/rust/src/lib.rs similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/rust_bindings/src/lib.rs rename to score/mw/launch_manager/alive_monitor/rust/src/lib.rs diff --git a/src/launch_manager_daemon/health_monitor_lib/rust_bindings/src/monitor.rs b/score/mw/launch_manager/alive_monitor/rust/src/monitor.rs similarity index 100% rename from src/launch_manager_daemon/health_monitor_lib/rust_bindings/src/monitor.rs rename to score/mw/launch_manager/alive_monitor/rust/src/monitor.rs diff --git a/score/mw/launch_manager/common/BUILD b/score/mw/launch_manager/common/BUILD new file mode 100644 index 000000000..e40efdff2 --- /dev/null +++ b/score/mw/launch_manager/common/BUILD @@ -0,0 +1,66 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_test") +load("//config:common_cc.bzl", "cc_binary_with_common_opts", "cc_library_with_common_opts") + +cc_library( + name = "identifier_hash", + srcs = [ + "identifier_hash.cpp", + ], + hdrs = [ + "identifier_hash.hpp", + ], + visibility = ["//visibility:public"], +) + +cc_test( + name = "identifier_hash_UT", + srcs = ["identifier_hash_UT.cpp"], + deps = [ + ":identifier_hash", + "@googletest//:gtest_main", + ], +) + +cc_library( + name = "log", + hdrs = ["log.hpp"], + defines = select({ + "//config:lm_use_cout_log": [], + "//conditions:default": ["LC_LOG_SCORE_MW_LOG"], + }), + visibility = ["//score/mw:__subpackages__"], + deps = select({ + "//config:lm_use_cout_log": [], + "//conditions:default": ["@score_baselibs//score/mw/log"], + }), +) + +cc_library( + name = "constants", + hdrs = ["constants.hpp"], + visibility = [ + "//score:__subpackages__", + "//src:__subpackages__", + ], +) + +cc_library( + name = "process_group_state_id", + hdrs = [ + "process_group_state_id.hpp", + ], + visibility = ["//score:__subpackages__"], + deps = [":identifier_hash"], +) diff --git a/src/launch_manager_daemon/common/concurrency/BUILD b/score/mw/launch_manager/common/concurrency/BUILD similarity index 54% rename from src/launch_manager_daemon/common/concurrency/BUILD rename to score/mw/launch_manager/common/concurrency/BUILD index 35d84d8e6..4218c9c72 100644 --- a/src/launch_manager_daemon/common/concurrency/BUILD +++ b/score/mw/launch_manager/common/concurrency/BUILD @@ -1,5 +1,5 @@ # ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation +# Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -10,14 +10,17 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -load("@rules_cc//cc:defs.bzl", "cc_test") -load("//config:common_cc.bzl", "cc_library_with_common_opts") +load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") cc_library( - name = "helgrind_annotations", - hdrs = ["helgrind_annotations.hpp"], - strip_include_prefix = "//src/launch_manager_daemon/common", - visibility = ["//src:__subpackages__"], + name = "thread_pool", + hdrs = ["thread_pool.hpp"], + visibility = ["//score:__subpackages__"], + deps = [ + ":mpmc_concurrent_queue", + "//score/mw/launch_manager/common:constants", + "//score/mw/launch_manager/common:log", + ], ) cc_library( @@ -29,39 +32,33 @@ cc_library( linkopts = [ "-l:libatomic.a", ], - strip_include_prefix = "//src/launch_manager_daemon/common", - visibility = ["//src:__subpackages__"], + visibility = ["//score:__subpackages__"], deps = [ - ":helgrind_annotations", - "//src/launch_manager_daemon/common:osal", + "//score/mw/launch_manager/common/concurrency/details:helgrind_annotations", + "//score/mw/launch_manager/osal:return_types", + "//score/mw/launch_manager/osal:semaphore", "@score_baselibs//score/language/futurecpp", + "@score_baselibs//score/mw/log", ], ) cc_test( name = "mpmc_concurrent_queue_test", srcs = ["mpmc_concurrent_queue_test.cpp"], - visibility = ["//tests:__subpackages__"], deps = [ ":mpmc_concurrent_queue", "@googletest//:gtest_main", ], ) -# Run with: -# bazel test --run_under="valgrind --tool=helgrind --suppressions=src/launch_manager_daemon/common/concurrency/helgrind.supp --error-exitcode=1" //src/launch_manager_daemon/common/concurrency:mpmc_concurrent_queue_helgrind_test --config=host --test_output=all -# Note: This is using your host packages so you need to install valgrind. -# Two tests intentionally exercise semaphore failure paths (EINTR / EAGAIN). -# Those expected PthAPIerror reports are silenced via helgrind.supp. cc_test( name = "mpmc_concurrent_queue_helgrind_test", srcs = ["mpmc_concurrent_queue_test.cpp"], - data = ["helgrind.supp"], + data = ["mpmc_concurrent_queue_test_helgrind.supp"], tags = [ "helgrind", "manual", ], - visibility = ["//tests:__subpackages__"], deps = [ ":mpmc_concurrent_queue", "@googletest//:gtest_main", @@ -78,11 +75,10 @@ cc_test( ], linkopts = ["-fsanitize=thread"], tags = [ - "no-coverage", # coverage + tsan might cause problems + "no-coverage", "tsan", ], - target_compatible_with = ["@platforms//os:linux"], # no tsan on qnx - visibility = ["//tests:__subpackages__"], + target_compatible_with = ["@platforms//os:linux"], deps = [ ":mpmc_concurrent_queue", "@googletest//:gtest_main", diff --git a/src/launch_manager_daemon/common/concurrency/concurrency_error_domain.hpp b/score/mw/launch_manager/common/concurrency/concurrency_error_domain.hpp similarity index 100% rename from src/launch_manager_daemon/common/concurrency/concurrency_error_domain.hpp rename to score/mw/launch_manager/common/concurrency/concurrency_error_domain.hpp diff --git a/score/mw/launch_manager/common/concurrency/details/BUILD b/score/mw/launch_manager/common/concurrency/details/BUILD new file mode 100644 index 000000000..a53659a14 --- /dev/null +++ b/score/mw/launch_manager/common/concurrency/details/BUILD @@ -0,0 +1,19 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "helgrind_annotations", + hdrs = ["helgrind_annotations.hpp"], + visibility = ["//score:__subpackages__"], +) diff --git a/src/launch_manager_daemon/common/concurrency/helgrind_annotations.hpp b/score/mw/launch_manager/common/concurrency/details/helgrind_annotations.hpp similarity index 100% rename from src/launch_manager_daemon/common/concurrency/helgrind_annotations.hpp rename to score/mw/launch_manager/common/concurrency/details/helgrind_annotations.hpp diff --git a/src/launch_manager_daemon/common/concurrency/mpmc_concurrent_queue.hpp b/score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue.hpp similarity index 98% rename from src/launch_manager_daemon/common/concurrency/mpmc_concurrent_queue.hpp rename to score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue.hpp index 7d6c32aeb..41684cf6a 100644 --- a/src/launch_manager_daemon/common/concurrency/mpmc_concurrent_queue.hpp +++ b/score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue.hpp @@ -26,9 +26,9 @@ #include "concurrency_error_domain.hpp" #include -#include -#include -#include +#include "score/mw/launch_manager/common/concurrency/details/helgrind_annotations.hpp" +#include "score/mw/launch_manager/osal/return_types.hpp" +#include "score/mw/launch_manager/osal/semaphore.hpp" namespace score::lcm::internal { diff --git a/src/launch_manager_daemon/common/concurrency/mpmc_concurrent_queue_test.cpp b/score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue_test.cpp similarity index 99% rename from src/launch_manager_daemon/common/concurrency/mpmc_concurrent_queue_test.cpp rename to score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue_test.cpp index 361a1137d..0e931c2d0 100644 --- a/src/launch_manager_daemon/common/concurrency/mpmc_concurrent_queue_test.cpp +++ b/score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue_test.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include +#include "score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue.hpp" #include #include diff --git a/src/launch_manager_daemon/common/concurrency/helgrind.supp b/score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue_test_helgrind.supp similarity index 100% rename from src/launch_manager_daemon/common/concurrency/helgrind.supp rename to score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue_test_helgrind.supp diff --git a/score/mw/launch_manager/common/concurrency/thread_pool.hpp b/score/mw/launch_manager/common/concurrency/thread_pool.hpp new file mode 100644 index 000000000..97676997b --- /dev/null +++ b/score/mw/launch_manager/common/concurrency/thread_pool.hpp @@ -0,0 +1,114 @@ +/******************************************************************************** + * Copyright (c) 2025 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +#ifndef THREAD_POOL_HPP_INCLUDED +#define THREAD_POOL_HPP_INCLUDED + +#include "score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue.hpp" +#include "score/mw/launch_manager/common/log.hpp" +#include "score/mw/launch_manager/common/constants.hpp" +#include +#include +#include + +namespace score::lcm::internal +{ + +/// @brief Templated thread pool for executing jobs from a queue. +/// This class manages a pool of threads that continuously retrieve and execute jobs +/// from an MPMCConcurrentQueue until the pool is stopped or destructed. +/// @tparam T The type of items stored in the queue (as std::shared_ptr). +template +class ThreadPool final +{ + using Queue = MPMCConcurrentQueue, static_cast(ProcessLimits::kMaxProcesses)>; + + public: + /// @brief Constructs a ThreadPool with the specified number of threads. + /// + /// @param queue The queue from which threads will take work items. + /// @param num_threads Number of threads in the pool. + ThreadPool(std::shared_ptr queue, uint32_t num_threads) : the_job_queue_(queue) + { + worker_threads_.reserve(num_threads); + for (uint32_t i = 0U; i < num_threads; ++i) + { + static_cast(i); + worker_threads_.emplace_back(std::make_unique(&ThreadPool::run, this)); + } + } + + /// @brief Destructor. Requests stop and joins all threads. + ~ThreadPool() + { + stop(); + for (auto& thread : worker_threads_) + { + if (thread->joinable()) + { + thread->join(); + } + } + } + + // Rule of five + /// @brief Copy constructor is deleted. + ThreadPool(const ThreadPool&) = delete; + + /// @brief Copy assignment operator is deleted. + ThreadPool& operator=(const ThreadPool&) = delete; + + /// @brief Move constructor is deleted. + ThreadPool(ThreadPool&&) = delete; + + /// @brief Move assignment operator is deleted. + ThreadPool& operator=(ThreadPool&&) = delete; + + /// @brief Requests all threads to stop. + /// Calls stop() on the queue, which unblocks all threads waiting in pop(). + void stop() + { + static_cast(the_job_queue_->stop()); + } + + private: + /// @brief Entry point for each thread. + /// Blocks on pop() until a job arrives or the queue is stopped, then executes the job. + void run() + { + while (true) + { + auto job = the_job_queue_->pop(); + if (!job) + { + if (job.error() == ConcurrencyErrc::kStopped) + { + break; + } + LM_LOG_ERROR() << "Got an error getting a job: " << job.error(); + continue; + } + (*job)->doWork(); + } + } + + /// @brief The queue from which each thread takes work. + std::shared_ptr the_job_queue_{}; + + /// @brief Pool of worker threads. + std::vector> worker_threads_{}; +}; + +} // namespace score::lcm::internal + +#endif // THREAD_POOL_HPP_INCLUDED diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/config.hpp b/score/mw/launch_manager/common/constants.hpp similarity index 65% rename from src/launch_manager_daemon/common/include/score/lcm/internal/config.hpp rename to score/mw/launch_manager/common/constants.hpp index 95243a7ca..8046c6f77 100644 --- a/src/launch_manager_daemon/common/include/score/lcm/internal/config.hpp +++ b/score/mw/launch_manager/common/constants.hpp @@ -12,8 +12,8 @@ ********************************************************************************/ -#ifndef CONFIG_HPP_INCLUDED -#define CONFIG_HPP_INCLUDED +#ifndef CONSTANTS_HPP_INCLUDED +#define CONSTANTS_HPP_INCLUDED #include #include @@ -36,19 +36,18 @@ constexpr std::size_t kArgvArraySize = constexpr std::size_t kEnvArraySize = kMaxEnv + 1U; ///< As required by posix we need extra space in envp_ for NULL pointer -extern const char* kEnvVarName; ///< Environment variable name -extern const char* kEnvVarDefaultValue; ///< Environment variable value +constexpr std::chrono::milliseconds kMaxQueueDelay{500}; ///< The maximum time to wait trying to add items to, or get items from, a queue +constexpr std::chrono::milliseconds kGraphTimeout{10000}; ///< Timeout duration for graph operations. +constexpr std::chrono::milliseconds kMaxSigKillDelay{500}; ///< The maximum time to wait for a process termination -extern const std::chrono::milliseconds - kMaxQueueDelay; ///< The maximum time to wait trying to add items to, or get items from, a queue -extern const std::chrono::milliseconds kGraphTimeout; ///< Timeout duration for graph operations. -extern const std::chrono::milliseconds kMaxSigKillDelay; ///< The maximum time to wait for a process termination +constexpr std::chrono::milliseconds kControlClientPollingDelay{1}; ///< Time Control Client will wait during polling for acknowledgement -extern const std::chrono::milliseconds - kControlClientPollingDelay; ///< Time Control Client will wait during polling for acknowledgement +constexpr std::chrono::milliseconds kMaxKRunningDelay{1000}; ///< Time Lifecycle Client will wait for Launch Manager to respond -extern const std::chrono::milliseconds - kMaxKRunningDelay; ///< Time Lifecycle Client will wait for Launch Manager to respond +constexpr std::chrono::milliseconds kControlClientMaxIpcDelay{500}; ///< The maximum time to wait, when trying to communicate with LCM. When this time is exceeded kCommunicationError will be returned +constexpr std::chrono::milliseconds kControlClientBgThreadSleepTime{100}; + +constexpr std::chrono::milliseconds kLifecycleClientBgThreadSleepTime{10}; ///< The time for which Lifecycle Client background thread sleeps after polling the SIGTERM flag enum class ControlClientLimits : uint16_t { kControlClientMaxInstances = @@ -57,23 +56,16 @@ enum class ControlClientLimits : uint16_t { 512U ///< Maximum number of active requests, for example SetState call, that ControlClient instance can send to LCM. If that number is exceeded ControlClient API will return kFailed, until one of the current requests is completed by LCM }; -extern const std::chrono::milliseconds - kControlClientMaxIpcDelay; ///< The maximum time to wait, when trying to communicate with LCM. When this time is exceeded kCommunicationError will be returned -extern const std::chrono::milliseconds kControlClientBgThreadSleepTime; - -extern const std::chrono::milliseconds - kLifecycleClientBgThreadSleepTime; ///< The time for which Lifecycle Client background thread sleeps after polling the SIGTERM flag - enum class ProcessLimits : std::uint32_t { kMaxProcesses = 1024U, ///< Maximum number of processes allowed kNumWorkerThreads = 32U, ///< Maximum number of worker threads allowed maxLocalBuffSize = 32U ///< Maximum size for local buffer }; -} // namespace lcm - } // namespace internal +} // namespace lcm + } // namespace score -#endif /// CONFIG_HPP_INCLUDED +#endif // CONSTANTS_HPP_INCLUDED diff --git a/src/launch_manager_daemon/common/src/identifier_hash.cpp b/score/mw/launch_manager/common/identifier_hash.cpp similarity index 98% rename from src/launch_manager_daemon/common/src/identifier_hash.cpp rename to score/mw/launch_manager/common/identifier_hash.cpp index 56910a01e..cc963ac8c 100644 --- a/src/launch_manager_daemon/common/src/identifier_hash.cpp +++ b/score/mw/launch_manager/common/identifier_hash.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" #include #include diff --git a/src/launch_manager_daemon/common/include/score/lcm/identifier_hash.hpp b/score/mw/launch_manager/common/identifier_hash.hpp similarity index 100% rename from src/launch_manager_daemon/common/include/score/lcm/identifier_hash.hpp rename to score/mw/launch_manager/common/identifier_hash.hpp diff --git a/src/launch_manager_daemon/common/src/identifier_hash_UT.cpp b/score/mw/launch_manager/common/identifier_hash_UT.cpp similarity index 98% rename from src/launch_manager_daemon/common/src/identifier_hash_UT.cpp rename to score/mw/launch_manager/common/identifier_hash_UT.cpp index 593547707..e178915ae 100644 --- a/src/launch_manager_daemon/common/src/identifier_hash_UT.cpp +++ b/score/mw/launch_manager/common/identifier_hash_UT.cpp @@ -11,10 +11,11 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ #include -#include #include #include +#include "score/mw/launch_manager/common/identifier_hash.hpp" + using namespace testing; using std::stringstream; @@ -149,4 +150,4 @@ TEST_F(IdentifierHashTest, IdentifierHash_LessThanOperator) ASSERT_FALSE(hash1 < hash2); ASSERT_FALSE(hash2 < hash1); } -} \ No newline at end of file +} diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/log.hpp b/score/mw/launch_manager/common/log.hpp similarity index 100% rename from src/launch_manager_daemon/common/include/score/lcm/internal/log.hpp rename to score/mw/launch_manager/common/log.hpp diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/process_group_state_id.hpp b/score/mw/launch_manager/common/process_group_state_id.hpp similarity index 95% rename from src/launch_manager_daemon/common/include/score/lcm/internal/process_group_state_id.hpp rename to score/mw/launch_manager/common/process_group_state_id.hpp index 04d4b7fbf..2c302d83b 100644 --- a/src/launch_manager_daemon/common/include/score/lcm/internal/process_group_state_id.hpp +++ b/score/mw/launch_manager/common/process_group_state_id.hpp @@ -15,7 +15,7 @@ #ifndef FUNCTION_STATE_ID_HPP_ #define FUNCTION_STATE_ID_HPP_ -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" namespace score { diff --git a/score/mw/launch_manager/configuration/BUILD b/score/mw/launch_manager/configuration/BUILD new file mode 100644 index 000000000..6c7703267 --- /dev/null +++ b/score/mw/launch_manager/configuration/BUILD @@ -0,0 +1,50 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +exports_files([ + "lm_flatcfg.fbs", + "lm_flatcfg_generated.h", +]) + +filegroup( + name = "lm_flatcfg_fbs", + srcs = ["lm_flatcfg.fbs"], + visibility = ["//visibility:public"], +) + +cc_library( + name = "lm_flatcfg", + hdrs = ["lm_flatcfg_generated.h"], + visibility = ["//score:__subpackages__"], + deps = ["@flatbuffers"], +) + +cc_library( + name = "configuration_manager", + srcs = ["configuration_manager.cpp"], + hdrs = ["configuration_manager.hpp"], + visibility = ["//score:__subpackages__"], + deps = [ + ":lm_flatcfg", + "//score/mw/launch_manager/common:constants", + "//score/mw/launch_manager/common:identifier_hash", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/common:process_group_state_id", + "//score/mw/launch_manager/osal:num_cores", + "//score/mw/launch_manager/process_group_manager:iprocess", + "//score/mw/launch_manager/process_state_client:posix_process", + "//score/mw/lifecycle:error", + "@flatbuffers", + ], +) diff --git a/src/launch_manager_daemon/config/BUILD b/score/mw/launch_manager/configuration/config/BUILD similarity index 88% rename from src/launch_manager_daemon/config/BUILD rename to score/mw/launch_manager/configuration/config/BUILD index 67f38aa85..ca5de742e 100644 --- a/src/launch_manager_daemon/config/BUILD +++ b/score/mw/launch_manager/configuration/config/BUILD @@ -10,7 +10,3 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -exports_files([ - "lm_flatcfg.fbs", - "lm_flatcfg_generated.h", -]) diff --git a/src/launch_manager_daemon/config/config_schema/BUILD b/score/mw/launch_manager/configuration/config_schema/BUILD similarity index 100% rename from src/launch_manager_daemon/config/config_schema/BUILD rename to score/mw/launch_manager/configuration/config_schema/BUILD diff --git a/src/launch_manager_daemon/config/config_schema/README.rst b/score/mw/launch_manager/configuration/config_schema/README.rst similarity index 100% rename from src/launch_manager_daemon/config/config_schema/README.rst rename to score/mw/launch_manager/configuration/config_schema/README.rst diff --git a/src/launch_manager_daemon/config/config_schema/default_values/alive_supervision_defaults.json b/score/mw/launch_manager/configuration/config_schema/default_values/alive_supervision_defaults.json similarity index 100% rename from src/launch_manager_daemon/config/config_schema/default_values/alive_supervision_defaults.json rename to score/mw/launch_manager/configuration/config_schema/default_values/alive_supervision_defaults.json diff --git a/src/launch_manager_daemon/config/config_schema/default_values/component_properties_defaults.json b/score/mw/launch_manager/configuration/config_schema/default_values/component_properties_defaults.json similarity index 100% rename from src/launch_manager_daemon/config/config_schema/default_values/component_properties_defaults.json rename to score/mw/launch_manager/configuration/config_schema/default_values/component_properties_defaults.json diff --git a/src/launch_manager_daemon/config/config_schema/default_values/deployment_config_defaults.json b/score/mw/launch_manager/configuration/config_schema/default_values/deployment_config_defaults.json similarity index 100% rename from src/launch_manager_daemon/config/config_schema/default_values/deployment_config_defaults.json rename to score/mw/launch_manager/configuration/config_schema/default_values/deployment_config_defaults.json diff --git a/src/launch_manager_daemon/config/config_schema/default_values/run_target_defaults.json b/score/mw/launch_manager/configuration/config_schema/default_values/run_target_defaults.json similarity index 100% rename from src/launch_manager_daemon/config/config_schema/default_values/run_target_defaults.json rename to score/mw/launch_manager/configuration/config_schema/default_values/run_target_defaults.json diff --git a/src/launch_manager_daemon/config/config_schema/default_values/watchdog_defaults.json b/score/mw/launch_manager/configuration/config_schema/default_values/watchdog_defaults.json similarity index 100% rename from src/launch_manager_daemon/config/config_schema/default_values/watchdog_defaults.json rename to score/mw/launch_manager/configuration/config_schema/default_values/watchdog_defaults.json diff --git a/src/launch_manager_daemon/config/config_schema/examples/example_conf.json b/score/mw/launch_manager/configuration/config_schema/examples/example_conf.json similarity index 100% rename from src/launch_manager_daemon/config/config_schema/examples/example_conf.json rename to score/mw/launch_manager/configuration/config_schema/examples/example_conf.json diff --git a/src/launch_manager_daemon/config/config_schema/launch_manager.schema.json b/score/mw/launch_manager/configuration/config_schema/launch_manager.schema.json similarity index 100% rename from src/launch_manager_daemon/config/config_schema/launch_manager.schema.json rename to score/mw/launch_manager/configuration/config_schema/launch_manager.schema.json diff --git a/src/launch_manager_daemon/config/config_schema/scripts/validate.py b/score/mw/launch_manager/configuration/config_schema/scripts/validate.py similarity index 100% rename from src/launch_manager_daemon/config/config_schema/scripts/validate.py rename to score/mw/launch_manager/configuration/config_schema/scripts/validate.py diff --git a/src/launch_manager_daemon/src/configuration_manager/configurationmanager.cpp b/score/mw/launch_manager/configuration/configuration_manager.cpp similarity index 98% rename from src/launch_manager_daemon/src/configuration_manager/configurationmanager.cpp rename to score/mw/launch_manager/configuration/configuration_manager.cpp index bdd1b39c1..13c51d5d7 100644 --- a/src/launch_manager_daemon/src/configuration_manager/configurationmanager.cpp +++ b/score/mw/launch_manager/configuration/configuration_manager.cpp @@ -12,12 +12,12 @@ ********************************************************************************/ #include -#include +#include "score/mw/lifecycle/execution_error.h" -#include -#include -#include -#include +#include "score/mw/launch_manager/configuration/configuration_manager.hpp" +#include "score/mw/launch_manager/common/process_group_state_id.hpp" +#include "score/mw/launch_manager/common/log.hpp" +#include "score/mw/launch_manager/osal/num_cores.hpp" #include @@ -73,10 +73,8 @@ namespace internal { const char* ConfigurationManager::PROCESS_RUNNING_STATE = "Running"; const char* ConfigurationManager::PROCESS_TERMINATED_STATE = "Terminated"; -// coverity[autosar_cpp14_m3_4_1_violation:INTENTIONAL] The value is used in a global context. -const char* kEnvVarName = "ECUCFG_ENV_VAR_ROOTFOLDER"; ///< Environment variable name -// coverity[autosar_cpp14_m3_4_1_violation:INTENTIONAL] The value is used in a global context. -const char* kEnvVarDefaultValue = "/opt/internal/launch_manager/etc/ecu-cfg"; ///< Environment variable value +constexpr const char* kEnvVarName = "ECUCFG_ENV_VAR_ROOTFOLDER"; ///< Environment variable name +constexpr const char* kEnvVarDefaultValue = "/opt/internal/launch_manager/etc/ecu-cfg"; ///< Environment variable value const uint32_t ConfigurationManager::kDefaultProcessExecutionError = 1U; uint32_t ConfigurationManager::kDefaultProcessorAffinityMask() { diff --git a/src/launch_manager_daemon/src/configuration_manager/configurationmanager.hpp b/score/mw/launch_manager/configuration/configuration_manager.hpp similarity index 98% rename from src/launch_manager_daemon/src/configuration_manager/configurationmanager.hpp rename to score/mw/launch_manager/configuration/configuration_manager.hpp index e0f80ffcc..57ee09627 100644 --- a/src/launch_manager_daemon/src/configuration_manager/configurationmanager.hpp +++ b/score/mw/launch_manager/configuration/configuration_manager.hpp @@ -21,15 +21,13 @@ #include #include #include -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" +#include "score/mw/launch_manager/common/constants.hpp" +#include "score/mw/launch_manager/common/process_group_state_id.hpp" +#include "score/mw/launch_manager/process_group_manager/iprocess.hpp" +#include "score/mw/launch_manager/process_state_client/posix_process.hpp" -#include -#include -#include -#include -#include - -#include "lm_flatcfg_generated.h" +#include "score/mw/launch_manager/configuration/lm_flatcfg_generated.h" namespace score { diff --git a/src/launch_manager_daemon/config/lm_flatcfg.fbs b/score/mw/launch_manager/configuration/lm_flatcfg.fbs similarity index 100% rename from src/launch_manager_daemon/config/lm_flatcfg.fbs rename to score/mw/launch_manager/configuration/lm_flatcfg.fbs diff --git a/src/launch_manager_daemon/config/lm_flatcfg_generated.h b/score/mw/launch_manager/configuration/lm_flatcfg_generated.h similarity index 100% rename from src/launch_manager_daemon/config/lm_flatcfg_generated.h rename to score/mw/launch_manager/configuration/lm_flatcfg_generated.h diff --git a/score/mw/launch_manager/control/BUILD b/score/mw/launch_manager/control/BUILD new file mode 100644 index 000000000..97ac07213 --- /dev/null +++ b/score/mw/launch_manager/control/BUILD @@ -0,0 +1,30 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "control_client_channel", + srcs = [ + "control_client_channel.cpp", + ], + hdrs = [ + "control_client_channel.hpp", + ], + visibility = ["//score:__subpackages__"], + deps = [ + "//score/mw/launch_manager/common:constants", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/common:process_group_state_id", + "//score/mw/launch_manager/osal:ipc_comms", + ], +) diff --git a/src/launch_manager_daemon/common/src/internal/controlclientchannel.cpp b/score/mw/launch_manager/control/control_client_channel.cpp similarity index 98% rename from src/launch_manager_daemon/common/src/internal/controlclientchannel.cpp rename to score/mw/launch_manager/control/control_client_channel.cpp index 1d5d39904..f9d294333 100644 --- a/src/launch_manager_daemon/common/src/internal/controlclientchannel.cpp +++ b/score/mw/launch_manager/control/control_client_channel.cpp @@ -12,12 +12,13 @@ ********************************************************************************/ #include - -#include -#include #include #include +#include "control_client_channel.hpp" +#include "score/mw/launch_manager/common/constants.hpp" +#include "score/mw/launch_manager/common/log.hpp" + namespace score { diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/controlclientchannel.hpp b/score/mw/launch_manager/control/control_client_channel.hpp similarity index 99% rename from src/launch_manager_daemon/common/include/score/lcm/internal/controlclientchannel.hpp rename to score/mw/launch_manager/control/control_client_channel.hpp index fb58c5a99..5d289683e 100644 --- a/src/launch_manager_daemon/common/include/score/lcm/internal/controlclientchannel.hpp +++ b/score/mw/launch_manager/control/control_client_channel.hpp @@ -17,11 +17,12 @@ #include #include -#include -#include #include #include +#include "score/mw/launch_manager/common/process_group_state_id.hpp" +#include "score/mw/launch_manager/osal/ipc_comms.hpp" + namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/src/main/main.cpp b/score/mw/launch_manager/main.cpp similarity index 89% rename from src/launch_manager_daemon/src/main/main.cpp rename to score/mw/launch_manager/main.cpp index 3d70a3e97..25babbb88 100644 --- a/src/launch_manager_daemon/src/main/main.cpp +++ b/score/mw/launch_manager/main.cpp @@ -15,14 +15,14 @@ #include #include -#include +#include "score/mw/launch_manager/common/log.hpp" -#include -#include -#include -#include -#include -#include +#include "score/mw/launch_manager/process_group_manager/alive_monitor_thread.hpp" +#include "score/mw/launch_manager/process_group_manager/process_group_manager.hpp" +#include "score/mw/launch_manager/process_state_client/process_state_notifier.hpp" +#include "score/mw/launch_manager/recovery_client/recovery_client.hpp" +#include "score/mw/launch_manager/alive_monitor/details/daemon/AliveMonitorImpl.hpp" +#include "score/mw/launch_manager/alive_monitor/details/watchdog/WatchdogImpl.hpp" using namespace std; using namespace score::lcm::internal; @@ -131,8 +131,8 @@ int main([[maybe_unused]] int argc, [[maybe_unused]] const char* argv[]) std::unique_ptr watchdog{ std::make_unique()}; auto process_state_notifier = std::make_unique(); - std::unique_ptr healthMonitor{ - std::make_unique( + std::unique_ptr healthMonitor{ + std::make_unique( recoveryClient, std::move(watchdog), process_state_notifier->constructReceiver())}; std::unique_ptr aliveMonitorThread{ std::make_unique(std::move(healthMonitor))}; diff --git a/score/mw/launch_manager/osal/BUILD b/score/mw/launch_manager/osal/BUILD new file mode 100644 index 000000000..b3b0842ed --- /dev/null +++ b/score/mw/launch_manager/osal/BUILD @@ -0,0 +1,97 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +cc_library( + name = "return_types", + hdrs = ["return_types.hpp"], + visibility = ["//score:__subpackages__"], +) + +cc_library( + name = "semaphore", + srcs = ["details/posix/semaphore.cpp"], + hdrs = ["semaphore.hpp"], + visibility = ["//score:__subpackages__"], + deps = [":return_types"], +) + +cc_library( + name = "sys_exit", + srcs = ["details/posix/sys_exit.cpp"], + hdrs = ["sys_exit.hpp"], + visibility = ["//score:__subpackages__"], +) + +cc_library( + name = "num_cores", + srcs = select({ + "@platforms//os:linux": ["details/linux/num_cores.cpp"], + "@platforms//os:qnx": ["details/qnx/num_cores.cpp"], + }), + hdrs = ["num_cores.hpp"], + visibility = ["//score:__subpackages__"], +) + +cc_library( + name = "security_policy", + srcs = select({ + "@platforms//os:linux": ["details/linux/security_policy.cpp"], + "@platforms//os:qnx": ["details/qnx/security_policy.cpp"], + }), + hdrs = ["security_policy.hpp"], + visibility = ["//score:__subpackages__"], +) + +cc_library( + name = "set_affinity", + srcs = select({ + "@platforms//os:linux": ["details/linux/set_affinity.cpp"], + "@platforms//os:qnx": ["details/qnx/set_affinity.cpp"], + }), + hdrs = ["set_affinity.hpp"], + visibility = ["//score:__subpackages__"], +) + +cc_library( + name = "set_groups", + srcs = select({ + "@platforms//os:linux": ["details/linux/set_groups.cpp"], + "@platforms//os:qnx": ["details/qnx/set_groups.cpp"], + }), + hdrs = ["set_groups.hpp"], + visibility = ["//score:__subpackages__"], +) + +cc_library( + name = "ipc_comms", + hdrs = ["ipc_comms.hpp"], + visibility = ["//visibility:public"], + deps = [ + ":semaphore", + "//score/mw/launch_manager/common:log", + ], +) + +cc_library( + name = "osal", + visibility = ["//score:__subpackages__"], + deps = [ + ":ipc_comms", + ":num_cores", + ":return_types", + ":security_policy", + ":semaphore", + ":set_affinity", + ":set_groups", + ":sys_exit", + ], +) diff --git a/src/launch_manager_daemon/common/src/internal/osal/linux/numcores.cpp b/score/mw/launch_manager/osal/details/linux/num_cores.cpp similarity index 94% rename from src/launch_manager_daemon/common/src/internal/osal/linux/numcores.cpp rename to score/mw/launch_manager/osal/details/linux/num_cores.cpp index b18429258..80c299d53 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/linux/numcores.cpp +++ b/score/mw/launch_manager/osal/details/linux/num_cores.cpp @@ -13,7 +13,7 @@ #include -#include +#include "score/mw/launch_manager/osal/num_cores.hpp" namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/common/src/internal/osal/linux/securitypolicy.cpp b/score/mw/launch_manager/osal/details/linux/security_policy.cpp similarity index 93% rename from src/launch_manager_daemon/common/src/internal/osal/linux/securitypolicy.cpp rename to score/mw/launch_manager/osal/details/linux/security_policy.cpp index 1a5b48a6c..c239f3978 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/linux/securitypolicy.cpp +++ b/score/mw/launch_manager/osal/details/linux/security_policy.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include +#include "score/mw/launch_manager/osal/security_policy.hpp" namespace score { diff --git a/src/launch_manager_daemon/common/src/internal/osal/linux/setaffinity.cpp b/score/mw/launch_manager/osal/details/linux/set_affinity.cpp similarity index 96% rename from src/launch_manager_daemon/common/src/internal/osal/linux/setaffinity.cpp rename to score/mw/launch_manager/osal/details/linux/set_affinity.cpp index 08e251759..9b7fee75d 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/linux/setaffinity.cpp +++ b/score/mw/launch_manager/osal/details/linux/set_affinity.cpp @@ -13,7 +13,7 @@ #include -#include +#include "score/mw/launch_manager/osal/set_affinity.hpp" #include namespace score { diff --git a/src/launch_manager_daemon/common/src/internal/osal/linux/setgroups.cpp b/score/mw/launch_manager/osal/details/linux/set_groups.cpp similarity index 94% rename from src/launch_manager_daemon/common/src/internal/osal/linux/setgroups.cpp rename to score/mw/launch_manager/osal/details/linux/set_groups.cpp index f6e0c14f1..ca9fd5059 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/linux/setgroups.cpp +++ b/score/mw/launch_manager/osal/details/linux/set_groups.cpp @@ -14,7 +14,7 @@ #include #include -#include +#include "score/mw/launch_manager/osal/set_groups.hpp" namespace score { diff --git a/src/launch_manager_daemon/common/src/internal/osal/posix/semaphore.cpp b/score/mw/launch_manager/osal/details/posix/semaphore.cpp similarity index 97% rename from src/launch_manager_daemon/common/src/internal/osal/posix/semaphore.cpp rename to score/mw/launch_manager/osal/details/posix/semaphore.cpp index 4359700cf..854f6c173 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/posix/semaphore.cpp +++ b/score/mw/launch_manager/osal/details/posix/semaphore.cpp @@ -11,11 +11,12 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include #include #include #include +#include "score/mw/launch_manager/osal/semaphore.hpp" + namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/common/src/internal/osal/posix/sysexit.cpp b/score/mw/launch_manager/osal/details/posix/sys_exit.cpp similarity index 100% rename from src/launch_manager_daemon/common/src/internal/osal/posix/sysexit.cpp rename to score/mw/launch_manager/osal/details/posix/sys_exit.cpp diff --git a/src/launch_manager_daemon/common/src/internal/osal/qnx/numcores.cpp b/score/mw/launch_manager/osal/details/qnx/num_cores.cpp similarity index 94% rename from src/launch_manager_daemon/common/src/internal/osal/qnx/numcores.cpp rename to score/mw/launch_manager/osal/details/qnx/num_cores.cpp index d10e8f2ce..aaabf014c 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/qnx/numcores.cpp +++ b/score/mw/launch_manager/osal/details/qnx/num_cores.cpp @@ -13,7 +13,7 @@ #include -#include +#include "score/mw/launch_manager/osal/num_cores.hpp" namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/common/src/internal/osal/qnx/securitypolicy.cpp b/score/mw/launch_manager/osal/details/qnx/security_policy.cpp similarity index 95% rename from src/launch_manager_daemon/common/src/internal/osal/qnx/securitypolicy.cpp rename to score/mw/launch_manager/osal/details/qnx/security_policy.cpp index f6de0af9b..510d8df1c 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/qnx/securitypolicy.cpp +++ b/score/mw/launch_manager/osal/details/qnx/security_policy.cpp @@ -12,7 +12,7 @@ ********************************************************************************/ #include -#include +#include "score/mw/launch_manager/osal/security_policy.hpp" #include namespace score { diff --git a/src/launch_manager_daemon/common/src/internal/osal/qnx/setaffinity.cpp b/score/mw/launch_manager/osal/details/qnx/set_affinity.cpp similarity index 94% rename from src/launch_manager_daemon/common/src/internal/osal/qnx/setaffinity.cpp rename to score/mw/launch_manager/osal/details/qnx/set_affinity.cpp index 332bdaba1..22751c63f 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/qnx/setaffinity.cpp +++ b/score/mw/launch_manager/osal/details/qnx/set_affinity.cpp @@ -12,7 +12,7 @@ ********************************************************************************/ #include -#include +#include "score/mw/launch_manager/osal/set_affinity.hpp" namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/common/src/internal/osal/qnx/setgroups.cpp b/score/mw/launch_manager/osal/details/qnx/set_groups.cpp similarity index 94% rename from src/launch_manager_daemon/common/src/internal/osal/qnx/setgroups.cpp rename to score/mw/launch_manager/osal/details/qnx/set_groups.cpp index a00bd6415..393b31152 100644 --- a/src/launch_manager_daemon/common/src/internal/osal/qnx/setgroups.cpp +++ b/score/mw/launch_manager/osal/details/qnx/set_groups.cpp @@ -12,7 +12,7 @@ ********************************************************************************/ #include -#include +#include "score/mw/launch_manager/osal/set_groups.hpp" namespace score { diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalipccomms.hpp b/score/mw/launch_manager/osal/ipc_comms.hpp similarity index 99% rename from src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalipccomms.hpp rename to score/mw/launch_manager/osal/ipc_comms.hpp index 1b99ec051..725dc62bf 100644 --- a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalipccomms.hpp +++ b/score/mw/launch_manager/osal/ipc_comms.hpp @@ -15,10 +15,9 @@ #define OSAL_IPC_COMMS_HPP_INCLUDED #include - -#include #include +#include "score/mw/launch_manager/common/log.hpp" #include "semaphore.hpp" namespace score diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalnumcores.hpp b/score/mw/launch_manager/osal/num_cores.hpp similarity index 100% rename from src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalnumcores.hpp rename to score/mw/launch_manager/osal/num_cores.hpp diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalreturntypes.hpp b/score/mw/launch_manager/osal/return_types.hpp similarity index 99% rename from src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalreturntypes.hpp rename to score/mw/launch_manager/osal/return_types.hpp index cc0cf82a0..796b3191b 100644 --- a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/osalreturntypes.hpp +++ b/score/mw/launch_manager/osal/return_types.hpp @@ -16,7 +16,6 @@ #define OSAL_ERROR_TYPES_HPP_INCLUDED #include - #include namespace score { diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/securitypolicy.hpp b/score/mw/launch_manager/osal/security_policy.hpp similarity index 100% rename from src/launch_manager_daemon/common/include/score/lcm/internal/osal/securitypolicy.hpp rename to score/mw/launch_manager/osal/security_policy.hpp diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/semaphore.hpp b/score/mw/launch_manager/osal/semaphore.hpp similarity index 99% rename from src/launch_manager_daemon/common/include/score/lcm/internal/osal/semaphore.hpp rename to score/mw/launch_manager/osal/semaphore.hpp index 381e9f46e..213127a7e 100644 --- a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/semaphore.hpp +++ b/score/mw/launch_manager/osal/semaphore.hpp @@ -16,10 +16,9 @@ #define SEMAPHORE_HPP_INCLUDED #include - #include -#include "osalreturntypes.hpp" +#include "return_types.hpp" namespace score { diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/setaffinity.hpp b/score/mw/launch_manager/osal/set_affinity.hpp similarity index 100% rename from src/launch_manager_daemon/common/include/score/lcm/internal/osal/setaffinity.hpp rename to score/mw/launch_manager/osal/set_affinity.hpp diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/setgroups.hpp b/score/mw/launch_manager/osal/set_groups.hpp similarity index 100% rename from src/launch_manager_daemon/common/include/score/lcm/internal/osal/setgroups.hpp rename to score/mw/launch_manager/osal/set_groups.hpp diff --git a/src/launch_manager_daemon/common/include/score/lcm/internal/osal/sysexit.hpp b/score/mw/launch_manager/osal/sys_exit.hpp similarity index 100% rename from src/launch_manager_daemon/common/include/score/lcm/internal/osal/sysexit.hpp rename to score/mw/launch_manager/osal/sys_exit.hpp diff --git a/score/mw/launch_manager/process_group_manager/BUILD b/score/mw/launch_manager/process_group_manager/BUILD new file mode 100644 index 000000000..3989e6c2b --- /dev/null +++ b/score/mw/launch_manager/process_group_manager/BUILD @@ -0,0 +1,74 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "iprocess", + hdrs = ["iprocess.hpp"], + visibility = ["//score:__subpackages__"], + deps = [ + "//score/mw/launch_manager/common:constants", + "//score/mw/launch_manager/osal:ipc_comms", + ], +) + +cc_library( + name = "ialive_monitor_thread", + hdrs = ["ialive_monitor_thread.hpp"], + visibility = ["//score:__subpackages__"], +) + +cc_library( + name = "alive_monitor_thread", + srcs = ["alive_monitor_thread.cpp"], + hdrs = ["alive_monitor_thread.hpp"], + visibility = ["//score:__subpackages__"], + deps = [ + ":ialive_monitor_thread", + "//score/mw/launch_manager/alive_monitor", + ], +) + +# Header-only target for process_group_manager.hpp; used by details:process_group_manager_impl +# to break the circular header dependency without creating a Bazel cycle. +cc_library( + name = "process_group_manager_hdrs", + hdrs = ["process_group_manager.hpp"], + visibility = ["//score/mw/launch_manager/process_group_manager/details:__pkg__"], + deps = [ + ":ialive_monitor_thread", + ":iprocess", + "//score/mw/launch_manager/common:identifier_hash", + "//score/mw/launch_manager/common/concurrency:mpmc_concurrent_queue", + "//score/mw/launch_manager/common/concurrency:thread_pool", + "//score/mw/launch_manager/configuration:configuration_manager", + "//score/mw/launch_manager/control:control_client_channel", + "//score/mw/launch_manager/osal:ipc_comms", + "//score/mw/launch_manager/process_group_manager/details:graph", + "//score/mw/launch_manager/process_group_manager/details:os_handler", + "//score/mw/launch_manager/process_group_manager/details:process_info_node", + "//score/mw/launch_manager/process_group_manager/details:safe_process_map", + "//score/mw/launch_manager/process_state_client:iprocess_state_notifier", + "//score/mw/launch_manager/recovery_client", + "@score_baselibs//score/language/futurecpp", + ], +) + +cc_library( + name = "process_group_manager", + visibility = ["//score:__subpackages__"], + deps = [ + ":process_group_manager_hdrs", + "//score/mw/launch_manager/process_group_manager/details:process_group_manager_impl", + ], +) diff --git a/src/launch_manager_daemon/src/process_group_manager/alive_monitor_thread.cpp b/score/mw/launch_manager/process_group_manager/alive_monitor_thread.cpp similarity index 95% rename from src/launch_manager_daemon/src/process_group_manager/alive_monitor_thread.cpp rename to score/mw/launch_manager/process_group_manager/alive_monitor_thread.cpp index 3d765f916..37d9da51a 100644 --- a/src/launch_manager_daemon/src/process_group_manager/alive_monitor_thread.cpp +++ b/score/mw/launch_manager/process_group_manager/alive_monitor_thread.cpp @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "alive_monitor_thread.hpp" +#include "score/mw/launch_manager/process_group_manager/alive_monitor_thread.hpp" namespace score { @@ -19,7 +19,7 @@ namespace lcm namespace internal { -AliveMonitorThread::AliveMonitorThread(std::unique_ptr health_monitor) +AliveMonitorThread::AliveMonitorThread(std::unique_ptr health_monitor) : m_health_monitor(std::move(health_monitor)) { } diff --git a/src/launch_manager_daemon/src/process_group_manager/alive_monitor_thread.hpp b/score/mw/launch_manager/process_group_manager/alive_monitor_thread.hpp similarity index 84% rename from src/launch_manager_daemon/src/process_group_manager/alive_monitor_thread.hpp rename to score/mw/launch_manager/process_group_manager/alive_monitor_thread.hpp index 3a124ff10..807abc54a 100644 --- a/src/launch_manager_daemon/src/process_group_manager/alive_monitor_thread.hpp +++ b/score/mw/launch_manager/process_group_manager/alive_monitor_thread.hpp @@ -13,11 +13,11 @@ #ifndef SCORE_LCM_ALIVE_MONITOR_THREAD_HPP_INCLUDED #define SCORE_LCM_ALIVE_MONITOR_THREAD_HPP_INCLUDED -#include +#include "score/mw/launch_manager/alive_monitor/details/daemon/IAliveMonitor.hpp" #include #include -#include +#include "score/mw/launch_manager/process_group_manager/ialive_monitor_thread.hpp" namespace score { @@ -30,7 +30,7 @@ namespace internal class AliveMonitorThread final : public IAliveMonitorThread { public: - AliveMonitorThread(std::unique_ptr health_monitor); + AliveMonitorThread(std::unique_ptr health_monitor); /// @brief Starts the Alive Monitor thread. /// @return true if the Alive Monitor started successfully, false otherwise. @@ -44,7 +44,7 @@ class AliveMonitorThread final : public IAliveMonitorThread const score::lcm::saf::daemon::EInitCode f_init_result); void waitForInitializationCompleted(score::lcm::saf::daemon::EInitCode& f_init_status_r); - std::unique_ptr m_health_monitor{nullptr}; + std::unique_ptr m_health_monitor{nullptr}; std::thread alive_monitor_thread_{}; std::atomic_bool stop_thread_{false}; std::mutex m_initialization_mutex{}; diff --git a/score/mw/launch_manager/process_group_manager/details/BUILD b/score/mw/launch_manager/process_group_manager/details/BUILD new file mode 100644 index 000000000..53cca1ab4 --- /dev/null +++ b/score/mw/launch_manager/process_group_manager/details/BUILD @@ -0,0 +1,109 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "process_info_node", + hdrs = ["process_info_node.hpp"], + visibility = ["//score/mw/launch_manager/process_group_manager:__pkg__"], + deps = [ + "//score/mw/launch_manager/configuration:configuration_manager", + "//score/mw/launch_manager/control:control_client_channel", + "//score/mw/launch_manager/osal:ipc_comms", + "//score/mw/launch_manager/osal:semaphore", + "//score/mw/launch_manager/process_group_manager:iprocess", + ], +) + +cc_library( + name = "graph", + hdrs = ["graph.hpp"], + visibility = ["//score/mw/launch_manager/process_group_manager:__pkg__"], + deps = [ + ":process_info_node", + "//score/mw/launch_manager/common:identifier_hash", + "//score/mw/launch_manager/configuration:configuration_manager", + "//score/mw/launch_manager/control:control_client_channel", + "//score/mw/launch_manager/osal:semaphore", + "//score/mw/launch_manager/process_group_manager:iprocess", + ], +) + +cc_library( + name = "safe_process_map", + srcs = ["safe_process_map.cpp"], + hdrs = ["safe_process_map.hpp"], + visibility = ["//score/mw/launch_manager/process_group_manager:__pkg__"], + deps = [ + ":process_info_node", + "//score/mw/launch_manager/process_group_manager:iprocess", + ], +) + +cc_library( + name = "os_handler", + srcs = ["os_handler.cpp"], + hdrs = ["os_handler.hpp"], + visibility = ["//score/mw/launch_manager/process_group_manager:__pkg__"], + deps = [ + ":safe_process_map", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/process_group_manager:iprocess", + ], +) + +cc_library( + name = "process_launcher", + srcs = ["process_launcher.cpp"], + visibility = ["//score/mw/launch_manager/process_group_manager:__pkg__"], + deps = [ + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/control:control_client_channel", + "//score/mw/launch_manager/osal:ipc_comms", + "//score/mw/launch_manager/osal:security_policy", + "//score/mw/launch_manager/osal:set_affinity", + "//score/mw/launch_manager/osal:set_groups", + "//score/mw/launch_manager/osal:sys_exit", + "//score/mw/launch_manager/process_group_manager:iprocess", + ], +) + +# graph.cpp, process_info_node.cpp, and process_group_manager.cpp include +# process_group_manager.hpp which in turn includes graph.hpp and process_info_node.hpp — +# circular at link time, so all three must share a target. +cc_library( + name = "process_group_manager_impl", + srcs = [ + "graph.cpp", + "process_group_manager.cpp", + "process_info_node.cpp", + ], + visibility = ["//score/mw/launch_manager/process_group_manager:__pkg__"], + deps = [ + ":graph", + ":os_handler", + ":process_info_node", + ":process_launcher", + ":safe_process_map", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/common/concurrency:mpmc_concurrent_queue", + "//score/mw/launch_manager/common/concurrency:thread_pool", + "//score/mw/launch_manager/configuration:configuration_manager", + "//score/mw/launch_manager/osal:ipc_comms", + "//score/mw/launch_manager/osal:semaphore", + "//score/mw/launch_manager/process_group_manager:process_group_manager_hdrs", + "//score/mw/launch_manager/process_state_client", + "//score/mw/launch_manager/recovery_client", + "@score_baselibs//score/language/futurecpp", + ], +) diff --git a/src/launch_manager_daemon/src/process_group_manager/graph.cpp b/score/mw/launch_manager/process_group_manager/details/graph.cpp similarity index 98% rename from src/launch_manager_daemon/src/process_group_manager/graph.cpp rename to score/mw/launch_manager/process_group_manager/details/graph.cpp index 8f3edc95c..2750ea5f2 100644 --- a/src/launch_manager_daemon/src/process_group_manager/graph.cpp +++ b/score/mw/launch_manager/process_group_manager/details/graph.cpp @@ -15,10 +15,10 @@ #include -#include -#include -#include -#include +#include "score/mw/launch_manager/process_group_manager/details/graph.hpp" +#include "score/mw/launch_manager/process_group_manager/process_group_manager.hpp" +#include "score/mw/launch_manager/process_group_manager/details/process_info_node.hpp" +#include "score/mw/launch_manager/common/log.hpp" namespace score { diff --git a/src/launch_manager_daemon/src/process_group_manager/graph.hpp b/score/mw/launch_manager/process_group_manager/details/graph.hpp similarity index 98% rename from src/launch_manager_daemon/src/process_group_manager/graph.hpp rename to score/mw/launch_manager/process_group_manager/details/graph.hpp index ce320e870..234cab635 100644 --- a/src/launch_manager_daemon/src/process_group_manager/graph.hpp +++ b/score/mw/launch_manager/process_group_manager/details/graph.hpp @@ -22,12 +22,12 @@ #include #include -#include -#include -#include -#include -#include -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" +#include "score/mw/launch_manager/osal/semaphore.hpp" +#include "score/mw/launch_manager/control/control_client_channel.hpp" +#include "score/mw/launch_manager/process_group_manager/details/process_info_node.hpp" +#include "score/mw/launch_manager/process_group_manager/iprocess.hpp" +#include "score/mw/launch_manager/configuration/configuration_manager.hpp" namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/src/process_group_manager/oshandler.cpp b/score/mw/launch_manager/process_group_manager/details/os_handler.cpp similarity index 94% rename from src/launch_manager_daemon/src/process_group_manager/oshandler.cpp rename to score/mw/launch_manager/process_group_manager/details/os_handler.cpp index 523542192..4a86ca128 100644 --- a/src/launch_manager_daemon/src/process_group_manager/oshandler.cpp +++ b/score/mw/launch_manager/process_group_manager/details/os_handler.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include +#include "score/mw/launch_manager/process_group_manager/details/os_handler.hpp" namespace score { diff --git a/src/launch_manager_daemon/src/process_group_manager/oshandler.hpp b/score/mw/launch_manager/process_group_manager/details/os_handler.hpp similarity index 96% rename from src/launch_manager_daemon/src/process_group_manager/oshandler.hpp rename to score/mw/launch_manager/process_group_manager/details/os_handler.hpp index 728e510be..a626e55fc 100644 --- a/src/launch_manager_daemon/src/process_group_manager/oshandler.hpp +++ b/score/mw/launch_manager/process_group_manager/details/os_handler.hpp @@ -18,8 +18,8 @@ #include #include -#include -#include +#include "score/mw/launch_manager/process_group_manager/iprocess.hpp" +#include "score/mw/launch_manager/process_group_manager/details/safe_process_map.hpp" namespace score { diff --git a/src/launch_manager_daemon/src/process_group_manager/processgroupmanager.cpp b/score/mw/launch_manager/process_group_manager/details/process_group_manager.cpp similarity index 98% rename from src/launch_manager_daemon/src/process_group_manager/processgroupmanager.cpp rename to score/mw/launch_manager/process_group_manager/details/process_group_manager.cpp index 78998b26a..db7bc1cee 100644 --- a/src/launch_manager_daemon/src/process_group_manager/processgroupmanager.cpp +++ b/score/mw/launch_manager/process_group_manager/details/process_group_manager.cpp @@ -16,9 +16,9 @@ #include #include -#include -#include -#include +#include "score/mw/launch_manager/process_group_manager/ialive_monitor_thread.hpp" +#include "score/mw/launch_manager/process_group_manager/process_group_manager.hpp" +#include "score/mw/launch_manager/common/log.hpp" namespace score::lcm::internal { @@ -236,7 +236,7 @@ inline void ProcessGroupManager::createProcessComponentsObjects() worker_jobs_ = std::make_shared(); LM_LOG_DEBUG() << "Creating worker threads..."; - worker_threads_ = std::make_unique>( + worker_threads_ = std::make_unique>( worker_jobs_, static_cast(ProcessLimits::kNumWorkerThreads)); } diff --git a/src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp b/score/mw/launch_manager/process_group_manager/details/process_info_node.cpp similarity index 99% rename from src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp rename to score/mw/launch_manager/process_group_manager/details/process_info_node.cpp index f86b35723..2f2f94ac4 100644 --- a/src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp +++ b/score/mw/launch_manager/process_group_manager/details/process_info_node.cpp @@ -11,11 +11,11 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "processinfonode.hpp" +#include "process_info_node.hpp" #include "graph.hpp" -#include "processgroupmanager.hpp" -#include -#include +#include "score/mw/launch_manager/process_group_manager/process_group_manager.hpp" +#include "score/mw/launch_manager/common/log.hpp" +#include "score/mw/launch_manager/osal/ipc_comms.hpp" namespace score { diff --git a/src/launch_manager_daemon/src/process_group_manager/processinfonode.hpp b/score/mw/launch_manager/process_group_manager/details/process_info_node.hpp similarity index 99% rename from src/launch_manager_daemon/src/process_group_manager/processinfonode.hpp rename to score/mw/launch_manager/process_group_manager/details/process_info_node.hpp index faa916416..4a89444bb 100644 --- a/src/launch_manager_daemon/src/process_group_manager/processinfonode.hpp +++ b/score/mw/launch_manager/process_group_manager/details/process_info_node.hpp @@ -15,8 +15,8 @@ #define _INCLUDED_PROCESSINFONODE_ #include -#include -#include +#include "score/mw/launch_manager/configuration/configuration_manager.hpp" +#include "score/mw/launch_manager/control/control_client_channel.hpp" namespace score { diff --git a/src/launch_manager_daemon/src/process_group_manager/processlauncher.cpp b/score/mw/launch_manager/process_group_manager/details/process_launcher.cpp similarity index 97% rename from src/launch_manager_daemon/src/process_group_manager/processlauncher.cpp rename to score/mw/launch_manager/process_group_manager/details/process_launcher.cpp index b2a0b29c2..1b7369578 100644 --- a/src/launch_manager_daemon/src/process_group_manager/processlauncher.cpp +++ b/score/mw/launch_manager/process_group_manager/details/process_launcher.cpp @@ -22,14 +22,14 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include "score/mw/launch_manager/process_group_manager/iprocess.hpp" +#include "score/mw/launch_manager/control/control_client_channel.hpp" +#include "score/mw/launch_manager/common/log.hpp" +#include "score/mw/launch_manager/osal/ipc_comms.hpp" +#include "score/mw/launch_manager/osal/security_policy.hpp" +#include "score/mw/launch_manager/osal/set_affinity.hpp" +#include "score/mw/launch_manager/osal/set_groups.hpp" +#include "score/mw/launch_manager/osal/sys_exit.hpp" #include #include #include diff --git a/src/launch_manager_daemon/src/process_group_manager/safeprocessmap.cpp b/score/mw/launch_manager/process_group_manager/details/safe_process_map.cpp similarity index 97% rename from src/launch_manager_daemon/src/process_group_manager/safeprocessmap.cpp rename to score/mw/launch_manager/process_group_manager/details/safe_process_map.cpp index 7aefb4578..fa7ca199e 100644 --- a/src/launch_manager_daemon/src/process_group_manager/safeprocessmap.cpp +++ b/score/mw/launch_manager/process_group_manager/details/safe_process_map.cpp @@ -14,8 +14,8 @@ #include #include #include -#include -#include +#include "score/mw/launch_manager/process_group_manager/details/safe_process_map.hpp" +#include "score/mw/launch_manager/process_group_manager/details/process_info_node.hpp" namespace score { diff --git a/src/launch_manager_daemon/src/process_group_manager/safeprocessmap.hpp b/score/mw/launch_manager/process_group_manager/details/safe_process_map.hpp similarity index 98% rename from src/launch_manager_daemon/src/process_group_manager/safeprocessmap.hpp rename to score/mw/launch_manager/process_group_manager/details/safe_process_map.hpp index 3922978e5..44cb2a1ad 100644 --- a/src/launch_manager_daemon/src/process_group_manager/safeprocessmap.hpp +++ b/score/mw/launch_manager/process_group_manager/details/safe_process_map.hpp @@ -17,8 +17,8 @@ #include #include -#include -#include +#include "score/mw/launch_manager/process_group_manager/iprocess.hpp" +#include "score/mw/launch_manager/process_group_manager/details/process_info_node.hpp" namespace score { diff --git a/src/launch_manager_daemon/src/process_group_manager/ialive_monitor_thread.hpp b/score/mw/launch_manager/process_group_manager/ialive_monitor_thread.hpp similarity index 100% rename from src/launch_manager_daemon/src/process_group_manager/ialive_monitor_thread.hpp rename to score/mw/launch_manager/process_group_manager/ialive_monitor_thread.hpp diff --git a/src/launch_manager_daemon/src/process_group_manager/iprocess.hpp b/score/mw/launch_manager/process_group_manager/iprocess.hpp similarity index 98% rename from src/launch_manager_daemon/src/process_group_manager/iprocess.hpp rename to score/mw/launch_manager/process_group_manager/iprocess.hpp index b39808c10..50ce8d2ab 100644 --- a/src/launch_manager_daemon/src/process_group_manager/iprocess.hpp +++ b/score/mw/launch_manager/process_group_manager/iprocess.hpp @@ -19,8 +19,8 @@ #include #include -#include -#include +#include "score/mw/launch_manager/common/constants.hpp" +#include "score/mw/launch_manager/osal/ipc_comms.hpp" #include #include diff --git a/src/launch_manager_daemon/src/process_group_manager/processgroupmanager.hpp b/score/mw/launch_manager/process_group_manager/process_group_manager.hpp similarity index 93% rename from src/launch_manager_daemon/src/process_group_manager/processgroupmanager.hpp rename to score/mw/launch_manager/process_group_manager/process_group_manager.hpp index c49830ddd..e42b081a7 100644 --- a/src/launch_manager_daemon/src/process_group_manager/processgroupmanager.hpp +++ b/score/mw/launch_manager/process_group_manager/process_group_manager.hpp @@ -18,20 +18,20 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" +#include "score/mw/launch_manager/control/control_client_channel.hpp" +#include "score/mw/launch_manager/configuration/configuration_manager.hpp" +#include "score/mw/launch_manager/process_group_manager/iprocess.hpp" +#include "score/mw/launch_manager/process_group_manager/details/graph.hpp" +#include "score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue.hpp" +#include "score/mw/launch_manager/process_group_manager/details/os_handler.hpp" +#include "score/mw/launch_manager/process_state_client/iprocess_state_notifier.hpp" +#include "score/mw/launch_manager/process_group_manager/details/process_info_node.hpp" +#include "score/mw/launch_manager/process_group_manager/details/safe_process_map.hpp" +#include "score/mw/launch_manager/common/concurrency/thread_pool.hpp" +#include "score/mw/launch_manager/process_group_manager/ialive_monitor_thread.hpp" +#include "score/mw/launch_manager/recovery_client/recovery_client.hpp" +#include "score/mw/launch_manager/common/constants.hpp" namespace score::lcm::internal { @@ -276,7 +276,7 @@ class ProcessGroupManager final std::shared_ptr process_map_; /// @brief Unique pointer to the worker threads handling ProcessInfoNode jobs. - std::unique_ptr> worker_threads_; + std::unique_ptr> worker_threads_; /// @brief Shared pointer to the job queue for ProcessInfoNode jobs. std::shared_ptr worker_jobs_; diff --git a/score/mw/launch_manager/process_state_client/BUILD b/score/mw/launch_manager/process_state_client/BUILD new file mode 100644 index 000000000..d4e5c8770 --- /dev/null +++ b/score/mw/launch_manager/process_state_client/BUILD @@ -0,0 +1,75 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + +cc_library( + name = "posix_process", + hdrs = ["posix_process.hpp"], + visibility = ["//visibility:public"], + deps = [ + "//score/mw/launch_manager/common:identifier_hash", + ], +) + +cc_library( + name = "iprocess_state_receiver", + hdrs = ["iprocess_state_receiver.hpp"], + visibility = ["//visibility:public"], + deps = [ + ":posix_process", + "//score/mw/lifecycle:error", + "@score_baselibs//score/result", + ], +) + +cc_library( + name = "iprocess_state_notifier", + hdrs = ["iprocess_state_notifier.hpp"], + visibility = ["//visibility:public"], + deps = [ + ":iprocess_state_receiver", + ":posix_process", + ], +) + +cc_library( + name = "process_state_notifier", + srcs = ["process_state_notifier.cpp"], + hdrs = ["process_state_notifier.hpp"], + visibility = ["//visibility:public"], + deps = [ + ":iprocess_state_notifier", + "//externals/ipc_dropin", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/process_state_client/details:process_state_receiver", + ], +) + +cc_library( + name = "process_state_client", + visibility = ["//visibility:public"], + deps = [ + ":process_state_notifier", + "//score/mw/launch_manager/process_state_client/details:process_state_receiver", + ], +) + +cc_test( + name = "process_state_client_ut", + srcs = ["process_state_client_ut.cpp"], + deps = [ + ":process_state_client", + "//score/mw/launch_manager/process_state_client/details:process_state_receiver", + "@googletest//:gtest_main", + ], +) diff --git a/score/mw/launch_manager/process_state_client/details/BUILD b/score/mw/launch_manager/process_state_client/details/BUILD new file mode 100644 index 000000000..2147bf9d7 --- /dev/null +++ b/score/mw/launch_manager/process_state_client/details/BUILD @@ -0,0 +1,25 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "process_state_receiver", + srcs = ["process_state_receiver.cpp"], + hdrs = ["process_state_receiver.hpp"], + visibility = ["//score/mw/launch_manager/process_state_client:__pkg__"], + deps = [ + "//externals/ipc_dropin", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/process_state_client:iprocess_state_receiver", + ], +) diff --git a/src/launch_manager_daemon/process_state_client_lib/src/processstatereceiver.cpp b/score/mw/launch_manager/process_state_client/details/process_state_receiver.cpp similarity index 92% rename from src/launch_manager_daemon/process_state_client_lib/src/processstatereceiver.cpp rename to score/mw/launch_manager/process_state_client/details/process_state_receiver.cpp index 5629f23f7..7ca6fea4b 100644 --- a/src/launch_manager_daemon/process_state_client_lib/src/processstatereceiver.cpp +++ b/score/mw/launch_manager/process_state_client/details/process_state_receiver.cpp @@ -11,8 +11,8 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "score/lcm/processstatereceiver.hpp" -#include "score/lcm/internal/log.hpp" +#include "score/mw/launch_manager/process_state_client/details/process_state_receiver.hpp" +#include "score/mw/launch_manager/common/log.hpp" namespace score { diff --git a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/processstatereceiver.hpp b/score/mw/launch_manager/process_state_client/details/process_state_receiver.hpp similarity index 97% rename from src/launch_manager_daemon/process_state_client_lib/include/score/lcm/processstatereceiver.hpp rename to score/mw/launch_manager/process_state_client/details/process_state_receiver.hpp index 0ed6fc82d..6b349c6d5 100644 --- a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/processstatereceiver.hpp +++ b/score/mw/launch_manager/process_state_client/details/process_state_receiver.hpp @@ -15,7 +15,7 @@ #ifndef PROCESSSTATERECEIVER_HPP_INCLUDED #define PROCESSSTATERECEIVER_HPP_INCLUDED -#include "iprocessstatereceiver.hpp" +#include "score/mw/launch_manager/process_state_client/iprocess_state_receiver.hpp" #include "ipc_dropin/ringbuffer.hpp" namespace score { diff --git a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/iprocessstatenotifier.hpp b/score/mw/launch_manager/process_state_client/iprocess_state_notifier.hpp similarity index 93% rename from src/launch_manager_daemon/process_state_client_lib/include/score/lcm/iprocessstatenotifier.hpp rename to score/mw/launch_manager/process_state_client/iprocess_state_notifier.hpp index 843204cf8..a0200f169 100644 --- a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/iprocessstatenotifier.hpp +++ b/score/mw/launch_manager/process_state_client/iprocess_state_notifier.hpp @@ -13,8 +13,8 @@ #ifndef IPROCESSSTATE_NOTIFIER_HPP_INCLUDED #define IPROCESSSTATE_NOTIFIER_HPP_INCLUDED -#include -#include "iprocessstatereceiver.hpp" +#include "score/mw/launch_manager/process_state_client/posix_process.hpp" +#include "score/mw/launch_manager/process_state_client/iprocess_state_receiver.hpp" namespace score { diff --git a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/iprocessstatereceiver.hpp b/score/mw/launch_manager/process_state_client/iprocess_state_receiver.hpp similarity index 92% rename from src/launch_manager_daemon/process_state_client_lib/include/score/lcm/iprocessstatereceiver.hpp rename to score/mw/launch_manager/process_state_client/iprocess_state_receiver.hpp index d4d7e46d2..9e19075f2 100644 --- a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/iprocessstatereceiver.hpp +++ b/score/mw/launch_manager/process_state_client/iprocess_state_receiver.hpp @@ -14,11 +14,11 @@ #define IPROCESSSTATERECEIVER_HPP_INCLUDED #include "score/result/result.h" -#include +#include "score/mw/lifecycle/execution_error.h" #include #include -#include +#include "score/mw/launch_manager/process_state_client/posix_process.hpp" namespace score { diff --git a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/posixprocess.hpp b/score/mw/launch_manager/process_state_client/posix_process.hpp similarity index 98% rename from src/launch_manager_daemon/process_state_client_lib/include/score/lcm/posixprocess.hpp rename to score/mw/launch_manager/process_state_client/posix_process.hpp index ad51f7e09..273d53119 100644 --- a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/posixprocess.hpp +++ b/score/mw/launch_manager/process_state_client/posix_process.hpp @@ -17,7 +17,7 @@ #include #include // for definition of "timespec" -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" namespace score { diff --git a/src/launch_manager_daemon/process_state_client_lib/src/processstateclient_UT.cpp b/score/mw/launch_manager/process_state_client/process_state_client_ut.cpp similarity index 97% rename from src/launch_manager_daemon/process_state_client_lib/src/processstateclient_UT.cpp rename to score/mw/launch_manager/process_state_client/process_state_client_ut.cpp index 1bd8e5321..4e000243a 100644 --- a/src/launch_manager_daemon/process_state_client_lib/src/processstateclient_UT.cpp +++ b/score/mw/launch_manager/process_state_client/process_state_client_ut.cpp @@ -11,8 +11,8 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ #include -#include -#include +#include "score/mw/launch_manager/process_state_client/process_state_notifier.hpp" +#include "score/mw/launch_manager/process_state_client/details/process_state_receiver.hpp" #include using namespace testing; diff --git a/src/launch_manager_daemon/process_state_client_lib/src/processstatenotifier.cpp b/score/mw/launch_manager/process_state_client/process_state_notifier.cpp similarity index 87% rename from src/launch_manager_daemon/process_state_client_lib/src/processstatenotifier.cpp rename to score/mw/launch_manager/process_state_client/process_state_notifier.cpp index 4fe0fe221..e867ffa1d 100644 --- a/src/launch_manager_daemon/process_state_client_lib/src/processstatenotifier.cpp +++ b/score/mw/launch_manager/process_state_client/process_state_notifier.cpp @@ -11,9 +11,9 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include -#include -#include +#include "score/mw/launch_manager/common/log.hpp" +#include "score/mw/launch_manager/process_state_client/process_state_notifier.hpp" +#include "score/mw/launch_manager/process_state_client/details/process_state_receiver.hpp" namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/processstatenotifier.hpp b/score/mw/launch_manager/process_state_client/process_state_notifier.hpp similarity index 97% rename from src/launch_manager_daemon/process_state_client_lib/include/score/lcm/processstatenotifier.hpp rename to score/mw/launch_manager/process_state_client/process_state_notifier.hpp index 500abaf71..a818e4249 100644 --- a/src/launch_manager_daemon/process_state_client_lib/include/score/lcm/processstatenotifier.hpp +++ b/score/mw/launch_manager/process_state_client/process_state_notifier.hpp @@ -15,7 +15,7 @@ #ifndef PROCESSSTATE_NOTIFIER_HPP_INCLUDED #define PROCESSSTATE_NOTIFIER_HPP_INCLUDED -#include "score/lcm/iprocessstatenotifier.hpp" +#include "score/mw/launch_manager/process_state_client/iprocess_state_notifier.hpp" #include "ipc_dropin/ringbuffer.hpp" namespace score { diff --git a/src/launch_manager_daemon/recovery_client_lib/BUILD b/score/mw/launch_manager/recovery_client/BUILD similarity index 64% rename from src/launch_manager_daemon/recovery_client_lib/BUILD rename to score/mw/launch_manager/recovery_client/BUILD index 0e0d6dfbd..ff8ce5e63 100644 --- a/src/launch_manager_daemon/recovery_client_lib/BUILD +++ b/score/mw/launch_manager/recovery_client/BUILD @@ -1,5 +1,5 @@ # ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation +# Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -10,29 +10,29 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + cc_library( name = "recovery_client", srcs = [ - "src/recovery_client.cpp", + "recovery_client.cpp", ], hdrs = [ - "include/score/lcm/irecovery_client.h", - "include/score/lcm/recovery_client.hpp", + "irecovery_client.h", + "recovery_client.hpp", ], - includes = ["include"], visibility = [ - "//src/health_monitor_lib:__subpackages__", - "//src/launch_manager_daemon:__subpackages__", + "//score:__subpackages__", ], deps = [ "//externals/ipc_dropin", - "//src/launch_manager_daemon/common:identifier_hash", + "//score/mw/launch_manager/common:identifier_hash", ], ) cc_test( name = "recovery_client_UT", - srcs = ["src/recovery_client_UT.cpp"], + srcs = ["recovery_client_UT.cpp"], deps = [ ":recovery_client", "@googletest//:gtest_main", diff --git a/src/launch_manager_daemon/recovery_client_lib/include/score/lcm/irecovery_client.h b/score/mw/launch_manager/recovery_client/irecovery_client.h similarity index 97% rename from src/launch_manager_daemon/recovery_client_lib/include/score/lcm/irecovery_client.h rename to score/mw/launch_manager/recovery_client/irecovery_client.h index 46a6a1c54..d78a53014 100644 --- a/src/launch_manager_daemon/recovery_client_lib/include/score/lcm/irecovery_client.h +++ b/score/mw/launch_manager/recovery_client/irecovery_client.h @@ -13,7 +13,7 @@ #ifndef SCORE_LCM_IRECOVERYCLIENT_H_ #define SCORE_LCM_IRECOVERYCLIENT_H_ -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" #include namespace score diff --git a/src/launch_manager_daemon/recovery_client_lib/src/recovery_client.cpp b/score/mw/launch_manager/recovery_client/recovery_client.cpp similarity index 94% rename from src/launch_manager_daemon/recovery_client_lib/src/recovery_client.cpp rename to score/mw/launch_manager/recovery_client/recovery_client.cpp index 628f70e7c..75fb3ba73 100644 --- a/src/launch_manager_daemon/recovery_client_lib/src/recovery_client.cpp +++ b/score/mw/launch_manager/recovery_client/recovery_client.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ #include -#include +#include "score/mw/launch_manager/recovery_client/recovery_client.hpp" namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/recovery_client_lib/include/score/lcm/recovery_client.hpp b/score/mw/launch_manager/recovery_client/recovery_client.hpp similarity index 96% rename from src/launch_manager_daemon/recovery_client_lib/include/score/lcm/recovery_client.hpp rename to score/mw/launch_manager/recovery_client/recovery_client.hpp index d23318be0..70ab5fa5d 100644 --- a/src/launch_manager_daemon/recovery_client_lib/include/score/lcm/recovery_client.hpp +++ b/score/mw/launch_manager/recovery_client/recovery_client.hpp @@ -17,7 +17,7 @@ #include #include "ipc_dropin/ringbuffer.hpp" -#include "score/lcm/irecovery_client.h" +#include "score/mw/launch_manager/recovery_client/irecovery_client.h" namespace score { namespace lcm { diff --git a/src/launch_manager_daemon/recovery_client_lib/src/recovery_client_UT.cpp b/score/mw/launch_manager/recovery_client/recovery_client_UT.cpp similarity index 97% rename from src/launch_manager_daemon/recovery_client_lib/src/recovery_client_UT.cpp rename to score/mw/launch_manager/recovery_client/recovery_client_UT.cpp index 397b69221..c22f3e1a2 100644 --- a/src/launch_manager_daemon/recovery_client_lib/src/recovery_client_UT.cpp +++ b/score/mw/launch_manager/recovery_client/recovery_client_UT.cpp @@ -12,7 +12,7 @@ ********************************************************************************/ #include -#include +#include "score/mw/launch_manager/recovery_client/recovery_client.hpp" namespace score { namespace lcm { diff --git a/score/mw/lifecycle/BUILD b/score/mw/lifecycle/BUILD index 4666a0fb8..223edab61 100644 --- a/score/mw/lifecycle/BUILD +++ b/score/mw/lifecycle/BUILD @@ -1,5 +1,5 @@ # ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation +# Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -10,50 +10,55 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") package(default_visibility = ["//visibility:public"]) alias( - name = "lifecycle_cc", - actual = "//src/lifecycle_client_lib:lifecycle_client_lib", -) - -alias( - name = "lifecycle_rust", - actual = "//src/launch_manager_daemon/lifecycle_client_lib/rust_bindings:lifecycle_client_rs", + name = "alive_cc", + actual = "//score/mw/launch_manager/alive_monitor:am_shared_lib", ) alias( - name = "control_cc", - actual = "//src/control_client_lib:control_client_lib", + name = "alive_rust", + actual = "//score/mw/launch_manager/alive_monitor/rust:monitor_rs", ) alias( - name = "alive_cc", - actual = "//src/launch_manager_daemon/health_monitor_lib:hm_shared_lib", + name = "lifecycle_cc", + actual = "//score/mw/lifecycle/lifecycle_client:lifecycle_client", ) alias( - name = "alive_rust", - actual = "//src/launch_manager_daemon/health_monitor_lib/rust_bindings:monitor_rs", + name = "launch_manager", + actual = "//score/mw/launch_manager:launch_manager", ) alias( - name = "lifecycle", - actual = ":lifecycle_cc", + name = "lifecycle_rust", + actual = "//score/mw/lifecycle/lifecycle_client/rust:lifecycle_client_rs", ) alias( - name = "control", - actual = ":control_cc", + name = "control_cc", + actual = "//score/mw/lifecycle/control_client:control_client", ) -alias( - name = "alive", - actual = ":alive_cc", +cc_library( + name = "error", + hdrs = [ + "execution_error.h", + ], + visibility = ["//visibility:public"], ) -alias( - name = "launch_manager", - actual = "//src/launch_manager_daemon:launch_manager", +cc_library( + name = "error_event", + hdrs = [ + "execution_error_event.h", + ], + deps = [ + ":error", + "//score/mw/launch_manager/common:identifier_hash", + ], ) diff --git a/score/mw/lifecycle/control_client/BUILD b/score/mw/lifecycle/control_client/BUILD new file mode 100644 index 000000000..72fae1434 --- /dev/null +++ b/score/mw/lifecycle/control_client/BUILD @@ -0,0 +1,29 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "control_client", + srcs = [ + "control_client.cpp", + ], + hdrs = [ + "control_client.h", + ], + include_prefix = "score/mw/lifecycle", + visibility = ["//visibility:public"], + deps = [ + "//score/mw/launch_manager/common:identifier_hash", + "//score/mw/lifecycle/control_client/details:control_client_impl", + ], +) diff --git a/src/control_client_lib/src/control_client.cpp b/score/mw/lifecycle/control_client/control_client.cpp similarity index 91% rename from src/control_client_lib/src/control_client.cpp rename to score/mw/lifecycle/control_client/control_client.cpp index c20d9f42d..4ae4914c6 100644 --- a/src/control_client_lib/src/control_client.cpp +++ b/score/mw/lifecycle/control_client/control_client.cpp @@ -13,11 +13,12 @@ #include "score/concurrency/future/interruptible_future.h" #include "score/concurrency/future/interruptible_promise.h" -#include -#include -#include -#include "control_client_impl.hpp" +#include "score/mw/launch_manager/common/identifier_hash.hpp" +#include "score/mw/lifecycle/execution_error_event.h" +#include "score/mw/lifecycle/control_client/details/control_client_impl.hpp" + +#include "control_client.h" namespace score { diff --git a/src/control_client_lib/include/score/lcm/control_client.h b/score/mw/lifecycle/control_client/control_client.h similarity index 97% rename from src/control_client_lib/include/score/lcm/control_client.h rename to score/mw/lifecycle/control_client/control_client.h index 020ed5f91..f79e0c329 100644 --- a/src/control_client_lib/include/score/lcm/control_client.h +++ b/score/mw/lifecycle/control_client/control_client.h @@ -13,16 +13,15 @@ #ifndef CONTROL_CLIENT_H_ #define CONTROL_CLIENT_H_ +#include +#include + #include "score/concurrency/future/interruptible_future.h" #include "score/concurrency/future/interruptible_promise.h" #include "score/result/result.h" -#include -#include -#include "score/lcm/exec_error_domain.h" -namespace score { -namespace lcm { +namespace score::lcm { class ControlClientImpl; @@ -85,10 +84,9 @@ class ControlClient final { private: /// @brief Pointer to implementation (Pimpl), we use this pattern to provide ABI compatibility. std::unique_ptr control_client_impl_; -}; -} // namespace lcm +}; -} // namespace score +} // namespace score::lcm #endif // CONTROL_CLIENT_H_ diff --git a/score/mw/lifecycle/control_client/details/BUILD b/score/mw/lifecycle/control_client/details/BUILD new file mode 100644 index 000000000..f5efb9051 --- /dev/null +++ b/score/mw/lifecycle/control_client/details/BUILD @@ -0,0 +1,33 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "control_client_impl", + srcs = [ + "control_client_impl.cpp", + ], + hdrs = [ + "control_client_impl.hpp", + ], + visibility = ["//score/mw/lifecycle/control_client:__subpackages__"], + deps = [ + "//score/mw/launch_manager/common:constants", + "//score/mw/launch_manager/common:identifier_hash", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/control:control_client_channel", + "//score/mw/launch_manager/osal:semaphore", + "//score/mw/lifecycle:error_event", + "@score_baselibs//score/concurrency/future", + ], +) diff --git a/src/control_client_lib/src/control_client_impl.cpp b/score/mw/lifecycle/control_client/details/control_client_impl.cpp similarity index 98% rename from src/control_client_lib/src/control_client_impl.cpp rename to score/mw/lifecycle/control_client/details/control_client_impl.cpp index feed83c6c..57d49b812 100644 --- a/src/control_client_lib/src/control_client_impl.cpp +++ b/score/mw/lifecycle/control_client/details/control_client_impl.cpp @@ -11,21 +11,16 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include -#include #include -#include -#include #include -#include #include +#include #include "score/concurrency/future/interruptible_future.h" #include "score/concurrency/future/interruptible_promise.h" -#include -#include -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" +#include "score/mw/launch_manager/common/log.hpp" #include "control_client_impl.hpp" // setting the mapping for both ControlClientCode and ExecErrc codes for error handling diff --git a/src/control_client_lib/src/control_client_impl.hpp b/score/mw/lifecycle/control_client/details/control_client_impl.hpp similarity index 97% rename from src/control_client_lib/src/control_client_impl.hpp rename to score/mw/lifecycle/control_client/details/control_client_impl.hpp index d0a89b459..5c4cedf7b 100644 --- a/src/control_client_lib/src/control_client_impl.hpp +++ b/score/mw/lifecycle/control_client/details/control_client_impl.hpp @@ -19,12 +19,12 @@ #include #include -#include -#include -#include -#include -#include -#include "execution_error_event.h" +#include "score/mw/launch_manager/common/constants.hpp" +#include "score/mw/launch_manager/common/identifier_hash.hpp" +#include "score/mw/launch_manager/osal/semaphore.hpp" +#include "score/mw/launch_manager/control/control_client_channel.hpp" +#include "score/mw/lifecycle/execution_error.h" +#include "score/mw/lifecycle/execution_error_event.h" namespace score { diff --git a/src/launch_manager_daemon/common/include/score/lcm/exec_error_domain.h b/score/mw/lifecycle/execution_error.h similarity index 100% rename from src/launch_manager_daemon/common/include/score/lcm/exec_error_domain.h rename to score/mw/lifecycle/execution_error.h diff --git a/src/control_client_lib/src/execution_error_event.h b/score/mw/lifecycle/execution_error_event.h similarity index 95% rename from src/control_client_lib/src/execution_error_event.h rename to score/mw/lifecycle/execution_error_event.h index 4e43dbb5b..f9627e055 100644 --- a/src/control_client_lib/src/execution_error_event.h +++ b/score/mw/lifecycle/execution_error_event.h @@ -16,7 +16,7 @@ #ifndef SCORE_LCM_EXECUTION_ERROR_EVENT_H_ #define SCORE_LCM_EXECUTION_ERROR_EVENT_H_ -#include +#include "score/mw/launch_manager/common/identifier_hash.hpp" namespace score { diff --git a/src/lifecycle_client_lib/BUILD b/score/mw/lifecycle/lifecycle_client/BUILD similarity index 69% rename from src/lifecycle_client_lib/BUILD rename to score/mw/lifecycle/lifecycle_client/BUILD index a30ce94b7..222ea686d 100644 --- a/src/lifecycle_client_lib/BUILD +++ b/score/mw/lifecycle/lifecycle_client/BUILD @@ -10,7 +10,6 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* - load("@rules_cc//cc:defs.bzl", "cc_library") load("@score_baselibs//score/language/safecpp:toolchain_features.bzl", "COMPILER_WARNING_FEATURES") @@ -19,32 +18,47 @@ package( ) cc_library( - name = "lifecycle_client_lib", + name = "lifecycle_client_interface", + hdrs = ["lifecycle_client.h"], + include_prefix = "score/mw/lifecycle", + visibility = ["//score:__subpackages__"], + deps = [ + "//score/mw/lifecycle:error", + "@score_baselibs//score/result", + ], +) + +cc_library( + name = "lifecycle_client", srcs = [ - "src/aasapplicationcontainer.cpp", - "src/application.cpp", - "src/applicationcontext.cpp", - "src/lifecyclemanager.cpp", - "src/runapplication.cpp", + "aasapplicationcontainer.cpp", + "application.cpp", + "applicationcontext.cpp", + "lifecycleclient.cpp", + "lifecyclemanager.cpp", + "runapplication.cpp", ], hdrs = [ - "include/aasapplicationcontainer.h", - "include/application.h", - "include/applicationcontext.h", - "include/lifecyclemanager.h", - "include/runapplication.h", + "aasapplicationcontainer.h", + "application.h", + "applicationcontext.h", + "lifecyclemanager.h", + "runapplication.h", ], copts = select({ "@platforms//os:qnx": [], "@platforms//os:linux": ["-pthread"], }), + include_prefix = "score/mw/lifecycle", linkopts = select({ "@platforms//os:qnx": [], "@platforms//os:linux": ["-lpthread"], }), + strip_include_prefix = "/score/mw/lifecycle/lifecycle_client", visibility = ["//visibility:public"], deps = [ - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + ":lifecycle_client_interface", + "//score/mw/lifecycle/lifecycle_client/details:lifecycle_client_impl", "@score_baselibs//score/language/futurecpp", "@score_baselibs//score/memory:string_literal", "@score_baselibs//score/mw/log", @@ -56,10 +70,10 @@ cc_library( cc_library( name = "applicationcontext", srcs = [ - "src/applicationcontext.cpp", + "applicationcontext.cpp", ], hdrs = [ - "include/applicationcontext.h", + "applicationcontext.h", ], features = COMPILER_WARNING_FEATURES, tags = ["FUSA"], @@ -74,10 +88,10 @@ cc_library( cc_library( name = "application", srcs = [ - "src/application.cpp", + "application.cpp", ], hdrs = [ - "include/application.h", + "application.h", ], features = COMPILER_WARNING_FEATURES, tags = ["FUSA"], @@ -90,12 +104,12 @@ cc_library( cc_library( name = "aasapplicationcontainer", srcs = [ - "src/aasapplicationcontainer.cpp", + "aasapplicationcontainer.cpp", ], hdrs = [ - "include/aasapplicationcontainer.h", - "include/application.h", - "include/lifecyclemanager.h", + "aasapplicationcontainer.h", + "application.h", + "lifecyclemanager.h", ], features = COMPILER_WARNING_FEATURES, deps = [ @@ -106,17 +120,17 @@ cc_library( cc_library( name = "lifecyclemanager", srcs = [ - "src/lifecyclemanager.cpp", + "lifecyclemanager.cpp", ], hdrs = [ - "include/application.h", - "include/lifecyclemanager.h", + "application.h", + "lifecyclemanager.h", ], features = COMPILER_WARNING_FEATURES, tags = ["FUSA"], deps = [ ":application", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + ":lifecycle_client", "@score_baselibs//score/mw/log", "@score_baselibs//score/os:stdlib", "@score_baselibs//score/os/utils:signal", @@ -127,12 +141,12 @@ cc_library( cc_library( name = name, srcs = [ - "src/runapplication.cpp", + "runapplication.cpp", ], hdrs = [ - "include/application.h", - "include/lifecyclemanager.h", - "include/runapplication.h", + "application.h", + "lifecyclemanager.h", + "runapplication.h", ], features = COMPILER_WARNING_FEATURES, tags = ["FUSA"], @@ -143,13 +157,11 @@ cc_library( for name, dependencies in [ ( "lifecycle", - [ - ], + [], ), ( "lifecycle_non_adaptive", - [ - ], + [], ), ] ] @@ -158,11 +170,11 @@ cc_library( name = "applicationcontext_mock", testonly = True, srcs = [ - "test/ut/mocks/applicationcontextmock.cpp", + "applicationcontextmock.cpp", ], hdrs = [ - "include/applicationcontext.h", - "test/ut/mocks/applicationcontextmock.h", + "applicationcontext.h", + "applicationcontextmock.h", ], features = COMPILER_WARNING_FEATURES, deps = [ @@ -176,10 +188,10 @@ cc_library( name = "application_mock", testonly = True, srcs = [ - "src/application.cpp", + "application.cpp", ], hdrs = [ - "include/application.h", + "application.h", ], features = COMPILER_WARNING_FEATURES, deps = [ @@ -192,26 +204,25 @@ cc_library( name = "lifecycle_mock", testonly = True, srcs = [ - "test/ut/mocks/lifecyclemanagermock.cpp", + "lifecyclemanagermock.cpp", ], hdrs = [ - "include/lifecyclemanager.h", - "test/ut/mocks/lifecyclemanagermock.h", + "lifecyclemanager.h", + "lifecyclemanagermock.h", ], features = COMPILER_WARNING_FEATURES, deps = [ ":application_mock", - # "//platform/aas/lib/os/utils/mocklib:signal_mock", - "@score_baselibs//score/os/utils/mocklib:signal_mock", "@googletest//:gtest", "@score_baselibs//score/os/utils:signal", + "@score_baselibs//score/os/utils/mocklib:signal_mock", ], ) filegroup( name = "all_sources", srcs = glob([ - "src/*.cpp", - "include/*.h", + "*.cpp", + "*.h", ]), ) diff --git a/src/lifecycle_client_lib/src/aasapplicationcontainer.cpp b/score/mw/lifecycle/lifecycle_client/aasapplicationcontainer.cpp similarity index 96% rename from src/lifecycle_client_lib/src/aasapplicationcontainer.cpp rename to score/mw/lifecycle/lifecycle_client/aasapplicationcontainer.cpp index 66859bcc1..02b383133 100644 --- a/src/lifecycle_client_lib/src/aasapplicationcontainer.cpp +++ b/score/mw/lifecycle/lifecycle_client/aasapplicationcontainer.cpp @@ -11,10 +11,10 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "src/lifecycle_client_lib/include/aasapplicationcontainer.h" +#include "score/mw/lifecycle/lifecycle_client/aasapplicationcontainer.h" #include -#include "src/lifecycle_client_lib/include/lifecyclemanager.h" +#include "score/mw/lifecycle/lifecycle_client/lifecyclemanager.h" namespace score { diff --git a/src/lifecycle_client_lib/include/aasapplicationcontainer.h b/score/mw/lifecycle/lifecycle_client/aasapplicationcontainer.h similarity index 97% rename from src/lifecycle_client_lib/include/aasapplicationcontainer.h rename to score/mw/lifecycle/lifecycle_client/aasapplicationcontainer.h index f212d0d16..fa93525a3 100644 --- a/src/lifecycle_client_lib/include/aasapplicationcontainer.h +++ b/score/mw/lifecycle/lifecycle_client/aasapplicationcontainer.h @@ -14,8 +14,8 @@ #ifndef SCORE_MW_MW_LIFECYCLE_AASAPPLICATIONCONTAINER_H #define SCORE_MW_MW_LIFECYCLE_AASAPPLICATIONCONTAINER_H -#include "src/lifecycle_client_lib/include/application.h" -#include "src/lifecycle_client_lib/include/lifecyclemanager.h" +#include "score/mw/lifecycle/lifecycle_client/application.h" +#include "score/mw/lifecycle/lifecycle_client/lifecyclemanager.h" #include #include diff --git a/src/lifecycle_client_lib/src/application.cpp b/score/mw/lifecycle/lifecycle_client/application.cpp similarity index 90% rename from src/lifecycle_client_lib/src/application.cpp rename to score/mw/lifecycle/lifecycle_client/application.cpp index 4cf447c45..2edbd0578 100644 --- a/src/lifecycle_client_lib/src/application.cpp +++ b/score/mw/lifecycle/lifecycle_client/application.cpp @@ -11,4 +11,4 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "src/lifecycle_client_lib/include/application.h" +#include "score/mw/lifecycle/lifecycle_client/application.h" diff --git a/src/lifecycle_client_lib/include/application.h b/score/mw/lifecycle/lifecycle_client/application.h similarity index 97% rename from src/lifecycle_client_lib/include/application.h rename to score/mw/lifecycle/lifecycle_client/application.h index 59c237878..af809c07f 100644 --- a/src/lifecycle_client_lib/include/application.h +++ b/score/mw/lifecycle/lifecycle_client/application.h @@ -14,7 +14,7 @@ #ifndef SCORE_MW_LIFECYCLE_APPLICATION_H #define SCORE_MW_LIFECYCLE_APPLICATION_H -#include "src/lifecycle_client_lib/include/applicationcontext.h" +#include "score/mw/lifecycle/lifecycle_client/applicationcontext.h" #include diff --git a/src/lifecycle_client_lib/src/applicationcontext.cpp b/score/mw/lifecycle/lifecycle_client/applicationcontext.cpp similarity index 96% rename from src/lifecycle_client_lib/src/applicationcontext.cpp rename to score/mw/lifecycle/lifecycle_client/applicationcontext.cpp index c99e72393..263e785ce 100644 --- a/src/lifecycle_client_lib/src/applicationcontext.cpp +++ b/score/mw/lifecycle/lifecycle_client/applicationcontext.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "src/lifecycle_client_lib/include/applicationcontext.h" +#include "score/mw/lifecycle/lifecycle_client/applicationcontext.h" #include #include #include diff --git a/src/lifecycle_client_lib/include/applicationcontext.h b/score/mw/lifecycle/lifecycle_client/applicationcontext.h similarity index 100% rename from src/lifecycle_client_lib/include/applicationcontext.h rename to score/mw/lifecycle/lifecycle_client/applicationcontext.h diff --git a/src/lifecycle_client_lib/test/ut/mocks/applicationcontextmock.cpp b/score/mw/lifecycle/lifecycle_client/applicationcontextmock.cpp similarity index 94% rename from src/lifecycle_client_lib/test/ut/mocks/applicationcontextmock.cpp rename to score/mw/lifecycle/lifecycle_client/applicationcontextmock.cpp index 53358526d..31f9da6c0 100644 --- a/src/lifecycle_client_lib/test/ut/mocks/applicationcontextmock.cpp +++ b/score/mw/lifecycle/lifecycle_client/applicationcontextmock.cpp @@ -11,8 +11,8 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "src/lifecycle_client_lib/test/ut/mocks/applicationcontextmock.h" -#include "src/lifecycle_client_lib/include/applicationcontext.h" +#include "score/mw/lifecycle/lifecycle_client/applicationcontextmock.h" +#include "score/mw/lifecycle/lifecycle_client/applicationcontext.h" #include diff --git a/src/lifecycle_client_lib/test/ut/mocks/applicationcontextmock.h b/score/mw/lifecycle/lifecycle_client/applicationcontextmock.h similarity index 100% rename from src/lifecycle_client_lib/test/ut/mocks/applicationcontextmock.h rename to score/mw/lifecycle/lifecycle_client/applicationcontextmock.h diff --git a/score/mw/lifecycle/lifecycle_client/details/BUILD b/score/mw/lifecycle/lifecycle_client/details/BUILD new file mode 100644 index 000000000..a8572fe0d --- /dev/null +++ b/score/mw/lifecycle/lifecycle_client/details/BUILD @@ -0,0 +1,27 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "lifecycle_client_impl", + srcs = ["lifecycle_client_impl.cpp"], + hdrs = ["lifecycle_client_impl.hpp"], + visibility = ["//score/mw/lifecycle/lifecycle_client:__pkg__"], + deps = [ + "//score/mw/launch_manager/common:constants", + "//score/mw/launch_manager/common:log", + "//score/mw/launch_manager/osal:ipc_comms", + "//score/mw/lifecycle/lifecycle_client:lifecycle_client_interface", + "@score_baselibs//score/result", + ], +) diff --git a/src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclientimpl.cpp b/score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.cpp similarity index 95% rename from src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclientimpl.cpp rename to score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.cpp index 3fb69ba22..7c9268c53 100644 --- a/src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclientimpl.cpp +++ b/score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.cpp @@ -19,10 +19,10 @@ #include "score/result/result.h" -#include "score/lcm/internal/log.hpp" -#include "score/lcm/internal/osal/osalipccomms.hpp" -#include "score/lcm/internal/config.hpp" -#include "lifecycleclientimpl.hpp" +#include "score/mw/launch_manager/common/log.hpp" +#include "score/mw/launch_manager/osal/ipc_comms.hpp" +#include "score/mw/launch_manager/common/constants.hpp" +#include "score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.hpp" using namespace score::lcm::internal::osal; diff --git a/src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclientimpl.hpp b/score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.hpp similarity index 97% rename from src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclientimpl.hpp rename to score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.hpp index 0639e965d..80ffa4bcd 100644 --- a/src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclientimpl.hpp +++ b/score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.hpp @@ -17,8 +17,8 @@ #include -#include "score/lcm/lifecycle_client.h" -#include "score/lcm/internal/osal/osalipccomms.hpp" +#include "score/mw/lifecycle/lifecycle_client.h" +#include "score/mw/launch_manager/osal/ipc_comms.hpp" namespace score { diff --git a/src/launch_manager_daemon/lifecycle_client_lib/include/score/lcm/lifecycle_client.h b/score/mw/lifecycle/lifecycle_client/lifecycle_client.h similarity index 98% rename from src/launch_manager_daemon/lifecycle_client_lib/include/score/lcm/lifecycle_client.h rename to score/mw/lifecycle/lifecycle_client/lifecycle_client.h index ba2293c3f..2213174a8 100644 --- a/src/launch_manager_daemon/lifecycle_client_lib/include/score/lcm/lifecycle_client.h +++ b/score/mw/lifecycle/lifecycle_client/lifecycle_client.h @@ -11,8 +11,6 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -/// @file - #ifndef SCORE_LCM_LIFECYCLECLIENT_H_ #define SCORE_LCM_LIFECYCLECLIENT_H_ @@ -22,7 +20,7 @@ #include #include "score/result/result.h" -#include "score/lcm/exec_error_domain.h" +#include "score/mw/lifecycle/execution_error.h" namespace score { diff --git a/src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclient.cpp b/score/mw/lifecycle/lifecycle_client/lifecycleclient.cpp similarity index 96% rename from src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclient.cpp rename to score/mw/lifecycle/lifecycle_client/lifecycleclient.cpp index 48c5c92ea..1f07ef2c0 100644 --- a/src/launch_manager_daemon/lifecycle_client_lib/src/lifecycleclient.cpp +++ b/score/mw/lifecycle/lifecycle_client/lifecycleclient.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "lifecycleclientimpl.hpp" +#include "score/mw/lifecycle/lifecycle_client/details/lifecycle_client_impl.hpp" namespace score { diff --git a/src/lifecycle_client_lib/src/lifecyclemanager.cpp b/score/mw/lifecycle/lifecycle_client/lifecyclemanager.cpp similarity index 98% rename from src/lifecycle_client_lib/src/lifecyclemanager.cpp rename to score/mw/lifecycle/lifecycle_client/lifecyclemanager.cpp index 45e6fc611..03e9534b5 100644 --- a/src/lifecycle_client_lib/src/lifecyclemanager.cpp +++ b/score/mw/lifecycle/lifecycle_client/lifecyclemanager.cpp @@ -11,11 +11,11 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "src/lifecycle_client_lib/include/lifecyclemanager.h" +#include "score/mw/lifecycle/lifecycle_client/lifecyclemanager.h" #include "score/os/errno.h" #include -#include "score/lcm/lifecycle_client.h" +#include "score/mw/lifecycle/lifecycle_client.h" #include "score/mw/log/logging.h" #include "score/os/stdlib_impl.h" diff --git a/src/lifecycle_client_lib/include/lifecyclemanager.h b/score/mw/lifecycle/lifecycle_client/lifecyclemanager.h similarity index 95% rename from src/lifecycle_client_lib/include/lifecyclemanager.h rename to score/mw/lifecycle/lifecycle_client/lifecyclemanager.h index 8215c6190..fc4af2812 100644 --- a/src/lifecycle_client_lib/include/lifecyclemanager.h +++ b/score/mw/lifecycle/lifecycle_client/lifecyclemanager.h @@ -14,8 +14,8 @@ #ifndef SCORE_MW_LIFECYCLE_LIFECYCLEMANAGER_H_ #define SCORE_MW_LIFECYCLE_LIFECYCLEMANAGER_H_ -#include "src/lifecycle_client_lib/include/application.h" -#include "src/lifecycle_client_lib/include/applicationcontext.h" +#include "score/mw/lifecycle/lifecycle_client/application.h" +#include "score/mw/lifecycle/lifecycle_client/applicationcontext.h" #include "score/os/utils/signal_impl.h" diff --git a/src/lifecycle_client_lib/test/ut/mocks/lifecyclemanagermock.cpp b/score/mw/lifecycle/lifecycle_client/lifecyclemanagermock.cpp similarity index 95% rename from src/lifecycle_client_lib/test/ut/mocks/lifecyclemanagermock.cpp rename to score/mw/lifecycle/lifecycle_client/lifecyclemanagermock.cpp index d4a9c1ae3..fbcc1e952 100644 --- a/src/lifecycle_client_lib/test/ut/mocks/lifecyclemanagermock.cpp +++ b/score/mw/lifecycle/lifecycle_client/lifecyclemanagermock.cpp @@ -11,8 +11,8 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "src/lifecycle_client_lib/test/ut/mocks/lifecyclemanagermock.h" -#include "src/lifecycle_client_lib/include/lifecyclemanager.h" +#include "score/mw/lifecycle/lifecycle_client/lifecyclemanagermock.h" +#include "score/mw/lifecycle/lifecycle_client/lifecyclemanager.h" #include diff --git a/src/lifecycle_client_lib/test/ut/mocks/lifecyclemanagermock.h b/score/mw/lifecycle/lifecycle_client/lifecyclemanagermock.h similarity index 92% rename from src/lifecycle_client_lib/test/ut/mocks/lifecyclemanagermock.h rename to score/mw/lifecycle/lifecycle_client/lifecyclemanagermock.h index 7b58b03e8..b16452bd2 100644 --- a/src/lifecycle_client_lib/test/ut/mocks/lifecyclemanagermock.h +++ b/score/mw/lifecycle/lifecycle_client/lifecyclemanagermock.h @@ -16,8 +16,8 @@ #include "score/os/utils/mocklib/signalmock.h" #include "score/os/utils/signal.h" -#include "src/lifecycle_client_lib/include/application.h" -#include "src/lifecycle_client_lib/test/ut/mocks/applicationcontextmock.h" +#include "score/mw/lifecycle/lifecycle_client/application.h" +#include "score/mw/lifecycle/lifecycle_client/applicationcontextmock.h" #include diff --git a/src/lifecycle_client_lib/src/runapplication.cpp b/score/mw/lifecycle/lifecycle_client/runapplication.cpp similarity index 90% rename from src/lifecycle_client_lib/src/runapplication.cpp rename to score/mw/lifecycle/lifecycle_client/runapplication.cpp index e69a8b4da..fc64df809 100644 --- a/src/lifecycle_client_lib/src/runapplication.cpp +++ b/score/mw/lifecycle/lifecycle_client/runapplication.cpp @@ -11,4 +11,4 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include "src/lifecycle_client_lib/include/runapplication.h" +#include "score/mw/lifecycle/lifecycle_client/runapplication.h" diff --git a/src/lifecycle_client_lib/include/runapplication.h b/score/mw/lifecycle/lifecycle_client/runapplication.h similarity index 95% rename from src/lifecycle_client_lib/include/runapplication.h rename to score/mw/lifecycle/lifecycle_client/runapplication.h index 1d8b78f28..2fa5d8a2e 100644 --- a/src/lifecycle_client_lib/include/runapplication.h +++ b/score/mw/lifecycle/lifecycle_client/runapplication.h @@ -14,9 +14,9 @@ #ifndef SCORE_MW_LIFECYCLE_RUNAPPLICATION_H #define SCORE_MW_LIFECYCLE_RUNAPPLICATION_H -#include "src/lifecycle_client_lib/include/lifecyclemanager.h" +#include "score/mw/lifecycle/lifecycle_client/lifecyclemanager.h" #include "score/memory/string_literal.h" -#include "src/lifecycle_client_lib/include/applicationcontext.h" +#include "score/mw/lifecycle/lifecycle_client/applicationcontext.h" #include diff --git a/src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/BUILD b/score/mw/lifecycle/lifecycle_client/rust/BUILD similarity index 85% rename from src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/BUILD rename to score/mw/lifecycle/lifecycle_client/rust/BUILD index 5cbfab66c..41d13c6ee 100644 --- a/src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/BUILD +++ b/score/mw/lifecycle/lifecycle_client/rust/BUILD @@ -1,5 +1,5 @@ # ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation +# Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -21,7 +21,7 @@ rust_library( "src/lifecycle.rs", ], deps = [ - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + "//score/mw/lifecycle/lifecycle_client", "@score_crates//:libc", ], ) diff --git a/src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/Cargo.lock b/score/mw/lifecycle/lifecycle_client/rust/Cargo.lock similarity index 100% rename from src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/Cargo.lock rename to score/mw/lifecycle/lifecycle_client/rust/Cargo.lock diff --git a/src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/Cargo.toml b/score/mw/lifecycle/lifecycle_client/rust/Cargo.toml similarity index 100% rename from src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/Cargo.toml rename to score/mw/lifecycle/lifecycle_client/rust/Cargo.toml diff --git a/src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/src/lib.rs b/score/mw/lifecycle/lifecycle_client/rust/src/lib.rs similarity index 100% rename from src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/src/lib.rs rename to score/mw/lifecycle/lifecycle_client/rust/src/lib.rs diff --git a/src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/src/lifecycle.rs b/score/mw/lifecycle/lifecycle_client/rust/src/lifecycle.rs similarity index 100% rename from src/launch_manager_daemon/lifecycle_client_lib/rust_bindings/src/lifecycle.rs rename to score/mw/lifecycle/lifecycle_client/rust/src/lifecycle.rs diff --git a/scripts/config_mapping/config.bzl b/scripts/config_mapping/config.bzl index 64e6b49cf..fc147cb63 100644 --- a/scripts/config_mapping/config.bzl +++ b/scripts/config_mapping/config.bzl @@ -91,7 +91,7 @@ launch_manager_config = rule( doc = "Json file to convert. Note that the binary file will have the same name as the json (minus the suffix)", ), "schema": attr.label( - default = Label("//src/launch_manager_daemon/config/config_schema:launch_manager.schema.json"), + default = Label("//score/mw/launch_manager/configuration/config_schema:launch_manager.schema.json"), allow_single_file = [".json"], doc = "Json schema file to validate the input json against", ), @@ -117,17 +117,17 @@ launch_manager_config = rule( ), "lm_schema": attr.label( allow_single_file = [".fbs"], - default = Label("//src/launch_manager_daemon:lm_flatcfg_fbs"), + default = Label("//score/mw/launch_manager/configuration:lm_flatcfg_fbs"), doc = "Launch Manager fbs file to use", ), "hm_schema": attr.label( allow_single_file = [".fbs"], - default = Label("//src/launch_manager_daemon/health_monitor_lib:hm_flatcfg_fbs"), + default = Label("//score/mw/launch_manager/alive_monitor:am_flatcfg_fbs"), doc = "HealthMonitor fbs file to use", ), "hmcore_schema": attr.label( allow_single_file = [".fbs"], - default = Label("//src/launch_manager_daemon/health_monitor_lib:hmcore_flatcfg_fbs"), + default = Label("//score/mw/launch_manager/alive_monitor:am_core_flatcfg_fbs"), doc = "HealthMonitor core fbs file to use", ), }, diff --git a/scripts/config_mapping/integration_tests.py b/scripts/config_mapping/integration_tests.py index 6852a9cbb..2ab3c7e48 100644 --- a/scripts/config_mapping/integration_tests.py +++ b/scripts/config_mapping/integration_tests.py @@ -15,7 +15,7 @@ schema_path = ( script_dir.parent.parent / "src" - / "launch_manager_daemon" + / "launch_manager" / "config" / "config_schema" / "launch_manager.schema.json" diff --git a/scripts/config_mapping/tests/BUILD b/scripts/config_mapping/tests/BUILD index 4f3ba26ac..d991a0ac1 100644 --- a/scripts/config_mapping/tests/BUILD +++ b/scripts/config_mapping/tests/BUILD @@ -16,8 +16,8 @@ score_py_pytest( ], data = [ ":integration_test_files", + "//score/mw/launch_manager/configuration/config_schema:launch_manager.schema.json", "//scripts/config_mapping:lifecycle_config.py", - "//src/launch_manager_daemon/config/config_schema:launch_manager.schema.json", ], tags = ["manual"], deps = [ diff --git a/src/BUILD b/src/BUILD deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/control_client_lib/BUILD b/src/control_client_lib/BUILD deleted file mode 100644 index d4e304e07..000000000 --- a/src/control_client_lib/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -# ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* - -cc_library( - name = "control_client_lib", - srcs = [ - "src/control_client.cpp", - "src/control_client_impl.cpp", - "src/control_client_impl.hpp", - "src/execution_error_event.h", - ], - hdrs = [ - "include/score/lcm/control_client.h", - ], - includes = ["include"], - visibility = ["//visibility:public"], - deps = [ - "//src/launch_manager_daemon/common", - "//src/launch_manager_daemon/common:control_client_channel", - "//src/launch_manager_daemon/common:identifier_hash", - "//src/launch_manager_daemon/common:lifecycle_error", - "//src/launch_manager_daemon/common:log", - "//src/launch_manager_daemon/common:osal", - "@score_baselibs//score/concurrency/future", - ], -) diff --git a/src/health_monitoring_lib/BUILD b/src/health_monitoring_lib/BUILD deleted file mode 100644 index f8eb508e7..000000000 --- a/src/health_monitoring_lib/BUILD +++ /dev/null @@ -1,174 +0,0 @@ -# ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* - -load("@rules_cc//cc:defs.bzl", "cc_library") -load("@rules_rust//rust:defs.bzl", "rust_library", "rust_static_library", "rust_test") -load("@score_baselibs//:bazel/unit_tests.bzl", "cc_gtest_unit_test") - -COMMON_DEPS = [ - "@score_baselibs_rust//src/containers:containers", - "@score_baselibs_rust//src/thread:thread", - "@score_baselibs_rust//src/log/score_log:score_log", - "//score/mw/lifecycle:alive_rust", -] - -PROC_MACRO_DEPS = [ - "@score_baselibs_rust//src/testing_macros:score_testing_macros", -] - -CC_SOURCES = [ - "cpp/common.cpp", - "cpp/deadline_monitor.cpp", - "cpp/heartbeat_monitor.cpp", - "cpp/logic_monitor.cpp", - "cpp/health_monitor.cpp", - "cpp/thread.cpp", -] - -CC_HDRS = [ - "cpp/include/score/hm/common.h", - "cpp/include/score/hm/tag.h", - "cpp/include/score/hm/thread.h", - "cpp/include/score/hm/deadline/deadline_monitor.h", - "cpp/include/score/hm/heartbeat/heartbeat_monitor.h", - "cpp/include/score/hm/logic/logic_monitor.h", - "cpp/include/score/hm/health_monitor.h", -] - -# Health Monitoring Library - Rust -rust_library( - name = "health_monitoring_lib", - srcs = glob(["rust/**/*.rs"]), - crate_root = "rust/lib.rs", - proc_macro_deps = PROC_MACRO_DEPS, - visibility = ["//visibility:public"], - deps = COMMON_DEPS, -) - -# Health Monitoring Library - C++ Bindings -cc_library( - name = "health_monitoring_lib_cc", - srcs = CC_SOURCES, - hdrs = CC_HDRS, - strip_include_prefix = "cpp/include", - visibility = ["//visibility:public"], - deps = [ - ":health_monitoring_lib_ffi", - "@score_baselibs//score/result", - ], -) - -# Health Monitoring Library - Rust FFI -rust_static_library( - name = "health_monitoring_lib_ffi", - srcs = glob(["rust/**/*.rs"]), - crate_name = "health_monitoring_lib", - crate_root = "rust/lib.rs", - proc_macro_deps = [ - "@score_baselibs_rust//src/testing_macros:score_testing_macros", - ], - visibility = ["//visibility:private"], - deps = COMMON_DEPS, -) - -# Health Monitoring Library - Rust Stub Supervisor API Client -rust_static_library( - name = "health_monitoring_lib_stub_supervisor", - srcs = glob(["rust/**/*.rs"]), - crate_features = ["stub_supervisor_api_client"], # Uses the stub supervisor API client, used for C++ testing - crate_root = "rust/lib.rs", - proc_macro_deps = PROC_MACRO_DEPS, - visibility = ["//visibility:private"], - deps = COMMON_DEPS, -) - -cc_library( - name = "health_monitoring_lib_cc_stub_supervisor", - srcs = CC_SOURCES, - hdrs = CC_HDRS, - strip_include_prefix = "cpp/include", - visibility = ["//visibility:private"], - deps = [ - ":health_monitoring_lib_stub_supervisor", - "@score_baselibs//score/result", - ], -) - -rust_test( - name = "tests", - crate = ":health_monitoring_lib", - crate_features = ["stub_supervisor_api_client"], - rustc_flags = [ - "-C", - "link-arg=-lm", - "-C", - "link-arg=-lc", - ] + select({ - "@platforms//os:qnx": [ - "-Clink-arg=-lc++", - ], - "@platforms//os:linux": [ - "-Clink-arg=-lrt", - "-Clink-arg=-lstdc++", - ], - }), - deps = [ - "@score_baselibs_rust//src/log/stdout_logger", - ], -) - -rust_test( - name = "loom_tests", - crate = ":health_monitoring_lib", - crate_features = ["stub_supervisor_api_client"], - rustc_flags = [ - "--cfg", - "loom", - "-C", - "link-arg=-lm", - "-C", - "link-arg=-lc", - ] + select({ - "@platforms//os:qnx": [ - "-Clink-arg=-lc++", - ], - "@platforms//os:linux": [ - "-Clink-arg=-lrt", - "-Clink-arg=-lstdc++", - ], - }), - tags = ["loom"], - target_compatible_with = [ - "@platforms//os:linux", - ], - deps = [ - "@score_baselibs_rust//src/log/stdout_logger", - "@score_crates//:loom", - ], -) - -cc_gtest_unit_test( - name = "cpp_tests", - srcs = [ - "cpp/tests/health_monitor_test.cpp", - "cpp/tests/log_init.cpp", - ], - linkopts = select({ - "@platforms//os:qnx": ["-lsocket"], - "@platforms//os:linux": [], - }), - deps = [ - ":health_monitoring_lib_cc_stub_supervisor", - "@score_baselibs_rust//src/log/stdout_logger_cpp_init", - ], -) diff --git a/src/launch_manager_daemon/BUILD b/src/launch_manager_daemon/BUILD deleted file mode 100644 index 0327f2b33..000000000 --- a/src/launch_manager_daemon/BUILD +++ /dev/null @@ -1,92 +0,0 @@ -# ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* -load("//config:common_cc.bzl", "cc_binary_with_common_opts", "cc_library_with_common_opts") - -package(default_visibility = ["//tests:__subpackages__"]) - -filegroup( - name = "lm_flatcfg_fbs", - srcs = ["//src/launch_manager_daemon/config:lm_flatcfg.fbs"], - visibility = ["//visibility:public"], -) - -cc_library( - name = "config", - hdrs = ["//src/launch_manager_daemon/config:lm_flatcfg_generated.h"], - includes = ["config"], - visibility = ["//src:__pkg__"], -) - -cc_binary_with_common_opts( - name = "launch_manager", - srcs = glob( - [ - "src/**/*.cpp", - "src/**/*.hpp", - ], - ), - includes = ["src/"], - linkopts = select({ - "@platforms//os:qnx": ["-lsecpol"], - "@platforms//os:linux": ["-lpthread"], - }), - visibility = ["//visibility:public"], - deps = [ - ":config", - "//externals/ipc_dropin", - "//src/launch_manager_daemon/common", - "//src/launch_manager_daemon/common:control_client_channel", - "//src/launch_manager_daemon/common:identifier_hash", - "//src/launch_manager_daemon/common:lifecycle_error", - "//src/launch_manager_daemon/common:log", - "//src/launch_manager_daemon/common/concurrency:mpmc_concurrent_queue", - "//src/launch_manager_daemon/health_monitor_lib:health_monitor", - "//src/launch_manager_daemon/process_state_client_lib:process_state_client", - "@flatbuffers", - "@score_baselibs//score/mw/log", - "@score_baselibs//score/result", - ], -) - -# FOR TESTING - -cc_library( - name = "headers", - testonly = True, - hdrs = glob( - [ - "src/**/*.h", - "src/**/*.hpp", - ], - allow_empty = True, # "src/**/*.h" is empty as of now - ), - includes = [ - "include", - "src", - ], - deps = [ - # Must match launch_manager deps - ":config", - "//externals/ipc_dropin", - "//src/launch_manager_daemon/common", - "//src/launch_manager_daemon/common:control_client_channel", - "//src/launch_manager_daemon/common:identifier_hash", - "//src/launch_manager_daemon/common:lifecycle_error", - "//src/launch_manager_daemon/common:log", - "//src/launch_manager_daemon/health_monitor_lib:health_monitor", - "//src/launch_manager_daemon/common/concurrency:mpmc_concurrent_queue", - "@flatbuffers", - "@score_baselibs//score/mw/log", - "@score_baselibs//score/result", - ], -) diff --git a/src/launch_manager_daemon/common/BUILD b/src/launch_manager_daemon/common/BUILD deleted file mode 100644 index 91c0daaa2..000000000 --- a/src/launch_manager_daemon/common/BUILD +++ /dev/null @@ -1,119 +0,0 @@ -# ******************************************************************************* -# Copyright (c) 2026 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* -load("@rules_cc//cc:defs.bzl", "cc_test") -load("//config:common_cc.bzl", "cc_binary_with_common_opts", "cc_library_with_common_opts") - -cc_library( - name = "identifier_hash", - srcs = [ - "src/identifier_hash.cpp", - ], - hdrs = [ - "include/score/lcm/identifier_hash.hpp", - ], - includes = ["include"], - visibility = ["//visibility:public"], -) - -cc_library( - name = "common", - srcs = [ - "src/internal/config.cpp", - ], - hdrs = [ - "include/score/lcm/internal/config.hpp", - "include/score/lcm/internal/process_group_state_id.hpp", - ], - includes = ["include"], - visibility = ["//src:__subpackages__"], - deps = [":identifier_hash"], -) - -cc_library( - name = "lifecycle_error", - hdrs = [ - "include/score/lcm/exec_error_domain.h", - ], - includes = ["include"], - visibility = ["//visibility:public"], -) - -cc_library( - name = "log", - hdrs = ["include/score/lcm/internal/log.hpp"], - defines = select({ - "//config:lm_use_cout_log": [], - "//conditions:default": ["LC_LOG_SCORE_MW_LOG"], - }), - includes = ["include"], - visibility = ["//src:__subpackages__"], - deps = [] + select({ - "//config:lm_use_cout_log": [], - "//conditions:default": ["@score_baselibs//score/mw/log"], - }), -) - -cc_library( - name = "osal", - srcs = glob(["src/internal/osal/posix/*.cpp"]) + select({ - "@platforms//os:qnx": glob( - [ - "src/internal/osal/qnx/*.cpp", - ], - ), - "@platforms//os:linux": glob( - [ - "src/internal/osal/linux/*.cpp", - ], - ), - }), - hdrs = glob( - ["include/score/lcm/internal/osal/**/*.hpp"], - allow_empty = False, - ), - includes = ["include"], - visibility = [ - "//src:__subpackages__", - "//tests:__subpackages__", - ], - deps = [ - ":common", - ":log", - ], -) - -cc_library( - name = "control_client_channel", - srcs = [ - "src/internal/controlclientchannel.cpp", - ], - hdrs = [ - "include/score/lcm/internal/controlclientchannel.hpp", - ], - includes = ["include"], - visibility = ["//src:__subpackages__"], - deps = [ - ":common", - ":osal", - ], -) - -cc_test( - name = "identifier_hash_UT", - srcs = ["src/identifier_hash_UT.cpp"], - visibility = ["//tests:__subpackages__"], - deps = [ - ":identifier_hash", - "@googletest//:gtest_main", - ], -) diff --git a/src/launch_manager_daemon/common/src/internal/config.cpp b/src/launch_manager_daemon/common/src/internal/config.cpp deleted file mode 100644 index 9667821f0..000000000 --- a/src/launch_manager_daemon/common/src/internal/config.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2025 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - -#include - -namespace score { - -namespace lcm { - -namespace internal { - -constexpr std::chrono::milliseconds kMaxQueueDelay(500); ///< The maximum time to wait trying to add items to a queue -constexpr std::chrono::milliseconds kGraphTimeout(10000); ///< Timeout duration for graph operations. -constexpr std::chrono::milliseconds kMaxSigKillDelay(500); ///< The maximum time to wait for a process termination - -constexpr std::chrono::milliseconds kControlClientPollingDelay( - 1); ///< Time Control Client will wait during polling for acknowledgement - -constexpr std::chrono::milliseconds kMaxKRunningDelay( - 1000); ///< Time Lifecycle Client will wait for launch manager to respond - -constexpr std::chrono::milliseconds kControlClientMaxIpcDelay( - 500); ///< The maximum time to wait, when trying to communicate with LCM. When this time is exceeded kCommunicationError will be returned -constexpr std::chrono::milliseconds kControlClientBgThreadSleepTime( - 100); ///< Sleep time for Control Client background thread - -constexpr std::chrono::milliseconds kLifecycleClientBgThreadSleepTime( - 10); ///< The time for which Lifecycle Client background thread sleeps after polling the SIGTERM flag -} // namespace lcm - -} // namespace internal - -} // namespace score diff --git a/src/launch_manager_daemon/health_monitor_lib/BUILD b/src/launch_manager_daemon/health_monitor_lib/BUILD deleted file mode 100644 index 66d35786a..000000000 --- a/src/launch_manager_daemon/health_monitor_lib/BUILD +++ /dev/null @@ -1,339 +0,0 @@ -# ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* -load("//config:common_cc.bzl", "cc_binary_with_common_opts", "cc_library_with_common_opts") - -filegroup( - name = "hm_flatcfg_fbs", - srcs = ["config/hm_flatcfg.fbs"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "hmcore_flatcfg_fbs", - srcs = ["config/hmcore_flatcfg.fbs"], - visibility = ["//visibility:public"], -) - -# flatcfg configuration -exports_files(["config/hm_flatcfg.fbs"]) - -cc_library( - name = "config", - hdrs = [ - "config/hm_flatcfg_generated.h", - "config/hmcore_flatcfg_generated.h", - ], - includes = ["config"], - visibility = ["//src:__pkg__"], -) - -# library for logging -cc_library_with_common_opts( - name = "phm_logging", - srcs = ["src/score/lcm/saf/logging/PhmLogger.cpp"], - hdrs = ["src/score/lcm/saf/logging/PhmLogger.hpp"], - defines = select({ - "//config:lm_use_cout_log": [], - "//conditions:default": ["LC_LOG_SCORE_MW_LOG"], - }), - includes = [ - "src", - "src/score/lcm/saf/logging", - ], - visibility = ["//src:__pkg__"], - deps = [ - "@score_baselibs//score/mw/log", - ], -) - -# wrapper for interacting with lcm -cc_library_with_common_opts( - name = "ifexm", - srcs = [ - "src/score/lcm/saf/ifexm/ProcessCfg.cpp", - "src/score/lcm/saf/ifexm/ProcessState.cpp", - "src/score/lcm/saf/ifexm/ProcessStateReader.cpp", - ], - hdrs = glob(["src/score/lcm/saf/**/*.hpp"]), - includes = [ - "include", - "src", - ], - visibility = ["//src:__pkg__"], - deps = [ - "//src/launch_manager_daemon/process_state_client_lib:process_state_client", - "@score_baselibs//score/mw/log", - ], -) - -# wrapper for ipc -cc_library_with_common_opts( - name = "ipc_if", - hdrs = glob(["src/score/lcm/saf/ipc/*.hpp"]), - visibility = ["//src:__pkg__"], - deps = ["//externals/ipc_dropin"], - alwayslink = True, -) - -cc_library_with_common_opts( - name = "timers", - srcs = [ - "src/score/lcm/saf/timers/CycleTimeValidator.cpp", - "src/score/lcm/saf/timers/CycleTimer.cpp", - "src/score/lcm/saf/timers/TimeConversion.cpp", - "src/score/lcm/saf/timers/Timers_OsClock.cpp", - ], - hdrs = glob(["src/score/lcm/saf/timers/*.hpp"]), - includes = [ - "src", - "src/score/lcm/saf/timers", - ], - visibility = ["//src:__pkg__"], -) - -cc_library_with_common_opts( - name = "rb-watchdog-if", - srcs = [ - "src/score/lcm/saf/watchdog/DeviceIf.cpp", - "src/score/lcm/saf/watchdog/WatchdogImpl.cpp", - ], - hdrs = [ - "src/score/lcm/saf/logging/PhmLogger.hpp", - "src/score/lcm/saf/timers/OsClockInterface.hpp", - "src/score/lcm/saf/watchdog/DeviceIf.hpp", - "src/score/lcm/saf/watchdog/IDeviceConfigFactory.hpp", - "src/score/lcm/saf/watchdog/IWatchdogIf.hpp", - "src/score/lcm/saf/watchdog/Watchdog.hpp", - "src/score/lcm/saf/watchdog/WatchdogImpl.hpp", - ], - includes = [ - "include", - "src", - "src/score/lcm/saf/logging", - ], - deps = [ - "@score_baselibs//score/mw/log", - ], -) - -cc_library_with_common_opts( - name = "recoverynotify", - srcs = ["src/score/lcm/saf/recovery/Notification.cpp"], - hdrs = [ - "src/score/lcm/saf/logging/PhmLogger.hpp", - "src/score/lcm/saf/recovery/Notification.hpp", - "src/score/lcm/saf/timers/TimeConversion.hpp", - "src/score/lcm/saf/timers/Timers_OsClock.hpp", - ], - includes = [ - "include", - "src", - ], - deps = [ - ":config", - ":phm_logging", - "//src/launch_manager_daemon/recovery_client_lib:recovery_client", - "@score_baselibs//score/mw/log", - ], -) - -cc_library_with_common_opts( - name = "factory", - srcs = [ - "src/score/lcm/saf/factory/FlatCfgFactory.cpp", - "src/score/lcm/saf/factory/MachineConfigFactory.cpp", - ], - hdrs = glob([ - "src/score/lcm/saf/**/*.hpp", - "include/**/*.h", - ]), - includes = [ - "include", - "src", - ], - visibility = ["//src:__pkg__"], - deps = [ - ":config", - ":recoverynotify", - "//externals/ipc_dropin", - "//src/launch_manager_daemon/process_state_client_lib:process_state_client", - "@flatbuffers", - ] + select( - { - "@platforms//os:qnx": [], - "@platforms//os:linux": [ - "//externals/acl", - ], - }, - ), -) - -cc_library_with_common_opts( - name = "ifappl", - srcs = [ - "src/score/lcm/saf/ifappl/Checkpoint.cpp", - "src/score/lcm/saf/ifappl/MonitorIfDaemon.cpp", - ], - hdrs = glob(["src/score/lcm/saf/**/*.hpp"]), - includes = [ - "include", - "src", - "src/score/lcm/saf/logging", - ], - visibility = ["//src:__pkg__"], - deps = [ - "//externals/ipc_dropin", - "//src/launch_manager_daemon/process_state_client_lib:process_state_client", - ] + select( - { - "@platforms//os:qnx": [], - "@platforms//os:linux": [ - "//externals/acl", - ], - }, - ), -) - -cc_library_with_common_opts( - name = "supervision", - srcs = [ - "src/score/lcm/saf/supervision/Alive.cpp", - "src/score/lcm/saf/supervision/Global.cpp", - "src/score/lcm/saf/supervision/ICheckpointSupervision.cpp", - "src/score/lcm/saf/supervision/ISupervision.cpp", - "src/score/lcm/saf/supervision/Local.cpp", - "src/score/lcm/saf/supervision/ProcessStateTracker.cpp", - ], - hdrs = glob([ - "src/score/lcm/saf/**/*.hpp", - "include/score/lcm/*.h", - ]), - includes = [ - "include", - "src/score/lcm/saf/supervision", - ], - visibility = ["//src:__pkg__"], - deps = [ - ":recoverynotify", - "//src/launch_manager_daemon/process_state_client_lib:process_state_client", - ], -) - -cc_library_with_common_opts( - name = "hm-lib", - srcs = [ - "src/score/lcm/hmlib/Monitor.cpp", - "src/score/lcm/hmlib/MonitorImpl.cpp", - "src/score/lcm/hmlib/MonitorImplWrapper.cpp", - ], - hdrs = glob([ - "src/score/lcm/**/*.h", - "include/score/**/*.h", - "src/score/lcm/saf/**/*.hpp", - ]), - includes = [ - "include", - "src", - ], - visibility = ["//src:__subpackages__"], - deps = [ - ":config", - ":ipc_if", - ":phm_logging", - "@flatbuffers", - "@flatbuffers//:flatc", - ] + select( - { - "@platforms//os:qnx": [], - "@platforms//os:linux": [ - "//externals/acl", - ], - }, - ), -) - -cc_library_with_common_opts( - name = "daemon", - srcs = [ - "src/score/lcm/saf/daemon/PhmDaemon.cpp", - "src/score/lcm/saf/daemon/SwClusterHandler.cpp", - ], - cxxopts = [ - "-fpic", - "-Werror", - ], - includes = [ - "include", - "src", - ], - visibility = ["//src:__pkg__"], - deps = [ - ":factory", - ":rb-watchdog-if", - "//externals/ipc_dropin", - "//score/mw/lifecycle:control_cc", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", - ], -) - -cc_library_with_common_opts( - name = "health_monitor", - srcs = [ - "src/score/lcm/saf/daemon/HealthMonitorImpl.cpp", - ], - cxxopts = [ - "-fpic", - "-Werror", - ], - visibility = ["//visibility:public"], - deps = [ - ":daemon", - ":factory", - ":ifappl", - ":ifexm", - ":ipc_if", - ":phm_logging", - ":rb-watchdog-if", - ":recoverynotify", - ":supervision", - ":timers", - "@flatbuffers//:flatc", - "@score_baselibs//score/mw/log", - ], -) - -cc_test( - name = "Notification_UT", - srcs = ["src/score/lcm/saf/recovery/Notification_UT.cpp"], - deps = [ - ":recoverynotify", - "@googletest//:gtest_main", - "@score_baselibs//score/mw/log:backend_stub_testutil", - ], -) - -cc_library_with_common_opts( - name = "hm_shared_lib", - includes = [ - "include", - ], - visibility = ["//visibility:public"], - deps = [ - ":hm-lib", - ":ipc_if", - ":phm_logging", - ":timers", - "@flatbuffers", - ], - alwayslink = True, -) diff --git a/src/launch_manager_daemon/lifecycle_client_lib/BUILD b/src/launch_manager_daemon/lifecycle_client_lib/BUILD deleted file mode 100644 index 3daa5c386..000000000 --- a/src/launch_manager_daemon/lifecycle_client_lib/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -# ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* -load("@rules_rust//rust:defs.bzl", "rust_library") - -cc_library( - name = "lifecycle_client", - srcs = [ - "src/lifecycleclient.cpp", - "src/lifecycleclientimpl.cpp", - "src/lifecycleclientimpl.hpp", - ], - hdrs = [ - "include/score/lcm/lifecycle_client.h", - ], - copts = select({ - "@platforms//os:qnx": [], - "@platforms//os:linux": ["-pthread"], - }), - includes = ["include"], - linkopts = select({ - "@platforms//os:qnx": [], - "@platforms//os:linux": ["-lpthread"], - }), - visibility = ["//visibility:public"], - deps = [ - "//src/launch_manager_daemon/common", - "//src/launch_manager_daemon/common:lifecycle_error", - "//src/launch_manager_daemon/common:log", - "//src/launch_manager_daemon/common:osal", - "@score_baselibs//score/mw/log", - "@score_baselibs//score/result", - ], -) diff --git a/src/launch_manager_daemon/process_state_client_lib/BUILD b/src/launch_manager_daemon/process_state_client_lib/BUILD deleted file mode 100644 index 778ec41ed..000000000 --- a/src/launch_manager_daemon/process_state_client_lib/BUILD +++ /dev/null @@ -1,75 +0,0 @@ -# ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* -cc_library( - name = "process_state_client", - srcs = [ - "src/processstatenotifier.cpp", - "src/processstatereceiver.cpp", - ], - hdrs = [ - "include/score/lcm/iprocessstatenotifier.hpp", - "include/score/lcm/iprocessstatereceiver.hpp", - "include/score/lcm/posixprocess.hpp", - "include/score/lcm/processstatenotifier.hpp", - "include/score/lcm/processstatereceiver.hpp", - ], - includes = ["include"], - visibility = ["//visibility:public"], - deps = [ - "//externals/ipc_dropin", - "//src/launch_manager_daemon/common", - "//src/launch_manager_daemon/common:identifier_hash", - "//src/launch_manager_daemon/common:lifecycle_error", - "//src/launch_manager_daemon/common:log", - "@score_baselibs//score/mw/log", - "@score_baselibs//score/result", - ], -) - -cc_library( - name = "headers", - testonly = True, - hdrs = glob( - [ - "include/score/lcm/**/*.h", - "include/score/lcm/**/*.hpp", - ], - allow_empty = True, # "include/score/lcm/**/*.h" is empty as of now - ), - includes = [ - "include", - "src", - ], - deps = [ - # Must match process_state_client deps - "//externals/ipc_dropin", - "//src/launch_manager_daemon/common", - "//src/launch_manager_daemon/common:identifier_hash", - "//src/launch_manager_daemon/common:lifecycle_error", - "//src/launch_manager_daemon/common:log", - "@score_baselibs//score/result", - ], -) - -cc_test( - name = "processstateclient_UT", - srcs = [ - "src/processstateclient_UT.cpp", - "//src/launch_manager_daemon/process_state_client_lib:src/processstatenotifier.cpp", - "//src/launch_manager_daemon/process_state_client_lib:src/processstatereceiver.cpp", - ], - deps = [ - "//src/launch_manager_daemon/process_state_client_lib:headers", - "@googletest//:gtest_main", - ], -) diff --git a/src/launch_manager_daemon/src/process_group_manager/LifecycleClientExt.hpp b/src/launch_manager_daemon/src/process_group_manager/LifecycleClientExt.hpp deleted file mode 100644 index 4fe680c67..000000000 --- a/src/launch_manager_daemon/src/process_group_manager/LifecycleClientExt.hpp +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2025 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - - -#ifndef _LIFECYCLECLIENTEXT_H_INCLUDED -#define _LIFECYCLECLIENTEXT_H_INCLUDED - -#include - -namespace score { -namespace lcm { -namespace internal { - -/// @brief LifecycleClientExt class -class LifecycleClientExt { - public: - /// @brief Function to retrieve the Process Identifier - /// Each Process has a unique Identifier which is defined by the Launch Manager. This Identifier can - /// be retrieved by the Process using this function - /// @return Process Identifer. On error, an empty string is returned - const char* GetProcessIdentifier() const noexcept { - static constexpr const char* PROCESS_IDENTIFIER_ENV_VAR = "PROCESSIDENTIFIER"; - return std::getenv(PROCESS_IDENTIFIER_ENV_VAR); - } - -}; // class LifecycleClientExt -} // namespace lcm -} // namespace internal -} // namespace score - -#endif diff --git a/src/launch_manager_daemon/src/process_group_manager/workerthread.cpp b/src/launch_manager_daemon/src/process_group_manager/workerthread.cpp deleted file mode 100644 index 5937647c3..000000000 --- a/src/launch_manager_daemon/src/process_group_manager/workerthread.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2025 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - -#include "workerthread.hpp" -#include "processinfonode.hpp" - -namespace score -{ - -namespace lcm -{ - -namespace internal -{ - -template -WorkerThread::WorkerThread(std::shared_ptr queue, uint32_t num_threads) : the_job_queue_(queue) -{ - worker_threads_.reserve(num_threads); - - for (uint32_t i = 0U; i < num_threads; ++i) - { - static_cast(i); - worker_threads_.emplace_back(std::make_unique(&WorkerThread::run, this)); - } -} - -template -WorkerThread::~WorkerThread() -{ - stop(); - - for (auto& thread : worker_threads_) - { - if (thread->joinable()) - { - thread->join(); - } - } -} - -template -void WorkerThread::stop() -{ - static_cast(the_job_queue_->stop()); -} - -template -void WorkerThread::run() -{ - while (true) - { - auto job = the_job_queue_->pop(); - if (!job) - { - if (job.error() == ConcurrencyErrc::kStopped) - { - break; - } - LM_LOG_ERROR() << "Got an error getting a job: " << job.error(); - continue; - } - (*job)->doWork(); - } -} - -// Explicit instantiation for ProcessInfoNode -template class WorkerThread; - -} // namespace internal - -} // namespace lcm - -} // namespace score diff --git a/src/launch_manager_daemon/src/process_group_manager/workerthread.hpp b/src/launch_manager_daemon/src/process_group_manager/workerthread.hpp deleted file mode 100644 index 12a7cbc7d..000000000 --- a/src/launch_manager_daemon/src/process_group_manager/workerthread.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2025 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - -#ifndef WORKER_THREAD_HPP_INCLUDED -#define WORKER_THREAD_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace score::lcm::internal -{ - -/// @brief Templated worker thread pool for executing jobs from a queue. -/// This class manages a pool of worker threads that continuously retrieve and execute jobs -/// from an MPMCConcurrentQueue until the pool is stopped or destructed. -/// @tparam T The type of items stored in the queue (as std::shared_ptr). -template -class WorkerThread final -{ - using Queue = MPMCConcurrentQueue, static_cast(ProcessLimits::kMaxProcesses)>; - - public: - /// @brief Constructs a WorkerThread pool with the specified number of threads. - /// - /// @param queue The MpmcQueue from which threads will take work items. - /// @param num_threads Number of threads in the pool. - WorkerThread(std::shared_ptr queue, uint32_t num_threads); - - /// @brief Destructor. - /// Requests stop and joins all worker threads. - ~WorkerThread(); - - // Rule of five - /// @brief Copy constructor is deleted to prevent copying. - WorkerThread(const WorkerThread&) = delete; - - /// @brief Copy assignment operator is deleted to prevent copying. - WorkerThread& operator=(const WorkerThread&) = delete; - - /// @brief Move constructor is deleted to prevent moving. - WorkerThread(WorkerThread&&) = delete; - - /// @brief Move assignment operator is deleted to prevent moving. - WorkerThread& operator=(WorkerThread&&) = delete; - - /// @brief Requests all worker threads to stop. - /// Calls stop() on the queue, which unblocks all threads waiting in pop(). - void stop(); - - private: - /// @brief Entry point for each worker thread. - /// Blocks on pop() until a job arrives or the queue is stopped, then executes the job. - void run(); - - /// @brief The queue from which each thread takes work. - std::shared_ptr the_job_queue_{}; - - /// @brief Vector of worker threads. - std::vector> worker_threads_{}; -}; - -} // namespace score::lcm::internal - -#endif // WORKER_THREAD_HPP_INCLUDED diff --git a/tests/integration/incorrect_config_non_reporting/BUILD b/tests/integration/incorrect_config_non_reporting/BUILD index 0ee22c7b4..c52aae2ae 100644 --- a/tests/integration/incorrect_config_non_reporting/BUILD +++ b/tests/integration/incorrect_config_non_reporting/BUILD @@ -10,6 +10,7 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_binary") load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_files") load("@rules_pkg//pkg:tar.bzl", "pkg_tar") load("@score_itf//:defs.bzl", "py_itf_test") @@ -29,8 +30,8 @@ cc_binary( name = "non_reporting_process", srcs = ["non_reporting_process.cpp"], deps = [ - "//src/launch_manager_daemon/common:osal", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + "//score/mw/launch_manager/osal:ipc_comms", + "//score/mw/lifecycle/lifecycle_client", "//tests/utils/test_helper", "@googletest//:gtest_main", ], diff --git a/tests/integration/incorrect_config_non_reporting/non_reporting_process.cpp b/tests/integration/incorrect_config_non_reporting/non_reporting_process.cpp index 31f0ea887..8f669d18f 100644 --- a/tests/integration/incorrect_config_non_reporting/non_reporting_process.cpp +++ b/tests/integration/incorrect_config_non_reporting/non_reporting_process.cpp @@ -13,15 +13,14 @@ #include #include -#include -#include #include #include #include -#include +#include +#include "score/mw/launch_manager/osal/ipc_comms.hpp" +#include #include "tests/utils/test_helper/test_helper.hpp" -#include TestRunner runner = TestRunner(__FILE__, true); diff --git a/tests/integration/smoke/BUILD b/tests/integration/smoke/BUILD index edaef96e1..a28c4ca97 100644 --- a/tests/integration/smoke/BUILD +++ b/tests/integration/smoke/BUILD @@ -10,6 +10,7 @@ # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +load("@rules_cc//cc:defs.bzl", "cc_binary") load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_files") load("@rules_pkg//pkg:tar.bzl", "pkg_tar") load("@score_itf//:defs.bzl", "py_itf_test") @@ -36,7 +37,7 @@ cc_binary( data = [], deps = [ "//score/mw/lifecycle:control_cc", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + "//score/mw/lifecycle/lifecycle_client", "//tests/utils/test_helper", "@googletest//:gtest_main", ], @@ -47,7 +48,7 @@ cc_binary( srcs = ["gtest_process.cpp"], deps = [ "//score/mw/lifecycle:control_cc", - "//src/launch_manager_daemon/lifecycle_client_lib:lifecycle_client", + "//score/mw/lifecycle/lifecycle_client", "//tests/utils/test_helper", "@googletest//:gtest_main", ], diff --git a/tests/integration/smoke/control_daemon_mock.cpp b/tests/integration/smoke/control_daemon_mock.cpp index 6045049d9..6fc1cd9cd 100644 --- a/tests/integration/smoke/control_daemon_mock.cpp +++ b/tests/integration/smoke/control_daemon_mock.cpp @@ -15,9 +15,8 @@ #include #include -#include -#include -#include +#include +#include #include "tests/utils/test_helper/test_helper.hpp" diff --git a/tests/integration/smoke/gtest_process.cpp b/tests/integration/smoke/gtest_process.cpp index 60009aa79..5d9bbb11f 100644 --- a/tests/integration/smoke/gtest_process.cpp +++ b/tests/integration/smoke/gtest_process.cpp @@ -11,11 +11,11 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#include #include +#include #include -#include +#include #include "tests/utils/test_helper/test_helper.hpp" TEST(Smoke, Process) { diff --git a/tests/utils/test_helper/test_helper.hpp b/tests/utils/test_helper/test_helper.hpp index 4bac753b9..39732d1ce 100644 --- a/tests/utils/test_helper/test_helper.hpp +++ b/tests/utils/test_helper/test_helper.hpp @@ -88,4 +88,4 @@ class TestRunner { return res; } -}; \ No newline at end of file +}; From c9a6f4b61c77141d6c6fcb458eaa63a69ee9a8f1 Mon Sep 17 00:00:00 2001 From: Maciej Kaszynski Date: Mon, 25 May 2026 16:38:12 +0100 Subject: [PATCH 2/2] Reverting worker thread to thread pool rename --- .../mw/health/health_monitoring_lib/cpp/BUILD | 2 +- .../launch_manager/common/concurrency/BUILD | 4 +- .../{thread_pool.hpp => workerthread.hpp} | 49 ++++++++++--------- .../process_group_manager/BUILD | 2 +- .../process_group_manager/details/BUILD | 2 +- .../details/process_group_manager.cpp | 2 +- .../process_group_manager.hpp | 4 +- 7 files changed, 33 insertions(+), 32 deletions(-) rename score/mw/launch_manager/common/concurrency/{thread_pool.hpp => workerthread.hpp} (66%) diff --git a/score/mw/health/health_monitoring_lib/cpp/BUILD b/score/mw/health/health_monitoring_lib/cpp/BUILD index 414806310..9590caad5 100644 --- a/score/mw/health/health_monitoring_lib/cpp/BUILD +++ b/score/mw/health/health_monitoring_lib/cpp/BUILD @@ -42,8 +42,8 @@ cc_library( deps = [ ":common", ":tag", - "//score/mw/health/health_monitoring_lib/cpp/details:thread", "//score/mw/health/health_monitoring_lib/cpp/deadline:deadline_monitor", + "//score/mw/health/health_monitoring_lib/cpp/details:thread", "//score/mw/health/health_monitoring_lib/cpp/heartbeat:heartbeat_monitor", "//score/mw/health/health_monitoring_lib/cpp/logic:logic_monitor", ], diff --git a/score/mw/launch_manager/common/concurrency/BUILD b/score/mw/launch_manager/common/concurrency/BUILD index 4218c9c72..5a482e2b6 100644 --- a/score/mw/launch_manager/common/concurrency/BUILD +++ b/score/mw/launch_manager/common/concurrency/BUILD @@ -13,8 +13,8 @@ load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") cc_library( - name = "thread_pool", - hdrs = ["thread_pool.hpp"], + name = "workerthread", + hdrs = ["workerthread.hpp"], visibility = ["//score:__subpackages__"], deps = [ ":mpmc_concurrent_queue", diff --git a/score/mw/launch_manager/common/concurrency/thread_pool.hpp b/score/mw/launch_manager/common/concurrency/workerthread.hpp similarity index 66% rename from score/mw/launch_manager/common/concurrency/thread_pool.hpp rename to score/mw/launch_manager/common/concurrency/workerthread.hpp index 97676997b..bf144c242 100644 --- a/score/mw/launch_manager/common/concurrency/thread_pool.hpp +++ b/score/mw/launch_manager/common/concurrency/workerthread.hpp @@ -11,12 +11,12 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -#ifndef THREAD_POOL_HPP_INCLUDED -#define THREAD_POOL_HPP_INCLUDED +#ifndef WORKER_THREAD_HPP_INCLUDED +#define WORKER_THREAD_HPP_INCLUDED #include "score/mw/launch_manager/common/concurrency/mpmc_concurrent_queue.hpp" -#include "score/mw/launch_manager/common/log.hpp" #include "score/mw/launch_manager/common/constants.hpp" +#include "score/mw/launch_manager/common/log.hpp" #include #include #include @@ -24,32 +24,33 @@ namespace score::lcm::internal { -/// @brief Templated thread pool for executing jobs from a queue. -/// This class manages a pool of threads that continuously retrieve and execute jobs +/// @brief Templated worker thread pool for executing jobs from a queue. +/// This class manages a pool of worker threads that continuously retrieve and execute jobs /// from an MPMCConcurrentQueue until the pool is stopped or destructed. /// @tparam T The type of items stored in the queue (as std::shared_ptr). template -class ThreadPool final +class WorkerThread final { using Queue = MPMCConcurrentQueue, static_cast(ProcessLimits::kMaxProcesses)>; public: - /// @brief Constructs a ThreadPool with the specified number of threads. + /// @brief Constructs a WorkerThread pool with the specified number of threads. /// - /// @param queue The queue from which threads will take work items. + /// @param queue The MpmcQueue from which threads will take work items. /// @param num_threads Number of threads in the pool. - ThreadPool(std::shared_ptr queue, uint32_t num_threads) : the_job_queue_(queue) + WorkerThread(std::shared_ptr queue, uint32_t num_threads) : the_job_queue_(queue) { worker_threads_.reserve(num_threads); for (uint32_t i = 0U; i < num_threads; ++i) { static_cast(i); - worker_threads_.emplace_back(std::make_unique(&ThreadPool::run, this)); + worker_threads_.emplace_back(std::make_unique(&WorkerThread::run, this)); } } - /// @brief Destructor. Requests stop and joins all threads. - ~ThreadPool() + /// @brief Destructor. + /// Requests stop and joins all worker threads. + ~WorkerThread() { stop(); for (auto& thread : worker_threads_) @@ -62,19 +63,19 @@ class ThreadPool final } // Rule of five - /// @brief Copy constructor is deleted. - ThreadPool(const ThreadPool&) = delete; + /// @brief Copy constructor is deleted to prevent copying. + WorkerThread(const WorkerThread&) = delete; - /// @brief Copy assignment operator is deleted. - ThreadPool& operator=(const ThreadPool&) = delete; + /// @brief Copy assignment operator is deleted to prevent copying. + WorkerThread& operator=(const WorkerThread&) = delete; - /// @brief Move constructor is deleted. - ThreadPool(ThreadPool&&) = delete; + /// @brief Move constructor is deleted to prevent moving. + WorkerThread(WorkerThread&&) = delete; - /// @brief Move assignment operator is deleted. - ThreadPool& operator=(ThreadPool&&) = delete; + /// @brief Move assignment operator is deleted to prevent moving. + WorkerThread& operator=(WorkerThread&&) = delete; - /// @brief Requests all threads to stop. + /// @brief Requests all worker threads to stop. /// Calls stop() on the queue, which unblocks all threads waiting in pop(). void stop() { @@ -82,7 +83,7 @@ class ThreadPool final } private: - /// @brief Entry point for each thread. + /// @brief Entry point for each worker thread. /// Blocks on pop() until a job arrives or the queue is stopped, then executes the job. void run() { @@ -105,10 +106,10 @@ class ThreadPool final /// @brief The queue from which each thread takes work. std::shared_ptr the_job_queue_{}; - /// @brief Pool of worker threads. + /// @brief Vector of worker threads. std::vector> worker_threads_{}; }; } // namespace score::lcm::internal -#endif // THREAD_POOL_HPP_INCLUDED +#endif // WORKER_THREAD_HPP_INCLUDED diff --git a/score/mw/launch_manager/process_group_manager/BUILD b/score/mw/launch_manager/process_group_manager/BUILD index 3989e6c2b..ad7321330 100644 --- a/score/mw/launch_manager/process_group_manager/BUILD +++ b/score/mw/launch_manager/process_group_manager/BUILD @@ -50,7 +50,7 @@ cc_library( ":iprocess", "//score/mw/launch_manager/common:identifier_hash", "//score/mw/launch_manager/common/concurrency:mpmc_concurrent_queue", - "//score/mw/launch_manager/common/concurrency:thread_pool", + "//score/mw/launch_manager/common/concurrency:workerthread", "//score/mw/launch_manager/configuration:configuration_manager", "//score/mw/launch_manager/control:control_client_channel", "//score/mw/launch_manager/osal:ipc_comms", diff --git a/score/mw/launch_manager/process_group_manager/details/BUILD b/score/mw/launch_manager/process_group_manager/details/BUILD index 53cca1ab4..c8a61e61e 100644 --- a/score/mw/launch_manager/process_group_manager/details/BUILD +++ b/score/mw/launch_manager/process_group_manager/details/BUILD @@ -97,7 +97,7 @@ cc_library( ":safe_process_map", "//score/mw/launch_manager/common:log", "//score/mw/launch_manager/common/concurrency:mpmc_concurrent_queue", - "//score/mw/launch_manager/common/concurrency:thread_pool", + "//score/mw/launch_manager/common/concurrency:workerthread", "//score/mw/launch_manager/configuration:configuration_manager", "//score/mw/launch_manager/osal:ipc_comms", "//score/mw/launch_manager/osal:semaphore", diff --git a/score/mw/launch_manager/process_group_manager/details/process_group_manager.cpp b/score/mw/launch_manager/process_group_manager/details/process_group_manager.cpp index db7bc1cee..47dec5ddd 100644 --- a/score/mw/launch_manager/process_group_manager/details/process_group_manager.cpp +++ b/score/mw/launch_manager/process_group_manager/details/process_group_manager.cpp @@ -236,7 +236,7 @@ inline void ProcessGroupManager::createProcessComponentsObjects() worker_jobs_ = std::make_shared(); LM_LOG_DEBUG() << "Creating worker threads..."; - worker_threads_ = std::make_unique>( + worker_threads_ = std::make_unique>( worker_jobs_, static_cast(ProcessLimits::kNumWorkerThreads)); } diff --git a/score/mw/launch_manager/process_group_manager/process_group_manager.hpp b/score/mw/launch_manager/process_group_manager/process_group_manager.hpp index e42b081a7..951d2424d 100644 --- a/score/mw/launch_manager/process_group_manager/process_group_manager.hpp +++ b/score/mw/launch_manager/process_group_manager/process_group_manager.hpp @@ -28,7 +28,7 @@ #include "score/mw/launch_manager/process_state_client/iprocess_state_notifier.hpp" #include "score/mw/launch_manager/process_group_manager/details/process_info_node.hpp" #include "score/mw/launch_manager/process_group_manager/details/safe_process_map.hpp" -#include "score/mw/launch_manager/common/concurrency/thread_pool.hpp" +#include "score/mw/launch_manager/common/concurrency/workerthread.hpp" #include "score/mw/launch_manager/process_group_manager/ialive_monitor_thread.hpp" #include "score/mw/launch_manager/recovery_client/recovery_client.hpp" #include "score/mw/launch_manager/common/constants.hpp" @@ -276,7 +276,7 @@ class ProcessGroupManager final std::shared_ptr process_map_; /// @brief Unique pointer to the worker threads handling ProcessInfoNode jobs. - std::unique_ptr> worker_threads_; + std::unique_ptr> worker_threads_; /// @brief Shared pointer to the job queue for ProcessInfoNode jobs. std::shared_ptr worker_jobs_;