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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
ABI Compatible Data Types
#########################

.. document:: ABI Compatible Datatypes
.. document:: ABI Compatible Data Types
:id: doc__abi_compatible_data_types
:status: valid
:safety: ASIL_B
:tags: feature_request, change_management, communication, abi_compatible_data_types
:tags: feature_request, change_management, abi_compatible_data_types
:security: YES
:realizes: wp__feat_request

Expand Down
6 changes: 3 additions & 3 deletions docs/features/baselibs/docs/architecture/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ Static Architecture
:security: YES
:safety: ASIL_B
:status: valid
:includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable, logic_arc_int__safecpp__aborts_upon_ex, logic_arc_int__safecpp__coverage_termination, logic_arc_int__baselibs__safemath, logic_arc_int__baselibs__safeatomics, logic_arc_int__baselibs__scoped_function, logic_arc_int__baselibs__string_view
:includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable, logic_arc_int__safecpp__aborts_upon_ex, logic_arc_int__safecpp__coverage_termination, logic_arc_int__baselibs__safemath, logic_arc_int__baselibs__safeatomics, logic_arc_int__baselibs__scoped_function, logic_arc_int__baselibs__string_view
:consists_of: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend

.. feat_arc_sta:: Baselibs Static View
Expand All @@ -98,7 +98,7 @@ Static Architecture
:safety: ASIL_B
:status: valid
:fulfils: feat_req__baselibs__core_utilities
:includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable, logic_arc_int__safecpp__aborts_upon_ex, logic_arc_int__safecpp__coverage_termination, logic_arc_int__baselibs__safemath, logic_arc_int__baselibs__safeatomics, logic_arc_int__baselibs__scoped_function, logic_arc_int__baselibs__string_view
:includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable, logic_arc_int__safecpp__aborts_upon_ex, logic_arc_int__safecpp__coverage_termination, logic_arc_int__baselibs__safemath, logic_arc_int__baselibs__safeatomics, logic_arc_int__baselibs__scoped_function, logic_arc_int__baselibs__string_view
:tags: inspected
:belongs_to: feat__baselibs

Expand All @@ -117,4 +117,4 @@ The Baselibs feature exposes the following logical interfaces:
:style: table
:columns: title;id;status
:sort: title
:filter: id in ['logic_arc_int__baselibs__json', 'logic_arc_int__baselibs__memory_shared', 'logic_arc_int__baselibs__message_passing' ,'logic_arc_int__baselibs__result', 'logic_arc_int__baselibs__bit_manipulation', 'logic_arc_int__baselibs__bit_mask_operator', 'logic_arc_int__baselibs__dynamic_array', 'logic_arc_int__baselibs__intrusive_list', 'logic_arc_int__baselibs__filesystem', 'logic_arc_int__baselibs__utils_base64', 'logic_arc_int__baselibs__utils_scoped_op', 'logic_arc_int__baselibs__promise', 'logic_arc_int__baselibs__future', 'logic_arc_int__baselibs__shared_future', 'logic_arc_int__baselibs__executor', 'logic_arc_int__baselibs__task', 'logic_arc_int__baselibs__task_result', 'logic_arc_int__baselibs__synchronized_queue', 'logic_arc_int__baselibs__condition_variable', 'logic_arc_int__safecpp__aborts_upon_ex', 'logic_arc_int__safecpp__coverage_termination', 'logic_arc_int__baselibs__safemath', 'logic_arc_int__baselibs__safeatomics', 'logic_arc_int__baselibs__scoped_function', 'logic_arc_int__baselibs__string_view']
:filter: id in ['logic_arc_int__baselibs__json', 'logic_arc_int__baselibs__memory_shared', 'logic_arc_int__baselibs__result', 'logic_arc_int__baselibs__bit_manipulation', 'logic_arc_int__baselibs__bit_mask_operator', 'logic_arc_int__baselibs__dynamic_array', 'logic_arc_int__baselibs__intrusive_list', 'logic_arc_int__baselibs__filesystem', 'logic_arc_int__baselibs__utils_base64', 'logic_arc_int__baselibs__utils_scoped_op', 'logic_arc_int__baselibs__promise', 'logic_arc_int__baselibs__future', 'logic_arc_int__baselibs__shared_future', 'logic_arc_int__baselibs__executor', 'logic_arc_int__baselibs__task', 'logic_arc_int__baselibs__task_result', 'logic_arc_int__baselibs__synchronized_queue', 'logic_arc_int__baselibs__condition_variable', 'logic_arc_int__safecpp__aborts_upon_ex', 'logic_arc_int__safecpp__coverage_termination', 'logic_arc_int__baselibs__safemath', 'logic_arc_int__baselibs__safeatomics', 'logic_arc_int__baselibs__scoped_function', 'logic_arc_int__baselibs__string_view']
39 changes: 1 addition & 38 deletions docs/features/baselibs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Base Libraries (v0.5 beta)
docs/safety_analysis/dfa.rst
docs/safety_analysis/fmea.rst
docs/safety_planning/index.rst

