DEENESPTFRRUARHIKOZHNL

struct ara::diag::SovdContentConcurrencyType

[SWS_DM_02182] Upstream: RS_Diag_04166

struct SovdContentConcurrencyType {...};

Specifies the Concurrency type of a SOVD Content related port.

Header-Datei#include "ara/diag/concurrency.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

User GuideAI-GENERATED

Defines the concurrency behavior for read and write accesses to SOVD contents in Diagnostic Management.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 21b2907a6642 Provenance Open 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.

SovdConcurrencyKontext DM Diagnostic Management (DM) AppPort SOVD Content Port (Adaptive Application) DM->AppPort koordiniert Read/Write-Aufrufe PortConfig SovdContentConcurrencyType PortConfig->DM definiert Ausfuehrungsmodus AppPort->PortConfig konfiguriert

Context diagram: Interaction between Diagnostic Management, SovdContentConcurrencyType, and the SOVD port of the Adaptive Application. Sources: [SWS_DM_02182], [SWS_DM_02185], SWS Diagnostics §8.8.3 “Struct: SovdContentConcurrencyType”

Lifecycle

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:

  1. 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].
  2. 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)
  3. 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.

Member map

Class diagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__SovdContentConcurrencyType404 «struct» SovdContentConcurrencyType + read + readWrite + write

Detail view

Select an entry in the outline.

Constants

read variable

Concurrency type for Reads.

ConcurrencyType read {ConcurrencyType::kNotConcurrent};
readWrite variable

Concurrency type for calling Read and Write methods in a concurrent way. If set to kConcurrent the DM can call Read and Write APIs concurrently.

ConcurrencyType readWrite {ConcurrencyType::kNotConcurrent};
write variable

Concurrency type for Writes.

ConcurrencyType write {ConcurrencyType::kNotConcurrent};

Documentation of constants / variables

variable read [SWS_DM_02183] Upstream: RS_Diag_04166

ConcurrencyType read {ConcurrencyType::kNotConcurrent};

Concurrency type for Reads.

Header-Datei#include "ara/diag/concurrency.h"
Scopestruct ara::diag::SovdContentConcurrencyType
Symbolread
TypConcurrencyType

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_02183
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02183@rel:R25-11#db4180c6
Content hash
db4180c6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02183
Status: valid/unmigrated Version: rel:R25-11#db4180c6 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_02183@rel:R25-11#db4180c6
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variable readWrite [SWS_DM_02185] Upstream: RS_Diag_04166

ConcurrencyType readWrite {ConcurrencyType::kNotConcurrent};

Concurrency type for calling Read and Write methods in a concurrent way. If set to kConcurrent the DM can call Read and Write APIs concurrently.

Header-Datei#include "ara/diag/concurrency.h"
Scopestruct ara::diag::SovdContentConcurrencyType
SymbolreadWrite
TypConcurrencyType

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_02185
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02185@rel:R25-11#c04ffb49
Content hash
c04ffb49
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02185
Status: valid/unmigrated Version: rel:R25-11#c04ffb49 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_02185@rel:R25-11#c04ffb49
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variable write [SWS_DM_02184] Upstream: RS_Diag_04166

ConcurrencyType write {ConcurrencyType::kNotConcurrent};

Concurrency type for Writes.

Header-Datei#include "ara/diag/concurrency.h"
Scopestruct ara::diag::SovdContentConcurrencyType
Symbolwrite
TypConcurrencyType

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_02184
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02184@rel:R25-11#30544b76
Content hash
30544b76
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02184
Status: valid/unmigrated Version: rel:R25-11#30544b76 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_02184@rel:R25-11#30544b76
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill