Defines the concurrency behavior for read and write accesses to SOVD contents in Diagnostic Management.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 21b2907a6642ProvenanceOpen questions (3)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Defines the concurrency behavior for read and write accesses to SOVD contents in Diagnostic Management.
The struct ara::diag::SovdContentConcurrencyType specifies the concurrency behavior for port-related SOVD contents in AUTOSAR Adaptive [SWS_DM_02182]. Via three attributes, it controls whether Diagnostic Management may execute read and write operations on the application port in parallel or must serialize them. By default, all fields are defensively initialized to kNotConcurrent, so that developers must explicitly enable concurrency as in readWrite[SWS_DM_02185]. The configuration should be completed before diagnostic communication begins in order to ensure thread-safe processing.
Context
The data structure ara::diag::SovdContentConcurrencyType is declared in the header ara/diag/concurrency.h and serves to specify the concurrency behavior for ports in the context of Service-Oriented Vehicle Diagnostics (SOVD) [SWS_DM_02182]. In architectures based on the AUTOSAR Adaptive Platform, Diagnostic Management (DM) acts as the central entity for handling incoming diagnostic requests SWS Diagnostics p. 79. When external diagnostic clients initiate read or write accesses to diagnostic contents via SOVD, Diagnostic Management must be able to determine whether the providing Adaptive Application or the associated port is capable of processing multiple requests concurrently and thread-safely.
For this purpose, SovdContentConcurrencyType defines three configuration attributes for read-only accesses, write-only accesses, as well as combined read and write accesses SWS Diagnostics §8.8.3 “Struct: SovdContentConcurrencyType”. The structure thus acts as a configuration interface between the implementation of the application-side port and the flow control of Diagnostic Management.
As a pure data transfer and configuration struct, SovdContentConcurrencyType has a simple lifecycle without dynamic resource management or complex internal state controls [SWS_DM_02182].
Instantiation typically takes place during the configuration and initialization phase of the Adaptive Application, presumably on the stack or as part of a higher-level port management class before diagnostic communication begins. Question Q-f78487eff58a4775 (open) All member variables are defensively initialized by default upon object creation:
read is pre-allocated with ConcurrencyType::kNotConcurrent by default [SWS_DM_02183].
write is pre-allocated with ConcurrencyType::kNotConcurrent by default [SWS_DM_02184].
readWrite is pre-allocated with ConcurrencyType::kNotConcurrent by default [SWS_DM_02185].
Regarding concurrency and threading: The struct itself is a passive configuration object without its own synchronization mechanisms. Modifications to the fields should therefore be completed before the structure is passed to Diagnostic Management or read by multiple threads. After registration at the port, the configuration remains unchanged over the entire lifetime of the respective diagnostic port (interpretation: dynamic modification during runtime of the diagnostic communication is not intended by the specification). Question Q-71f96ed7cd3a6f61 (open) Cleanup of the structure instance occurs after the end of its scope according to regular C++ semantics without additional cleanup requirements.
Usage Path
The typical usage path comprises the definition of port capabilities by the application, provisioning at runtime, and evaluation by Diagnostic Management:
Configuration of capabilities: The Adaptive Application instantiates an object of type SovdContentConcurrencyType. If the implementation of the port methods is designed to be thread-safe, the corresponding attributes are specifically set to ConcurrencyType::kConcurrent. Setting readWrite to kConcurrent explicitly signals to Diagnostic Management that read and write APIs may be called concurrently [SWS_DM_02185].
Preserving default behavior: Unless a port implementation is reentrant or internally synchronized, the developer leaves the values at kNotConcurrent[SWS_DM_02183], [SWS_DM_02184]. Interpretation: In this case, Diagnostic Management ensures that incoming requests for this port are executed sequentially to prevent data conflicts. Question (open)
Flow control by the DM: During operation, Diagnostic Management receives external SOVD requests. Based on the stored configuration, the DM determines whether parallel method calls for read and write routines can be forwarded to the port or whether serialization is strictly required SWS Diagnostics §8.8.3.1.2 “readWrite”.
This guide was generated by an AI based on the AUTOSAR specification R25-11.
gemini-3.8-flash-low· 2026-10-13 · German original