diff --git a/BUILD b/BUILD index 997de9810..cd5c98221 100644 --- a/BUILD +++ b/BUILD @@ -98,5 +98,5 @@ docs( "@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. ], - source_dir = "docs", + source_dir = ".", ) diff --git a/docs/conf.py b/conf.py similarity index 94% rename from docs/conf.py rename to conf.py index fffa5a225..7864757b8 100644 --- a/docs/conf.py +++ b/conf.py @@ -46,6 +46,16 @@ "score_draw_uml_funcs", "score_source_code_linker", "score_layout", + "myst_parser", +] + +include_patterns = [ + "index.rst", + "docs/**", + "examples/docs/**", + "score/launch_manager/docs/**", + "score/launch_manager/lifecycle_client/docs/**", + "score/health_monitor/docs/**", ] exclude_patterns = [ @@ -68,7 +78,7 @@ class DisplayTestLogs(Directive): def run(self): env = self.state.document.settings.env - ws_root = Path(env.app.srcdir).parent + ws_root = Path(env.app.srcdir) result_nodes = [] for log_file in chain( diff --git a/docs/release_notes/index.rst b/docs/release/index.rst similarity index 100% rename from docs/release_notes/index.rst rename to docs/release/index.rst diff --git a/docs/release_notes/release_note_v_0_2_0.rst b/docs/release/release_note_v_0_2_0.rst similarity index 100% rename from docs/release_notes/release_note_v_0_2_0.rst rename to docs/release/release_note_v_0_2_0.rst diff --git a/docs/statistics.rst b/docs/verification_report/statistics.rst similarity index 98% rename from docs/statistics.rst rename to docs/verification_report/statistics.rst index 1c9c03803..27ead3fe0 100644 --- a/docs/statistics.rst +++ b/docs/verification_report/statistics.rst @@ -1,7 +1,7 @@ .. _life_statistics: -Component Requirements Statistics -================================= +Verification Statistics +======================= Overview -------- diff --git a/docs/index.rst b/index.rst similarity index 62% rename from docs/index.rst rename to index.rst index f1ebd4335..167e5a539 100644 --- a/docs/index.rst +++ b/index.rst @@ -12,45 +12,24 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -Lifecycle -=================== +Lifecycle Documentation +======================= + +Module / Feature Documentation +------------------------------ .. toctree:: :maxdepth: 1 - :glob: - :titlesonly: - - module/*/index - statistics.rst - -Overview --------- - -Project Layout --------------- - -Quick Start ------------ - -To build the module for host platform: - -.. code-block:: bash - bazel build //src/... + docs/release/index + docs/verification_report/statistics -To run tests: - -.. code-block:: bash - - bazel test //tests/... - - -Release Notes -------------- - -Release notes collection. +Component documentation +------------------------ .. toctree:: :maxdepth: 1 - release_notes/index + score/launch_manager/docs/index + score/health_monitor/docs/index + diff --git a/docs/module/health_monitor/architecture/assets/dm_interface.puml b/score/health_monitor/docs/architecture/assets/dm_interface.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/dm_interface.puml rename to score/health_monitor/docs/architecture/assets/dm_interface.puml diff --git a/docs/module/health_monitor/architecture/assets/dm_static_architecture.puml b/score/health_monitor/docs/architecture/assets/dm_static_architecture.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/dm_static_architecture.puml rename to score/health_monitor/docs/architecture/assets/dm_static_architecture.puml diff --git a/docs/module/health_monitor/architecture/assets/dm_usage.puml b/score/health_monitor/docs/architecture/assets/dm_usage.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/dm_usage.puml rename to score/health_monitor/docs/architecture/assets/dm_usage.puml diff --git a/docs/module/health_monitor/architecture/assets/dmb_interface.puml b/score/health_monitor/docs/architecture/assets/dmb_interface.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/dmb_interface.puml rename to score/health_monitor/docs/architecture/assets/dmb_interface.puml diff --git a/docs/module/health_monitor/architecture/assets/hbm_interface.puml b/score/health_monitor/docs/architecture/assets/hbm_interface.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hbm_interface.puml rename to score/health_monitor/docs/architecture/assets/hbm_interface.puml diff --git a/docs/module/health_monitor/architecture/assets/hbm_usage.puml b/score/health_monitor/docs/architecture/assets/hbm_usage.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hbm_usage.puml rename to score/health_monitor/docs/architecture/assets/hbm_usage.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_background_thread.puml b/score/health_monitor/docs/architecture/assets/hm_background_thread.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_background_thread.puml rename to score/health_monitor/docs/architecture/assets/hm_background_thread.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_creation.puml b/score/health_monitor/docs/architecture/assets/hm_creation.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_creation.puml rename to score/health_monitor/docs/architecture/assets/hm_creation.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_deadline.puml b/score/health_monitor/docs/architecture/assets/hm_deadline.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_deadline.puml rename to score/health_monitor/docs/architecture/assets/hm_deadline.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_duration_range.puml b/score/health_monitor/docs/architecture/assets/hm_duration_range.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_duration_range.puml rename to score/health_monitor/docs/architecture/assets/hm_duration_range.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_error.puml b/score/health_monitor/docs/architecture/assets/hm_error.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_error.puml rename to score/health_monitor/docs/architecture/assets/hm_error.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_interface.puml b/score/health_monitor/docs/architecture/assets/hm_interface.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_interface.puml rename to score/health_monitor/docs/architecture/assets/hm_interface.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_shutdown.puml b/score/health_monitor/docs/architecture/assets/hm_shutdown.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_shutdown.puml rename to score/health_monitor/docs/architecture/assets/hm_shutdown.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_startup.puml b/score/health_monitor/docs/architecture/assets/hm_startup.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_startup.puml rename to score/health_monitor/docs/architecture/assets/hm_startup.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_static_architecture.puml b/score/health_monitor/docs/architecture/assets/hm_static_architecture.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_static_architecture.puml rename to score/health_monitor/docs/architecture/assets/hm_static_architecture.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_status.puml b/score/health_monitor/docs/architecture/assets/hm_status.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_status.puml rename to score/health_monitor/docs/architecture/assets/hm_status.puml diff --git a/docs/module/health_monitor/architecture/assets/hm_tag.puml b/score/health_monitor/docs/architecture/assets/hm_tag.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hm_tag.puml rename to score/health_monitor/docs/architecture/assets/hm_tag.puml diff --git a/docs/module/health_monitor/architecture/assets/hmb_interface.puml b/score/health_monitor/docs/architecture/assets/hmb_interface.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/hmb_interface.puml rename to score/health_monitor/docs/architecture/assets/hmb_interface.puml diff --git a/docs/module/health_monitor/architecture/assets/lm_interface.puml b/score/health_monitor/docs/architecture/assets/lm_interface.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/lm_interface.puml rename to score/health_monitor/docs/architecture/assets/lm_interface.puml diff --git a/docs/module/health_monitor/architecture/assets/lm_state.puml b/score/health_monitor/docs/architecture/assets/lm_state.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/lm_state.puml rename to score/health_monitor/docs/architecture/assets/lm_state.puml diff --git a/docs/module/health_monitor/architecture/assets/lm_static_architecture.puml b/score/health_monitor/docs/architecture/assets/lm_static_architecture.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/lm_static_architecture.puml rename to score/health_monitor/docs/architecture/assets/lm_static_architecture.puml diff --git a/docs/module/health_monitor/architecture/assets/lm_usage.puml b/score/health_monitor/docs/architecture/assets/lm_usage.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/lm_usage.puml rename to score/health_monitor/docs/architecture/assets/lm_usage.puml diff --git a/docs/module/health_monitor/architecture/assets/lmb_interface.puml b/score/health_monitor/docs/architecture/assets/lmb_interface.puml similarity index 100% rename from docs/module/health_monitor/architecture/assets/lmb_interface.puml rename to score/health_monitor/docs/architecture/assets/lmb_interface.puml diff --git a/docs/module/health_monitor/architecture/index.rst b/score/health_monitor/docs/architecture/index.rst similarity index 100% rename from docs/module/health_monitor/architecture/index.rst rename to score/health_monitor/docs/architecture/index.rst diff --git a/docs/module/health_monitor/component_classification.rst b/score/health_monitor/docs/component_classification.rst similarity index 100% rename from docs/module/health_monitor/component_classification.rst rename to score/health_monitor/docs/component_classification.rst diff --git a/docs/module/health_monitor/detailed_design/assets/static_diagram.puml b/score/health_monitor/docs/detailed_design/assets/static_diagram.puml similarity index 100% rename from docs/module/health_monitor/detailed_design/assets/static_diagram.puml rename to score/health_monitor/docs/detailed_design/assets/static_diagram.puml diff --git a/docs/module/health_monitor/detailed_design/index.rst b/score/health_monitor/docs/detailed_design/index.rst similarity index 100% rename from docs/module/health_monitor/detailed_design/index.rst rename to score/health_monitor/docs/detailed_design/index.rst diff --git a/docs/module/health_monitor/index.rst b/score/health_monitor/docs/index.rst similarity index 100% rename from docs/module/health_monitor/index.rst rename to score/health_monitor/docs/index.rst diff --git a/docs/module/health_monitor/requirements/index.rst b/score/health_monitor/docs/requirements/index.rst similarity index 100% rename from docs/module/health_monitor/requirements/index.rst rename to score/health_monitor/docs/requirements/index.rst diff --git a/docs/module/health_monitor/safety_analysis/dfa.rst b/score/health_monitor/docs/safety_analysis/dfa.rst similarity index 100% rename from docs/module/health_monitor/safety_analysis/dfa.rst rename to score/health_monitor/docs/safety_analysis/dfa.rst diff --git a/docs/module/health_monitor/safety_analysis/fmea.rst b/score/health_monitor/docs/safety_analysis/fmea.rst similarity index 100% rename from docs/module/health_monitor/safety_analysis/fmea.rst rename to score/health_monitor/docs/safety_analysis/fmea.rst diff --git a/docs/module/launch_manager_deamon/index.rst b/score/launch_manager/docs/index.rst similarity index 77% rename from docs/module/launch_manager_deamon/index.rst rename to score/launch_manager/docs/index.rst index 97fedfee6..086b376bd 100644 --- a/docs/module/launch_manager_deamon/index.rst +++ b/score/launch_manager/docs/index.rst @@ -12,14 +12,18 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -Launch Manager Daemon -##################### +Launch Manager +############## .. toctree:: + :titlesonly: - user_guide/concepts.rst - user_guide/ready_state.rst - user_guide/configuration.rst - user_guide/examples.rst - user_guide/implementation.rst + user_guide/index.rst product_documentation/known_limitations.rst + +Subcomponents +============= +.. toctree:: + :titlesonly: + + ../lifecycle_client/docs/index.rst diff --git a/docs/module/launch_manager_deamon/product_documentation/known_limitations.rst b/score/launch_manager/docs/product_documentation/known_limitations.rst similarity index 100% rename from docs/module/launch_manager_deamon/product_documentation/known_limitations.rst rename to score/launch_manager/docs/product_documentation/known_limitations.rst diff --git a/docs/module/launch_manager_deamon/user_guide/concepts.rst b/score/launch_manager/docs/user_guide/concepts.rst similarity index 99% rename from docs/module/launch_manager_deamon/user_guide/concepts.rst rename to score/launch_manager/docs/user_guide/concepts.rst index 620f729fd..d3f083cb3 100644 --- a/docs/module/launch_manager_deamon/user_guide/concepts.rst +++ b/score/launch_manager/docs/user_guide/concepts.rst @@ -14,8 +14,8 @@ .. _lm_user_guide: -User Guide -********** +Overview +******** .. _lm_introduction: diff --git a/docs/module/launch_manager_deamon/user_guide/configuration.rst b/score/launch_manager/docs/user_guide/configuration.rst similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/configuration.rst rename to score/launch_manager/docs/user_guide/configuration.rst diff --git a/docs/module/launch_manager_deamon/user_guide/examples.rst b/score/launch_manager/docs/user_guide/examples.rst similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/examples.rst rename to score/launch_manager/docs/user_guide/examples.rst diff --git a/docs/module/launch_manager_deamon/user_guide/images/example_conf_graph.svg b/score/launch_manager/docs/user_guide/images/example_conf_graph.svg similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/images/example_conf_graph.svg rename to score/launch_manager/docs/user_guide/images/example_conf_graph.svg diff --git a/docs/module/launch_manager_deamon/user_guide/images/example_config.puml b/score/launch_manager/docs/user_guide/images/example_config.puml similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/images/example_config.puml rename to score/launch_manager/docs/user_guide/images/example_config.puml diff --git a/docs/module/launch_manager_deamon/user_guide/images/lm_non_reporting.puml b/score/launch_manager/docs/user_guide/images/lm_non_reporting.puml similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/images/lm_non_reporting.puml rename to score/launch_manager/docs/user_guide/images/lm_non_reporting.puml diff --git a/docs/module/launch_manager_deamon/user_guide/images/lm_reporting_running.puml b/score/launch_manager/docs/user_guide/images/lm_reporting_running.puml similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/images/lm_reporting_running.puml rename to score/launch_manager/docs/user_guide/images/lm_reporting_running.puml diff --git a/docs/module/launch_manager_deamon/user_guide/images/lm_reporting_terminated.puml b/score/launch_manager/docs/user_guide/images/lm_reporting_terminated.puml similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/images/lm_reporting_terminated.puml rename to score/launch_manager/docs/user_guide/images/lm_reporting_terminated.puml diff --git a/docs/module/launch_manager_deamon/user_guide/images/lm_run_targets.puml b/score/launch_manager/docs/user_guide/images/lm_run_targets.puml similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/images/lm_run_targets.puml rename to score/launch_manager/docs/user_guide/images/lm_run_targets.puml diff --git a/docs/module/launch_manager_deamon/user_guide/images/lm_run_targets_starting.puml b/score/launch_manager/docs/user_guide/images/lm_run_targets_starting.puml similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/images/lm_run_targets_starting.puml rename to score/launch_manager/docs/user_guide/images/lm_run_targets_starting.puml diff --git a/docs/module/launch_manager_deamon/user_guide/implementation.rst b/score/launch_manager/docs/user_guide/implementation.rst similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/implementation.rst rename to score/launch_manager/docs/user_guide/implementation.rst diff --git a/score/launch_manager/docs/user_guide/index.rst b/score/launch_manager/docs/user_guide/index.rst new file mode 100644 index 000000000..7d0e5eeb3 --- /dev/null +++ b/score/launch_manager/docs/user_guide/index.rst @@ -0,0 +1,24 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +User Guide +########## + +.. toctree:: + + concepts.rst + ready_state.rst + configuration.rst + examples.rst + implementation.rst \ No newline at end of file diff --git a/docs/module/launch_manager_deamon/user_guide/ready_state.rst b/score/launch_manager/docs/user_guide/ready_state.rst similarity index 100% rename from docs/module/launch_manager_deamon/user_guide/ready_state.rst rename to score/launch_manager/docs/user_guide/ready_state.rst diff --git a/score/launch_manager/lifecycle_client/docs/index.rst b/score/launch_manager/lifecycle_client/docs/index.rst new file mode 100644 index 000000000..546e3b48f --- /dev/null +++ b/score/launch_manager/lifecycle_client/docs/index.rst @@ -0,0 +1,21 @@ +.. + # ******************************************************************************* + # 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 + # ******************************************************************************* + +Lifecycle API +############# + +.. toctree:: + + lifecycle.md + lifecyclemanager.md diff --git a/docs/module/lifecycle_client_lib/lifecycle.md b/score/launch_manager/lifecycle_client/docs/lifecycle.md similarity index 93% rename from docs/module/lifecycle_client_lib/lifecycle.md rename to score/launch_manager/lifecycle_client/docs/lifecycle.md index 803a2930b..3d432bd35 100644 --- a/docs/module/lifecycle_client_lib/lifecycle.md +++ b/score/launch_manager/lifecycle_client/docs/lifecycle.md @@ -13,7 +13,7 @@ Component consists of three main parts: * Runner class `score::mw::lifecycle::Run` which instantiates the user provided application and decides which LifeCycleManager to use. Overview on how lifecycle application is related to execution manager. -![Lifecycle Manager Application Overview](model/lifecycle_system_view.uxf) +![Lifecycle Manager Application Overview](model/lifecycle_system_view.svg) ### AAS Interfaces N/A @@ -21,12 +21,12 @@ N/A ### External C++ interfaces `score:mw::Application` methods which have to be implemented by the application: #### Initialize -This method shall do basic initialization of application (what was not done in application [State `Initializing`](#state-initializing)). +This method shall do basic initialization of application (what was not done in application State Initializing). Method returns a `Result`, which either contains `void` on success or an error. In case of an error lifecycle manager will join all running threads and will return with non zero value. Input parameter to this method is an instance of `ApplicationContext`, which is a wrapper around the arguments, which have been given to `main`. #### Run -This method implements the `Run` state of the app (see [State `Run`](#state-run)). This could be a long running +This method implements the `Run` state of the app (see State `Run`). This could be a long running functionality. In case `Run()` returns, this implicitly means, that the app has ended. If app implementations do spawn some worker threads in the context of `Run()`, those threads are joined again before` Run()` returns. @@ -70,7 +70,7 @@ N/A SIGTERM see [lifecyclemanager.md](lifecyclemanager.md) ## Static architecture -![Structural View](model/structural_view.uxf) +![Structural View](model/structural_view.svg) ## Dynamic architecture @@ -78,13 +78,13 @@ SIGTERM see [lifecyclemanager.md](lifecyclemanager.md) The following sequence diagram shows the interaction between OS and instances of `Application` class, which were decorated with a `LifecycleManager`: -![Sequence View](model/sequence_view.uxf) +![Sequence View](model/sequence_view.svg) ### Stateful behavior The following state machine depicts the states/transitions of an application: -![Application Lifecycle](model/app_lifecycle.uxf) +![Application Lifecycle](model/app_lifecycle.svg) #### State `Terminated` respectively `Not Started` @@ -129,4 +129,4 @@ do so, it shall not report `Run` at all. * N/A ### Deployment -* There is example app available that can help with deploying this library see [example application](test/example/README.md) subdirectory +* There is example app available that can help with deploying this library see example application (`examples/cpp_lifecycle_app`) subdirectory diff --git a/docs/module/lifecycle_client_lib/lifecyclemanager.md b/score/launch_manager/lifecycle_client/docs/lifecyclemanager.md similarity index 100% rename from docs/module/lifecycle_client_lib/lifecyclemanager.md rename to score/launch_manager/lifecycle_client/docs/lifecyclemanager.md diff --git a/score/launch_manager/lifecycle_client/docs/model/app_lifecycle.svg b/score/launch_manager/lifecycle_client/docs/model/app_lifecycle.svg new file mode 100644 index 000000000..8ebbf1ac4 --- /dev/null +++ b/score/launch_manager/lifecycle_client/docs/model/app_lifecycle.svg @@ -0,0 +1,105 @@ + + +RunInitializingTerminated/Not Startedexit/Sig Term/Sig Killfork/execReport Run diff --git a/docs/module/lifecycle_client_lib/model/app_lifecycle.uxf b/score/launch_manager/lifecycle_client/docs/model/app_lifecycle.uxf similarity index 100% rename from docs/module/lifecycle_client_lib/model/app_lifecycle.uxf rename to score/launch_manager/lifecycle_client/docs/model/app_lifecycle.uxf diff --git a/score/launch_manager/lifecycle_client/docs/model/lifecycle_system_view.svg b/score/launch_manager/lifecycle_client/docs/model/lifecycle_system_view.svg new file mode 100644 index 000000000..cc9a201a6 --- /dev/null +++ b/score/launch_manager/lifecycle_client/docs/model/lifecycle_system_view.svg @@ -0,0 +1,213 @@ + + +mw:lifecycleApplicationScope of..Application context (main)OSExecution Managermw:LifecycleManagerApplicationmw:applicationhandlesapplication SIGTERMn1starts11startsn1handles application SIGTERMn1reports state (run, terminate)1nmanages (run, terminate)11implements11 diff --git a/docs/module/lifecycle_client_lib/model/lifecycle_system_view.uxf b/score/launch_manager/lifecycle_client/docs/model/lifecycle_system_view.uxf similarity index 100% rename from docs/module/lifecycle_client_lib/model/lifecycle_system_view.uxf rename to score/launch_manager/lifecycle_client/docs/model/lifecycle_system_view.uxf diff --git a/score/launch_manager/lifecycle_client/docs/model/sequence_application_container.svg b/score/launch_manager/lifecycle_client/docs/model/sequence_application_container.svg new file mode 100644 index 000000000..08be0d38d --- /dev/null +++ b/score/launch_manager/lifecycle_client/docs/model/sequence_application_container.svg @@ -0,0 +1,692 @@ + + +[result != 0]loop[for each application][result != 0]opt[for each thread]loop[for each application exceptthe last one][result != 0]alt:amp::jthreadloopRest of sequenceis cancelled inerror caseoptloop[for each thread]:LifeCycleManager:Application:AasApplicationContainer:mainreturn 0join()resultInitialize(context)«create thread calling Initialize() of applicationreturn 0return 0return resultreturn resultreturn resultjoin()return resultreturn resultreturn resultcall Run() for the last applicationRun(stop_token)«create thread calling Run()of application»Run(stop_token)resultresultresultInitialize(context)run(*this, context_)«create»Launch()With<App2>(Args&&...)«create»add Applicationadd Application«create»With<App1>(Args&&...)«create» diff --git a/docs/module/lifecycle_client_lib/model/sequence_application_container.uxf b/score/launch_manager/lifecycle_client/docs/model/sequence_application_container.uxf similarity index 100% rename from docs/module/lifecycle_client_lib/model/sequence_application_container.uxf rename to score/launch_manager/lifecycle_client/docs/model/sequence_application_container.uxf diff --git a/score/launch_manager/lifecycle_client/docs/model/sequence_view.svg b/score/launch_manager/lifecycle_client/docs/model/sequence_view.svg new file mode 100644 index 000000000..c2098bfd7 --- /dev/null +++ b/score/launch_manager/lifecycle_client/docs/model/sequence_view.svg @@ -0,0 +1,513 @@ + + +:LifeCycleManagerSigHandlerAlternativecyclically StopToken Pollingusage of stop_callback:StopToken:StopSource:ApplicationContext:LifecycleManager:Application:Process:OS_ExecMgmtreport_run_hook()return exitCodestop_callback()return exitCodereturn exitCodereturn exitCodeReturn TRUEstop_requested()notifyrequest_stopreturn StopTokenctorget_token()Signal(SigTerm)registerSignalHandler()ctorrun(StopToken)returnInitialize(ApplicationContext&)runctor(argc, argv)ctor(Application&, ApplicationContext&)ctormain(int argc, const char* argv[])create diff --git a/docs/module/lifecycle_client_lib/model/sequence_view.uxf b/score/launch_manager/lifecycle_client/docs/model/sequence_view.uxf similarity index 100% rename from docs/module/lifecycle_client_lib/model/sequence_view.uxf rename to score/launch_manager/lifecycle_client/docs/model/sequence_view.uxf diff --git a/score/launch_manager/lifecycle_client/docs/model/structural_view.svg b/score/launch_manager/lifecycle_client/docs/model/structural_view.svg new file mode 100644 index 000000000..8a9cb768d --- /dev/null +++ b/score/launch_manager/lifecycle_client/docs/model/structural_view.svg @@ -0,0 +1,273 @@ + + +score::mw::lifecycle::AasApplicationContaineroperation+ initialize(const ApplicationContext&): std::int32_t override+ run(amp::stop_token stop_token): std::int32_t override+ AasApplicationContainer(const std::int32_t argc, const char* const argv[], const std::size_t count_expected_applications): noexcept+ With<App,...Args>(Args&&.. args) : AasApplicationContainer&+ Launch() : std::int32_tAtrribuite+ context_: score::mw::lifecycle::ApplicationContext+ applications_: std::vector<std::unique_ptr<Application»+ count_expected_applications_: std::size_tNoteEnable the easy usage of our application in differentenvironmentsApplicationTypeRunOperation+ Run(const int32_t argc, const char* const argv[])+ AsPosixProcess(Args&&... args): std::int32_t constAttribute+ context_: ApplicationContextNoteImplementation is platform specific. It typically implementsa (POSIX) signal handling as we expect, that termination of apps isdone via signaling in all environments.score::mw::lifecycle::LifecycleManageroperations+ LifecycleManager(std::unique_ptr<score::os::Signal> signal_interface)+ LifeCycleManager(LifeCycleManager&& other) = delete;+ LifeCycleManager(const LifeCycleManager& other) = delete;+ LifeCycleManager& operator=(LifeCycleManager&& other) = delete;+ LifeCycleManager& operator=(const LifeCycleManager& other) = delete;+ run(Application& app, const ApplicationContext&): int32_tAttribute+ m_stop_source: amp::stop_source+ m_app: Application*+ m_signal_set: sigset_t+ m_signal_handler_thread: std::thread+ signal_: std::unique_ptr<score::os::Signal> score::mw::lifecycle::ApplicationContextOperations+ ApplicationContext(const int32_t argc, const char* const argv[])+ get_arguments(): const std::vector<std::string>& const noexcept+ get_argument(const amp::string_view flag): std::string const noexcept-- Atrribuite+ m_args: std::vector<std::string>+ m_app_path: std::string«interface»score::mw::lifecycle::ApplicationOperation+ initialize(const ApplicationContext&): std::int32_t virtual = 0+ run(amp::stop_token stop_token): std::int32_t virtual = 0Create &RunImplementsCreateCreate &Runmanages diff --git a/docs/module/lifecycle_client_lib/model/structural_view.uxf b/score/launch_manager/lifecycle_client/docs/model/structural_view.uxf similarity index 100% rename from docs/module/lifecycle_client_lib/model/structural_view.uxf rename to score/launch_manager/lifecycle_client/docs/model/structural_view.uxf