Enables applications to process and respond to generic SOVD operation requests from the Diagnostic Manager.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 23f008b064deProvenanceOpen questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Enables applications to process and respond to generic SOVD operation requests from the Diagnostic Manager.
The base class serves to implement generic SOVD operation handlers for processing execution requests in Diagnostic Management [SWS_DM_02203]. After instantiation, the application activates reception via Offer(), whereupon the Diagnostic Manager forwards incoming requests via the asynchronous interface StartExecution[SWS_DM_02174][SWS_DM_02210]. Passed payload data and the cancellation handler are strictly bound to the duration of the operation [SWS_DM_02210].
Context
The class ara::diag::GenericDiagnosticSovdOperation provides a generic interface for executing operations in the context of ASAM SOVD (Service-Oriented Vehicle Diagnostics) [SWS_DM_02203]. It acts as a link between the diagnostic platform and the application-specific implementation of diagnostic routines or actions. When an external SOVD client requests an operation execution, the Diagnostic Server instance provides the corresponding SOVD method AUTOSAR_AP_SWS_Diagnostics §7.3.3.5.5.5 “Operations – Start execution of an operation”[SWS_DM_01396]. As soon as authorization or verification of a required proximity challenge has been successfully completed, the Diagnostic Manager (DM) forwards the call to the method StartExecution of the registered handler instance [SWS_DM_02174].
Lifecycle
Creation of an instance is performed via the constructor by specifying an ara::core::InstanceSpecifier, which references a PortPrototype, and a concurrency type (ConcurrencyType) [SWS_DM_02204]. Since the move constructor [SWS_DM_02206] and move assignment operator [SWS_DM_02207] are declared as protected, the class is designed as a base class for derived application-specific handlers. After instantiation, the object is in the inactive state and does not accept any requests. Forwarding of requests by the Diagnostic Manager is activated via Offer()[SWS_DM_02211]. This forwarding can be deactivated again with StopOffer()[SWS_DM_02212]. During destruction of the instance, the virtual destructor ensures proper cleanup [SWS_DM_02205]. The constructor, destructor, and move operations are specified as thread-safe, whereas Offer() and StopOffer() are not thread-safe and should typically be called during the initialization or shutdown phase of the process.
The regular sequence comprises offering the handler, accepting operation requests, and providing the response asynchronously:
Offer service: The application calls Offer(), whereby the Diagnostic Manager is authorized to forward incoming SOVD requests to the object [SWS_DM_02211].
Start operation: After arrival of the SOVD method and passed verification of the proximity challenge, the DM calls the pure virtual method StartExecution[SWS_DM_02174][SWS_DM_02210]. In doing so, the name of the SOVD operation (sovd_operation_name), payload data (sovd_content_data), meta information (meta_info), and a CancellationHandler are passed [SWS_DM_02210].
Return result: The method returns a ara::core::Future that contains either a synchronous response (StartSynchronousExecutionResponse) or an asynchronous response (StartAsynchronousExecutionResponse) [SWS_DM_02210]. In the case of a synchronous operation, the DM adopts the data from the result to generate the SOVD response body [SWS_DM_02176].
Stop service: Prior to destruction of the object, the application stops forwarding by means of StopOffer()[SWS_DM_02212].
When using the interface, administrative as well as protocol-specific errors can occur:
Already offered: Calling Offer() again on an already offered instance fails with the error code DiagOfferErrc::kAlreadyOffered[SWS_DM_02211].
SOVD error: If the execution of the operation fails, a corresponding negative response code according to ISO 17978-3 or ASAM SOVD 1.1 must be returned in ara::core::Future[SWS_DM_02210].
Cancellation: The application is notified via the passed object cancellation_handler if the ongoing request is cancelled. The specification explicitly prohibits storing or accessing this handler beyond the lifetime of the ongoing operation [SWS_DM_02210]. In addition, the passed input data in sovd_content_data remain valid only until the associated promise has been fulfilled or processing has been cancelled [SWS_DM_02210].
This guide is based exclusively on the specification AUTOSAR Adaptive Platform R25-11 (module diag) and was automatically curated.
This Offer will enable the DM to forward request messages to this handler.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e7a3d094ee66ProvenanceOpen questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
The method Offer of class ara::diag::GenericDiagnosticSovdOperation enables the forwarding of incoming diagnostic and service requests from Diagnostic Management (DM) to the respective handler [SWS_DM_02211]. The function takes no parameters, declares noexcept, and returns an ara::core::Result<void>[SWS_DM_02211]. Interpretation: Since no ara::core::Future is returned, activation of forwarding is likely completed synchronously during the method call. Question Q-d9213a2118672440 (open)
Regarding error handling, the interface guarantees rollback semantics [SWS_DM_02211]. If the service was already offered for this handler instance previously, the call fails and returns the error code DiagOfferErrc::kAlreadyOffered[SWS_DM_02211]. This error state corresponds to the failure scenario defined in diagnostic error domains for multiple registrations [SWS_DM_00514].
For concurrency and the invocation context, the following constraints apply:
Thread safety: The operation is specified as not thread-safe, but exception safe[SWS_DM_02211]. Concurrent invocations on the same handler instance must be synchronized on the application side.
State ordering:Offer must be called before forwarding requests [SWS_DM_02211]. Calling it again without revoking it in the meantime leads to an error.
In the overall system, Offer follows the uniform offering pattern of Adaptive Diagnostic Management, as defined analogously for generic routines [SWS_DM_00557], UDS services [SWS_DM_00619], or communication controls [SWS_DM_00809]. This principle is specifically designed for ara::diag and must not be confused with service offering in ara::com (SWS Diagnostics §7.3.4.1.2 “Monitors”).
This text was generated by an AI based on the AUTOSAR R25-11 specification.
sovd_operation_name: Name of the SOVD operation to be executed [SWS_DM_02210].
sovd_content_data: Input data of the operation, which remains valid until the associated promise is fulfilled or processing is canceled via the cancellation handler [SWS_DM_02210].
meta_info: Additional meta-information regarding the diagnostic context [SWS_DM_02210].
cancellation_handler: Reports a cancellation of the ongoing request; this object must not be stored or referenced beyond the lifetime of the operation [SWS_DM_02210].
As return value, the function provides an ara::core::Future with an ara::core::Variant from StartSynchronousExecutionResponse or StartAsynchronousExecutionResponse[SWS_DM_02210]. In case of synchronous execution, Diagnostic Management sets the parameters in the SOVD response body from the content data of the response [SWS_DM_02176]. In case of asynchronous processing, Diagnostic Management assigns a unique identifier (id) to identify the running operation and sets the execution status [SWS_DM_02177].
A future with either StartSynchronousExecutionResponse or StartAsynchronousExecutionResponse(for a positive response message) or a SOVD Error (for an negative response message)
Fehler
Fehlercode
Beschreibung
Please use an applicable SOVD error code, as defined in ISO 17978-3 / ASAM SOVD 1.1.
Request a governed re-review of this record. The record is not changed immediately.
This StopOffer will disable the forwarding of request messages from DM.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: ab28d5476140ProvenanceOpen questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
The method StopOffer of class ara::diag::GenericDiagnosticSovdOperation from header ara/diag/generic_diagnostic_sovd_operation.h serves to deactivate the forwarding of incoming request messages from Diagnostic Management (DM) to the operation [SWS_DM_02212].
Usage and semantics: The function has the signature void StopOffer() noexcept;, takes no parameters, and returns no value [SWS_DM_02212]. Because no asynchronous return types such as futures or callbacks are defined, deactivation is likely to take effect synchronously immediately during the invocation. Question Q-b0723617991a4e39 (open) It is declared as exception-safe (exception safe) [SWS_DM_02212].
Concurrency and error handling: The interface is specified as not thread-safe (not thread-safe) [SWS_DM_02212]. Therefore, concurrent accesses to the same instance must be synchronized at the application level. Neither error codes are returned nor are specific DET or DEM messages generated [SWS_DM_02212].
Interplay:StopOffer follows the standardized service provider pattern of AUTOSAR Adaptive Diag. Analogous methods exist for other diagnostic interfaces such as generic routines [SWS_DM_00558], generic UDS services [SWS_DM_00620], data identifiers [SWS_DM_00639], or download services [SWS_DM_00793]. Although the name is modeled after ara::com, it is an independent diagnostic implementation AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.
This text was created by an AI and serves as guidance based on the AUTOSAR specification.
gemini-3.8-flash-low· 2026-10-13 · German original