abi_compatible_data_types/index.rst

Feature flag
============
Expand Down Expand Up @@ -76,43 +76,6 @@ or C++ and provide bindings to the other language to maximize maintainability an
However, if there are strong technical reasons (such as language-specific performance or safety
requirements), a library may be implemented separately in both Rust and C++.

Specification
=============

The base libraries feature consists of the following libraries, all of which are currently implemented in C++:

- **bitmanipulation**: Utilities for bit manipulation.
- **concurrency**: Provides a generic interface to execute any C++ callable in a parallel context,
supporting various execution strategies (e.g., thread pool, timed execution), thread safety,
interruption handling, and periodic/delayed task execution.
- **containers**: Offers a ``DynamicArray`` (fixed-size array with dynamic construction-time size)
and an intrusive linked list implementation conforming to the
`P0406R1 proposal <https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0406r1.html>`_.
- **json**: JSON abstraction layer that can switch between different parsers/serializers under the hood.
- **filesystem**: Filesystem manipulation library similar to ``std::filesystem``.
- **futurecpp**: Extends the C++14 Standard Library with features from newer C++ standards up to C++26,
as well as selected proposals for the C++ Standard Library.
- **safecpp/aborts_upon_exception**: Globally prevents creation of exception objects by calling ``std::abort()``
immediately.
- **safecpp/coverage_termination_handler**: Helper library to enable collective code coverage information in
GTest death tests.
- **safecpp/safe_math**: Provides safe implementations for arithmetic and related operations for
signed/unsigned integral types and floating point types.
- **safecpp/scoped_function**: Allows developers to consciously limit when an enclosed callable
(function) can be invoked.
- **memory**: Utility library for memory handling, including an abstraction layer for shared memory.
- **os**: OS Abstraction Layer (OSAL) to interface with different POSIX-like operating systems such
as Linux and QNX.
- **result**: Provides a unified approach to error handling without exceptions, conforming to C++23
``std::expected``.
- **static_reflection_with_serialization**: A header-only library for binary serialization,
deserialization, and compile-time type reflection of heterogenuous C++ data structures with focus
on compile-time safety and efficiency of serialization, as well as efficiency of filtering by
content during deserialization.
- **mw::log**: Logging library.
- **utils**: Provides a collection of small, reusable utilities that do not fit into the other
base libraries.

Backwards Compatibility
=======================

Expand Down
2 changes: 1 addition & 1 deletion docs/features/communication/docs/architecture/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ This ensures a stable public API, independent of the underlying binding(s). At t
:safety: ASIL_B
:status: valid
:includes: logic_arc_int__communication__user
:consists_of: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend
:consists_of: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend, comp__com_message_passing

.. feat_arc_sta:: Feature Architecture Communication
:id: feat_arc_sta__com__communication
Expand Down
1 change: 0 additions & 1 deletion docs/features/communication/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ Communication (v0.5 beta)
docs/**/index
ipc/index
some_ip_gateway/index
abi_compatible_data_types/index

Feature flag
============
Expand Down
4 changes: 2 additions & 2 deletions docs/modules/baselibs/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@

.. mod:: Baselibs
:id: mod__baselibs
:includes: comp__baselibs_json, comp__baselibs_message_passing, comp__baselibs_memory_shared, comp__baselibs_result, comp__baselibs_bit_manipulation, comp__baselibs_containers, comp__baselibs_filesystem, comp__baselibs_utils, comp__baselibs_concurrency, comp__baselibs_safecpp
:includes: comp__baselibs_json, comp__baselibs_memory_shared, comp__baselibs_result, comp__baselibs_bit_manipulation, comp__baselibs_containers, comp__baselibs_filesystem, comp__baselibs_utils, comp__baselibs_concurrency, comp__baselibs_safecpp
:status: valid
:safety: ASIL_B
:security: YES

.. mod_view_sta:: Baselibs Static View
:id: mod_view_sta__baselibs__baselibs
:includes: comp__baselibs_json, comp__baselibs_message_passing, comp__baselibs_memory_shared, comp__baselibs_result, comp__baselibs_bit_manipulation, comp__baselibs_containers, comp__baselibs_filesystem, comp__baselibs_utils, comp__baselibs_concurrency, comp__baselibs_safecpp
:includes: comp__baselibs_json, comp__baselibs_memory_shared, comp__baselibs_result, comp__baselibs_bit_manipulation, comp__baselibs_containers, comp__baselibs_filesystem, comp__baselibs_utils, comp__baselibs_concurrency, comp__baselibs_safecpp

.. needarch::
:scale: 50
Expand Down
4 changes: 1 addition & 3 deletions docs/modules/baselibs/docs/release/release_note.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,4 @@ Release Note
:security: YES
:realizes: wp__module_sw_release_note

The following releases notes are available for Baselibs module:

- v0.1.3 (as part of S-CORE 0.5 Alpha Release): <https://github.com/eclipse-score/baselibs/releases/tag/v0.1.3>`_
For the release notes, see the `Baselibs releases <https://github.com/eclipse-score/baselibs/releases>`_ on GitHub.
36 changes: 29 additions & 7 deletions docs/modules/baselibs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,39 @@ Baselibs Module

.. toctree::
:titlesonly:
:maxdepth: 2
:hidden:
:glob:

./docs/index
language/index
./*/docs/index

Components
==========

.. toctree::
:titlesonly:
:maxdepth: 1
:glob:

./*/docs/index
- :need:`doc__bitmanipulation`: Utilities for bit manipulation.
- :need:`doc__concurrency`: Provides a generic interface to execute any C++ callable in a parallel context,
supporting various execution strategies (e.g., thread pool, timed execution), thread safety,
interruption handling, and periodic/delayed task execution.
- :need:`doc__containers`: Offers a ``DynamicArray`` (fixed-size array with dynamic construction-time size)
and an intrusive linked list implementation conforming to the
`P0406R1 proposal <https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0406r1.html>`_.
- :need:`doc__json`: JSON abstraction layer that can switch between different parsers/serializers under the hood.
- :need:`doc__filesystem`: Filesystem manipulation library similar to ``std::filesystem``.
- :need:`doc__futurecpp`: Extends the C++17 Standard Library with features from newer C++ standards up to C++26,
as well as selected proposals for the C++ Standard Library.
- :need:`doc__safecpp`: A collection of utilities that helps developers write safer C++ code, including
overflow-safe arithmetic, scoped callable execution, abort-on-exception enforcement, atomic overflow
prevention, null-terminated string view utilities, and coverage data preservation in GTest death tests.
- :need:`doc__memory`: Utility library for memory handling, including an abstraction layer for shared memory.
- :need:`doc__os`: OS Abstraction Layer (OSAL) to interface with different POSIX-like operating systems such
as Linux and QNX.
- :need:`doc__result`: Provides a unified approach to error handling without exceptions, conforming to C++23
``std::expected``.
- :need:`doc__static_reflection_with_serialization`: A header-only library for binary serialization,
deserialization, and compile-time type reflection of heterogenuous C++ data structures with focus
on compile-time safety and efficiency of serialization, as well as efficiency of filtering by
content during deserialization.
- *mw::log*: Logging frontend.
- :need:`doc__utils`: Provides a collection of small, reusable utilities that do not fit into the other
base libraries.
2 changes: 1 addition & 1 deletion docs/modules/communication/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

.. mod:: Communication
:id: mod__com_communication
:includes: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend
:includes: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend, comp__com_message_passing

.. needarch::
:scale: 50
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ IPC Binding Component Architecture
:security: YES
:safety: ASIL_B
:status: valid
:uses: logic_arc_int__logging__logging, logic_arc_int__tracing__tracing, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__json
:uses: logic_arc_int__logging__logging, logic_arc_int__tracing__tracing, logic_arc_int__baselibs__memory_shared, logic_arc_int__com__message_passing, logic_arc_int__baselibs__json

.. needarch::
:scale: 50
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ Message Passing Component Architecture
**************************************

.. comp:: Message Passing
:id: comp__baselibs_message_passing
:id: comp__com_message_passing
:security: YES
:safety: ASIL_B
:status: valid
:implements: logic_arc_int__baselibs__message_passing
:implements: logic_arc_int__com__message_passing
:uses: logic_arc_int__os__message_passing

.. needarch::
Expand All @@ -31,14 +31,14 @@ Message Passing Component Architecture


.. logic_arc_int:: Message Passing
:id: logic_arc_int__baselibs__message_passing
:id: logic_arc_int__com__message_passing
:security: YES
:safety: ASIL_B
:status: valid

.. logic_arc_int_op:: Send Message
:id: logic_arc_int_op__baselibs__mp_register
:id: logic_arc_int_op__com__mp_register
:security: YES
:safety: ASIL_B
:status: valid
:included_by: logic_arc_int__baselibs__message_passing
:included_by: logic_arc_int__com__message_passing
Loading