Skip to main content

ara::diag

Overview

The Diagnostics Functional Cluster implements UDS diagnostic services, DoIP entity control and diagnostic event handling. This page specifies the public API of the ara::diag namespace, organized by header file in three groups: diagnostic communication (§1–§28), DoIP (§29–§33), and diagnostic events and monitors (§34–§45). The SOVD APIs are not covered here.

Library · Headers · Linking

  • Library: lib/libpara_diag.so
  • CMake: find_package(para-diag)para::diag
  • Standard headers: include/ara/diag/
  • Vendor headers: include/para/diag/
  • Runtime daemon: bin/DM

1 Header: ara/diag/authentication.h

1.1 Class: Authentication

Kind:class
Port Interfaces:DiagnosticAuthenticationInterface
Header file:#include "ara/diag/authentication.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:Authentication
Syntax:class Authentication {...};
Description:Class to implement the Service Authentication interfaces to application.

1.1.1 Public Member Functions

1.1.1.1 Special Member Functions
1.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:Authentication (Authentication &&) noexcept=delete;
Description:Move constructor of Authentication.
1.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:ara::diag::Authentication & operator= (ara::diag::Authentication &&)=delete;
Description:Move assignment operator of Authentication.
1.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:virtual ~Authentication () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of Authentication.
1.1.1.2 Constructors
1.1.1.2.1 Authentication(const InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:explicit Authentication (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticAuthenticationInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticAuthenticationPortMapping needs to be typed by a DiagnosticAuthenticationInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of Authentication.
1.1.1.2.2 Authentication(Authentication&)
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:Authentication (Authentication &)=delete;
Description:Authentication shall be a single not copy-able instance.
1.1.1.3 Member Functions
1.1.1.3.1 Offer
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
1.1.1.3.2 StopOffer
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
1.1.1.3.3 VerifyCertificateBidirectional
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:virtual ara::core::Future< std::tuple< ara::core::Vector< ara::core::Byte >, ara::core::Vector< ara::core::Byte >, ara::core::Vector< ara::core::Byte >, ara::core::Vector< ara::core::Byte > > > VerifyCertificateBidirectional (ara::core::Byte communicationConfiguration, ara::core::Span< const ara::core::Byte > clientCertificate, ara::core::Span< const ara::core::Byte > clientChallenge, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):communicationConfigurationAs defined in ISO 14229-1:2020, this parameter provides information about how to proceed with security in further diagnostic communication after the Authentication.
clientCertificateThe certificate that is received from the tester during Bidirectional Authentication.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
clientChallengeAs defined in ISO14229-1:2020, this parameter provides the challenge received from the tester during Bidirectional Authentication, Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< std::tuple< ara::core::Vector< ara::core::Byte >, ara::core::Vector< ara::core::Byte >, ara::core::Vector< ara::core::Byte >, ara::core::Vector< ara::core::Byte > > >Returns the challenge created by the application, Certificate of the server, ProofOfOwnership calculated by the server, Ephemeral Public Key of server.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:This function accepts the certificate and challenge received from the tester, verifies the certificate, and creates a challenge, Ephemeral Public Key and Proof Of Ownership that must be returned to the tester. The function also returns the server certificate that will be used by the tester to verify the Proof Of Ownership. This callback may be called re-entrant to requests from different clients.
1.1.1.3.4 VerifyCertificateUnidirectional
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:virtual ara::core::Future< std::tuple< ara::core::Vector< ara::core::Byte >, ara::core::Vector< ara::core::Byte > > > VerifyCertificateUnidirectional (ara::core::Byte communicationConfiguration, ara::core::Span< const ara::core::Byte > clientCertificate, ara::core::Span< const ara::core::Byte > clientChallenge, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):communicationConfigurationAs defined in ISO14229-1:2020 ISO-14229-1-2020, this parameter provides information about how to proceed with security in further diagnostic communication after the Authentication.
clientCertificateThe certificate that is received from the tester during Unidirectional Authentication.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
clientChallengeAs defined in ISO14229-1:2020 ISO-14229-1-2020, this parameter provides the challenge received fom the tester during Unidirectional Authentication. This parameter has a dependency on the CommunicationConfiguration used.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< std::tuple< ara::core::Vector< ara::core::Byte >, ara::core::Vector< ara::core::Byte > > >Returns challenge created by the application, Ephemeral Public Key of Server
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:This function accepts the certificate received from the tester, verifies it, and creates a challenge and ephemeral public key that must be returned to the tester. This callback may be called re-entrant to requests from different clients
1.1.1.3.5 VerifyOwnership
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:virtual ara::core::Future< ara::core::Vector< ara::core::Byte > > VerifyOwnership (ara::core::Span< const ara::core::Byte > clientPOWN, ara::core::Span< const ara::core::Byte > clientEphemeralPublicKey, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):clientPOWNThe Proof Of Ownership provided by the Tester to the previously exchanged Server Challenge, Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
clientEphemeralPublicKeyAs defined in ISO14229-1:2020, this is the Ephemeral public key generated by the client for Diffie-Hellman key agreement, Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< ara::core::Vector< ara::core::Byte > >Session Key Info or error
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:This function accepts the Proof Of Ownership received from the tester and verifies it with the Public Key of the certificate received in the verifyCertificateUnidirectional / verifyCertificateBidirectional against the server challenge created in the last call to verifyCertificateUnidirectional / verifyCertificateBidirectional.
1.1.1.3.6 operator=
Kind:function
Header file:#include "ara/diag/authentication.h"
Scope:ara::diag::Authentication
Syntax:ara::diag::Authentication & operator= (ara::diag::Authentication &)=delete;
Description:Authentication shall be a single not assignable instance.

2 Header: ara/diag/cancellation_handler.h

2.1 Class: CancellationHandler

Kind:class
Header file:#include "ara/diag/cancellation_handler.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:CancellationHandler
Syntax:class CancellationHandler final {...};
Description:CancellationHandler contains a shared state if the processing should be cancelled.

2.1.1 Public Member Types

2.1.1.1 Type Alias: CancellationHandlerSetNotifier
Kind:type alias
Header file:#include "ara/diag/cancellation_handler.h"
Scope:ara::diag::CancellationHandler
Symbol:CancellationHandlerSetNotifier
Syntax:using CancellationHandlerSetNotifier = std::function<void(void)>;
Thread Safety:not thread-safe
Description:Notifier function which is called if the diagnostic service execution is cancelled in DM.

2.1.2 Public Member Functions

2.1.2.1 Special Member Functions
2.1.2.1.1 Copy Constructor
Kind:function
Header file:#include "ara/diag/cancellation_handler.h"
Scope:ara::diag::CancellationHandler
Syntax:CancellationHandler (const CancellationHandler &)=delete;
Description:CancellationHandler shall be a single not copy-able instance.
2.1.2.1.2 Default Constructor
Kind:function
Header file:#include "ara/diag/cancellation_handler.h"
Scope:ara::diag::CancellationHandler
Syntax:CancellationHandler ()=delete;
Description:CancellationHandler shall not be constructable by applications but the DM core only.
2.1.2.1.3 Move Constructor
Kind:function
Header file:#include "ara/diag/cancellation_handler.h"
Scope:ara::diag::CancellationHandler
Syntax:CancellationHandler (CancellationHandler &&other) noexcept=default;
Parameters (in):otherObject to move-construct from.
Exception Safety:exception safe
Description:Move constructor of CancellationHandler.
2.1.2.1.4 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/cancellation_handler.h"
Scope:ara::diag::CancellationHandler
Syntax:ara::diag::CancellationHandler & operator= (ara::diag::CancellationHandler &&other) noexcept=default;
Parameters (in):otherObject to move-assign from
Return value:CancellationHandler &CancellationHandler & Reference to self.
Exception Safety:exception safe
Description:Move assignment operator of CancellationHandler.
2.1.2.2 Member Functions
2.1.2.2.1 IsCanceled
Kind:function
Header file:#include "ara/diag/cancellation_handler.h"
Scope:ara::diag::CancellationHandler
Syntax:bool IsCanceled () const noexcept;
Return value:boolbool Returns true, if the diagnostic service execution is cancelled in DM.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Reports whether the diagnostic service execution is cancelled in DM.
2.1.2.2.2 SetNotifier
Kind:function
Header file:#include "ara/diag/cancellation_handler.h"
Scope:ara::diag::CancellationHandler
Syntax:void SetNotifier (ara::diag::CancellationHandler::CancellationHandlerSetNotifier notifier) noexcept;
Parameters (in):notifierNotification function that is called upon diagnostic service execution is cancelled in DM.
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Registering a notifier function which is called if the diagnostic service execution is cancelled in DM. A consecutive call of this method will overwrite the previous registered notifier.
2.1.2.2.3 operator=
Kind:function
Header file:#include "ara/diag/cancellation_handler.h"
Scope:ara::diag::CancellationHandler
Syntax:ara::diag::CancellationHandler & operator= (ara::diag::CancellationHandler &)=delete;
Description:CancellationHandler shall be a single not assignable instance.

3 Header: ara/diag/client_authentication.h

3.1 Class: ClientAuthentication

Kind:class
Header file:#include "ara/diag/client_authentication.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ClientAuthentication
Syntax:class ClientAuthentication final {...};
Description:Interface for the application to inform the Diagnostic Server instance about the authentication states and the user roles that are currently authenticated.

3.1.1 Public Member Types

3.1.1.1 Type Alias: ClientAuthenticationSetNotifier
Kind:type alias
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Symbol:ClientAuthenticationSetNotifier
Syntax:using ClientAuthenticationSetNotifier = std::function<void(DiagnosticAuthState)>;
Thread Safety:not thread-safe
Description:Notifier Function that is called by the Diagnostic Server instance when an Authentication Status Change Occurs. This may be used, for e.g, to notify the application when a transition to ara::diag::ClientAuthentication::DiagnosticAuthState.kDeAuthenticated State occurred due to an S3 timeout.
3.1.1.2 Type Alias: DiagnosticAuthRole
Kind:type alias
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Symbol:DiagnosticAuthRole
Syntax:using DiagnosticAuthRole = ara::core::String;
Description:The supported values for the Diagnostic Authentication roles are specified in the Diagnostic Extract.
3.1.1.3 Enumeration: DiagnosticAuthState
Kind:enumeration
Header file:#include "ara/diag/client_authentication.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::ClientAuthentication
Symbol:DiagnosticAuthState
Underlying type:std::uint8_t
Syntax:enum class DiagnosticAuthState : std::uint8_t {...};
Values:kDeAuthenticated= 0x00
No Diagnostic Clients are currently authenticated.
kAuthenticated= 0x01
A Diagnostic Client is currently authenticated.
Description:Possible values of the Authentication State of the client.

3.1.2 Public Member Functions

3.1.2.1 Special Member Functions
3.1.2.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:ClientAuthentication (ClientAuthentication &&other) noexcept=default;
Parameters (in):otherObject to move-construct from
Exception Safety:exception safe
Description:Move constructor of ClientAuthentication.
3.1.2.1.2 Destructor
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:~ClientAuthentication () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of ClientAuthentication.
3.1.2.2 Constructors
3.1.2.2.1 ClientAuthentication
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:ClientAuthentication (ClientAuthentication const &other)=delete;
Description:Copy constructor of ClientAuthentication cannot be used.
3.1.2.3 Member Functions
3.1.2.3.1 Authenticate
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:ara::core::Result< ara::diag::ClientAuthenticationHandle > Authenticate (ara::core::Vector< ara::diag::ClientAuthentication::DiagnosticAuthRole > userRoles) noexcept;
Parameters (in):userRolesThe user roles to set on the diagnostic client
Return value:ara::core::Result< ClientAuthenticationHandle >A handler of the Authentication State, which can be used by the application to set or extend the DynamicAccessList
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This function is used by the application to report the authenticated state to the Diagnostic Server instance. The authentication could be either done using the Authentication interfaces of the Diagnostic Server instance, or through other means in the application.
3.1.2.3.2 GetState
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:ara::core::Result< ara::diag::ClientAuthentication::DiagnosticAuthState > GetState () const noexcept;
Return value:ara::core::Result< DiagnosticAuthState >The Authentication State of the Diagnostic Client or error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This function is used by the application to query the current authentication state of the diagnostic client.
3.1.2.3.3 OverrideDefaultRoles
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:ara::core::Result< ara::diag::ClientAuthenticationHandle > OverrideDefaultRoles (ara::core::Vector< ara::diag::ClientAuthentication::DiagnosticAuthRole > defaultRoles, std::chrono::milliseconds timeout) noexcept;
Parameters (in):defaultRolesThe default roles requested by the application, to be set on the diagnostic client
timeoutThe timeout until which the override request is active
Return value:ara::core::Result< ClientAuthenticationHandle >Operation result
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This method is used by the application to temporarily change the default AuthenticationRole for a Diagnostic Server Instance. The diagnostic services allowed in the passed defaultRoles are now accessible to the tester for a time period defined in the parameter timeout.
3.1.2.3.4 SetNotifier
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:ara::core::Result< void > SetNotifier (ara::diag::ClientAuthentication::ClientAuthenticationSetNotifier notifier) noexcept;
Parameters (in):notifierThe notifier to call on state transition
Return value:ara::core::Result< void >Returns void.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:This function is used by the application to set a Notifier function that shall be called by the Diagnostic Server instance when an Authentication Status Change occurs. This may be used, e.g, to notify the application when a transition to ara::diag::ClientAuthentication::DiagnosticAuthState.kDeAuthenticated state occurred due to an S3 timeout. A consecutive call of this method will overwrite the previous registered notifier.
3.1.2.3.5 operator=(ClientAuthentication&&) &
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:auto operator= (ara::diag::ClientAuthentication &&other) & noexcept -> ara::diag::ClientAuthentication & =default;
Parameters (in):otherObject to move-assign from.
Return value:ClientAuthenticationClientAuthentication& Reference to self.
Exception Safety:exception safe
Description:Move assignment operator of ClientAuthentication.
3.1.2.3.6 operator=(ClientAuthentication const&)
Kind:function
Header file:#include "ara/diag/client_authentication.h"
Scope:ara::diag::ClientAuthentication
Syntax:auto operator= (ara::diag::ClientAuthentication const &other) -> ara::diag::ClientAuthentication &=delete;
Description:Copy assignment operator of ClientAuthentication cannot be used.

4 Header: ara/diag/client_authentication_handle.h

4.1 Class: ClientAuthenticationHandle

Kind:class
Header file:#include "ara/diag/client_authentication_handle.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ClientAuthenticationHandle
Syntax:class ClientAuthenticationHandle final {...};
Description:Definition of the ClientAuthenticationHandle which is returned to the application when an AuthenticationState is set by the application.

4.1.1 Public Member Functions

4.1.1.1 Special Member Functions
4.1.1.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:ClientAuthenticationHandle () noexcept;
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Constructor of ClientAuthenticationHandle.
4.1.1.1.2 Move Constructor
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:ClientAuthenticationHandle (ClientAuthenticationHandle &&other) noexcept=default;
Parameters (in):otherObject to move-construct from
Exception Safety:exception safe
Description:Move constructor of ClientAuthenticationHandle.
4.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:~ClientAuthenticationHandle () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of ClientAuthenticationHandle.
4.1.1.2 Constructors
4.1.1.2.1 ClientAuthenticationHandle
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:ClientAuthenticationHandle (ClientAuthenticationHandle const &other)=delete;
Description:Copy constructor of ClientAuthenticationHandle cannot be used.
4.1.1.3 Member Functions
4.1.1.3.1 Append
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:ara::core::Result< void > Append (ara::diag::DiagnosticServiceDynamicAccessList dynamicAccessList) noexcept;
Parameters (in):dynamicAccessListThe DynamicAccessList to be appended in the client.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This function is used by the application to append a DynamicAccessList to the already existing DynamicAccessList of a Diagnostic Conversation.
4.1.1.3.2 Refresh
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:ara::core::Result< void > Refresh () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This function is used by the application to refresh the timer that was started by SWS_DM_01142.ara::diag::ClientAuthentication::Authenticate or SWS_DM_01141.ara::diag::ClientAuthentication::OverrideDefaultRoles. If both Methods were previously called, both timers are refreshed.
4.1.1.3.3 Revoke
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:ara::core::Result< void > Revoke () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This function is used by the application to de-authenticate a client, and also to clear the DynamicAccessList and any overridden defaults.
4.1.1.3.4 Set
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:ara::core::Result< void > Set (ara::diag::DiagnosticServiceDynamicAccessList dynamicAccessList) noexcept;
Parameters (in):dynamicAccessListThe new DynamicAccessList to be set in the client.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This function is used by the application to set/replace a DynamicAccessList of a Diagnostic Conversation.
4.1.1.3.5 operator=(ClientAuthenticationHandle&&) &
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:auto operator= (ara::diag::ClientAuthenticationHandle &&other) & noexcept -> ara::diag::ClientAuthenticationHandle & =default;
Parameters (in):otherObject to move-assign from.
Return value:ClientAuthenticationHandleClientAuthenticationHandle& Reference to self.
Exception Safety:exception safe
Description:Move assignment operator of ClientAuthenticationHandle.
4.1.1.3.6 operator=(ClientAuthenticationHandle const&)
Kind:function
Header file:#include "ara/diag/client_authentication_handle.h"
Scope:ara::diag::ClientAuthenticationHandle
Syntax:auto operator= (ara::diag::ClientAuthenticationHandle const &other) -> ara::diag::ClientAuthenticationHandle &=delete;
Description:Copy assignment operator of CancellationHandler cannot be used.

5 Header: ara/diag/communication_control.h

5.1 Class: CommunicationControl

Kind:class
Port Interfaces:DiagnosticComControlInterface
Header file:#include "ara/diag/communication_control.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:CommunicationControl
Syntax:class CommunicationControl {...};
Description:0x28 CommunicationControl interface

5.1.1 Public Member Functions

5.1.1.1 Special Member Functions
5.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:CommunicationControl (CommunicationControl &&) noexcept=delete;
Description:Move constructor of CommunicationControl.
5.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:ara::diag::CommunicationControl & operator= (ara::diag::CommunicationControl &&)=delete;
Description:Move assignment operator of CommunicationControl.
5.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:virtual ~CommunicationControl () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class CommunicationControl.
5.1.1.2 Constructors
5.1.1.2.1 CommunicationControl(const InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:explicit CommunicationControl (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticComControlInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent)..
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticComControlInterface needs to be referenced by a DiagnosticServiceGenericMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of CommunicationControl.
5.1.1.2.2 CommunicationControl(CommunicationControl&)
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:CommunicationControl (CommunicationControl &)=delete;
Description:CommunicationControl shall be a single not copy-able instance.
5.1.1.3 Member Functions
5.1.1.3.1 CommCtrlRequest
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:virtual ara::core::Future< void > CommCtrlRequest (ara::diag::CommunicationControl::ComCtrlRequestParamsType controlType, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):controlTypeAll UDS request parameters packed into a structure since it holds optional elements
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for CommunicationControl (0x28) with any subfunction as subfunction value is part of the argument list.
5.1.1.3.2 Offer
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
5.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
5.1.1.3.4 operator=
Kind:function
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl
Syntax:ara::diag::CommunicationControl & operator= (ara::diag::CommunicationControl &)=delete;
Description:CommunicationControl shall be a single not assignable instance.

5.2 Struct: ComCtrlRequestParamsType

Kind:struct
Header file:#include "ara/diag/communication_control.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::CommunicationControl
Symbol:ComCtrlRequestParamsType
Syntax:struct ComCtrlRequestParamsType {...};
Description:ComCtrlRequestParamsType is a structure, which holds all parameters of an UDS 0x28 communicationControl request.

5.2.1 Public Member Variables

5.2.1.1 communicationType
Kind:variable
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl::ComCtrlRequestParamsType
Symbol:communicationType
Type:std::uint8_t
Syntax:std::uint8_t communicationType;
Description:CommunicationType from UDS request.
5.2.1.2 controlType
Kind:variable
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl::ComCtrlRequestParamsType
Symbol:controlType
Type:std::uint8_t
Syntax:std::uint8_t controlType;
Description:ControlType from UDS request.
5.2.1.3 nodeIdentificationNumber
Kind:variable
Header file:#include "ara/diag/communication_control.h"
Scope:ara::diag::CommunicationControl::ComCtrlRequestParamsType
Symbol:nodeIdentificationNumber
Type:std::uint16_t
Syntax:std::uint16_t nodeIdentificationNumber;
Description:Node identifier to which the request is addressed to.

6 Header: ara/diag/concurrency.h

6.1 Non-Member Types

6.1.1 Enumeration: ConcurrencyType

Kind:enumeration
Header file:#include "ara/diag/concurrency.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ConcurrencyType
Underlying type:std::uint8_t
Syntax:enum class ConcurrencyType : std::uint8_t {...};
Values:kConcurrent= 0x00
API allows concurrent access (thread-safe)
kNotConcurrent= 0x01
Concurrent access not allowed (not thread-safe)
Description:Specifies the Concurrency types.

6.2 Struct: DataIdentifierConcurrencyType

Kind:struct
Header file:#include "ara/diag/concurrency.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DataIdentifierConcurrencyType
Syntax:struct DataIdentifierConcurrencyType {...};
Description:Specifies the Concurrency type of a DataIdentifier related port.

6.2.1 Public Member Variables

6.2.1.1 read
Kind:variable
Header file:#include "ara/diag/concurrency.h"
Scope:ara::diag::DataIdentifierConcurrencyType
Symbol:read
Type:ConcurrencyType
Syntax:ConcurrencyType read {ConcurrencyType::kNotConcurrent};
Description:Concurrency type for Reads.
6.2.1.2 readWrite
Kind:variable
Header file:#include "ara/diag/concurrency.h"
Scope:ara::diag::DataIdentifierConcurrencyType
Symbol:readWrite
Type:ConcurrencyType
Syntax:ConcurrencyType readWrite {ConcurrencyType::kNotConcurrent};
Description:Concurrency type for calling Read and Write methods in a concurrent way. If set to ara::diag::ConcurrencyType.kConcurrent the DM can call Read and Write APIs concurrently.
6.2.1.3 write
Kind:variable
Header file:#include "ara/diag/concurrency.h"
Scope:ara::diag::DataIdentifierConcurrencyType
Symbol:write
Type:ConcurrencyType
Syntax:ConcurrencyType write {ConcurrencyType::kNotConcurrent};
Description:Concurrency type for Writes.

7 Header: ara/diag/conversation.h

7.1 Non-Member Types

7.1.1 Enumeration: ActivityStatusType

Kind:enumeration
Header file:#include "ara/diag/conversation.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ActivityStatusType
Underlying type:std::uint8_t
Syntax:enum class ActivityStatusType : std::uint8_t {...};
Values:kActive= 0x00
Currently active; i.e. request is currently processed or non-default session is active.
kInactive= 0x01
Currently not active.
Description:Type for current activity status.

7.1.2 Type Alias: SecurityLevelType

Kind:type alias
Header file:#include "ara/diag/conversation.h"
Scope:namespace ara::diag
Symbol:SecurityLevelType
Syntax:using SecurityLevelType = std::uint8_t;
Description:Type for the active security level. .

7.1.3 Type Alias: SessionControlType

Kind:type alias
Header file:#include "ara/diag/conversation.h"
Scope:namespace ara::diag
Symbol:SessionControlType
Syntax:using SessionControlType = std::uint8_t;
Description:Type for the active diagnostic session. .

7.2 Global Variables

7.2.1 kDefaultSession

Kind:variable
Header file:#include "ara/diag/conversation.h"
Scope:namespace ara::diag
Symbol:kDefaultSession
Type:SessionControlType
Syntax:constexpr SessionControlType kDefaultSession = 0x01;
Description:Default session according to IS0 14229-1.

7.2.2 kExtendedDiagnosticSession

Kind:variable
Header file:#include "ara/diag/conversation.h"
Scope:namespace ara::diag
Symbol:kExtendedDiagnosticSession
Type:SessionControlType
Syntax:constexpr SessionControlType kExtendedDiagnosticSession = 0x03;
Description:Extended diagnostic session according to IS0 14229-1.

7.2.3 kLocked

Kind:variable
Header file:#include "ara/diag/conversation.h"
Scope:namespace ara::diag
Symbol:kLocked
Type:SecurityLevelType
Syntax:constexpr SecurityLevelType kLocked = 0x00;
Description:Security level locked.

7.2.4 kProgrammingSession

Kind:variable
Header file:#include "ara/diag/conversation.h"
Scope:namespace ara::diag
Symbol:kProgrammingSession
Type:SessionControlType
Syntax:constexpr SessionControlType kProgrammingSession = 0x02;
Description:Programming session according to IS0 14229-1.

7.2.5 kSafetySystemDiagnosticSession

Kind:variable
Header file:#include "ara/diag/conversation.h"
Scope:namespace ara::diag
Symbol:kSafetySystemDiagnosticSession
Type:SessionControlType
Syntax:constexpr SessionControlType kSafetySystemDiagnosticSession = 0x04;
Description:Safety system diagnostic session according to IS0 14229-1.

7.3 Class: Conversation

Kind:class
Header file:#include "ara/diag/conversation.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:Conversation
Syntax:class Conversation final {...};
Description:Conversation interface.

7.3.1 Public Member Types

7.3.1.1 Type Alias: ActivityStatusTypeNotifier
Kind:type alias
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Symbol:ActivityStatusTypeNotifier
Syntax:using ActivityStatusTypeNotifier = std::function<void(ActivityStatusType)>;
Thread Safety:not thread-safe
Description:Register a notifier function which is called if the activity is changed.
7.3.1.2 Type Alias: SecurityLevelTypeNotifier
Kind:type alias
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Symbol:SecurityLevelTypeNotifier
Syntax:using SecurityLevelTypeNotifier = std::function<void(SecurityLevelType)>;
Thread Safety:not thread-safe
Description:Register a notifier function which is called if the SecurityLevel is changed.
7.3.1.3 Type Alias: SessionControlTypeNotifier
Kind:type alias
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Symbol:SessionControlTypeNotifier
Syntax:using SessionControlTypeNotifier = std::function<void(SessionControlType)>;
Thread Safety:not thread-safe
Description:Register a notifier function which is called if the Session is changed.

7.3.2 Public Member Functions

7.3.2.1 Special Member Functions
7.3.2.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:Conversation (Conversation &&)=delete;
Description:Move constructor of conversation is deleted.
7.3.2.1.2 Copy Constructor
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:Conversation (const Conversation &)=delete;
Description:Copy constructor of conversation is deleted.
7.3.2.1.3 Copy Assignment Operator
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::diag::Conversation & operator= (const ara::diag::Conversation &)=delete;
Description:Copy assignment operator of conversation is deleted.
7.3.2.1.4 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::diag::Conversation & operator= (ara::diag::Conversation &&)=delete;
Description:Move assignment operator of conversation is deleted.
7.3.2.2 Member Functions
7.3.2.2.1 GetActivityStatus
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< ara::diag::ActivityStatusType > GetActivityStatus () noexcept;
Return value:ara::core::Result< ActivityStatusType >the activity status of the conversation
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Represents the status of an active conversation.
7.3.2.2.2 GetAllConversations
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:static ara::core::Vector< std::reference_wrapper< ara::diag::Conversation > > GetAllConversations () noexcept;
Return value:ara::core::Vector< std::reference_wrapper< Conversation > >A Vector of all possible Conversation objects
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Get all possible conversations.
7.3.2.2.3 GetConversation
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:static ara::core::Result< ara::diag::Conversation & > GetConversation (const ara::diag::MetaInfo &metaInfo) noexcept;
Parameters (in):metaInfoMetaInfo of the request.
Return value:ara::core::Result< Conversation & >Conversation object or error
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Get one conversation based on given MetaInfo.
7.3.2.2.4 GetConversationIdentifier
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< ara::diag::Conversation::ConversationIdentifierType > GetConversationIdentifier () noexcept;
Return value:ara::core::Result< ConversationIdentifierType >Returns the conversation information
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Getter for the current identification properties of the active conversation.
7.3.2.2.5 GetCurrentActiveConversations
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:static ara::core::Vector< std::reference_wrapper< ara::diag::Conversation > > GetCurrentActiveConversations () noexcept;
Return value:ara::core::Vector< std::reference_wrapper< Conversation > >A Vector of all currently active (GetActivityStatus() == ara::diag::ActivityStatusType.kActive) Conversation objects.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Get all currently active conversations.
7.3.2.2.6 GetDiagnosticSecurityLevel
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< ara::diag::SecurityLevelType > GetDiagnosticSecurityLevel () noexcept;
Return value:ara::core::Result< SecurityLevelType >Returns the current SecurityLevel
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Represents the current active diagnostic SecurityLevel of an active conversation.
7.3.2.2.7 GetDiagnosticSecurityLevelShortName
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< ara::core::StringView > GetDiagnosticSecurityLevelShortName (ara::diag::SecurityLevelType securityLevel) noexcept;
Parameters (in):securityLevelSecurity level enum the shortname shall be returned for.
Return value:ara::core::Result< ara::core::StringView >ara::core::Result<ara::core::StringView> the SecurityLevel as shortName; DiagnosticSecurityLevel.Referrable.shortName.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Converts the given diagnostic SecurityLevel into the ShortName.
7.3.2.2.8 GetDiagnosticSession
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< ara::diag::SessionControlType > GetDiagnosticSession () noexcept;
Return value:ara::core::Result< SessionControlType >the current session
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Represents the current active diagnostic session of an active conversation.
7.3.2.2.9 GetDiagnosticSessionShortName
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< ara::core::StringView > GetDiagnosticSessionShortName (ara::diag::SessionControlType session) noexcept;
Parameters (in):sessionDiagnostic session the shortname shall be returned for.
Return value:ara::core::Result< ara::core::StringView >ara::core::Result<ara::core::StringView> the session as shortName; DiagnosticSession.Referrable.shortName.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Converts the given diagnostic session into the ShortName.
7.3.2.2.10 ResetToDefaultSession
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< void > ResetToDefaultSession () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Method to reset the current session to default session.
7.3.2.2.11 SetActivityNotifier
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< void > SetActivityNotifier (ara::diag::Conversation::ActivityStatusTypeNotifier notifier) noexcept;
Parameters (in):notifiernotifier function to be called
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
7.3.2.2.12 SetDiagnosticSessionNotifier
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< void > SetDiagnosticSessionNotifier (ara::diag::Conversation::SessionControlTypeNotifier notifier) noexcept;
Parameters (in):notifiernotifier function to be called
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
7.3.2.2.13 SetSecurityLevelNotifier
Kind:function
Header file:#include "ara/diag/conversation.h"
Scope:ara::diag::Conversation
Syntax:ara::core::Result< void > SetSecurityLevelNotifier (ara::diag::Conversation::SecurityLevelTypeNotifier notifier) noexcept;
Parameters (in):notifiernotifier function to be called
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.

7.4 Struct: ConversationIdentifierType

Kind:struct
Header file:#include "ara/diag/conversation.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::Conversation
Symbol:ConversationIdentifierType
Syntax:struct ConversationIdentifierType {...};
Description:Properties allowing an identification of the conversation.

8 Header: ara/diag/data_transfer.h

8.1 Non-Member Types

8.1.1 Enumeration: DataTransferExitType

Kind:enumeration
Header file:#include "ara/diag/data_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DataTransferExitType
Underlying type:ara::core::Byte
Syntax:enum class DataTransferExitType : ara::core::Byte {...};
Values:kkAcknowledgeThe file transfer finished.
kAbortThe file transfer has been aborted.
Description:Determines transfer exit signal type.

8.2 Class: DataTransferReadByPullHandler

Kind:class
Header file:#include "ara/diag/data_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DataTransferReadByPullHandler
Syntax:class DataTransferReadByPullHandler {...};
Description:Handles data transfers initiated by RequestReadFile/-Directory with data pulled by AraDiag from the implementation.

8.2.1 Public Member Functions

8.2.1.1 Special Member Functions
8.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPullHandler
Syntax:DataTransferReadByPullHandler (DataTransferReadByPullHandler &&other) noexcept=default;
Parameters (out):otherThe other object
Exception Safety:exception safe
Description:Move constructs an instance of this class.
8.2.1.1.2 Destructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPullHandler
Syntax:virtual ~DataTransferReadByPullHandler () noexcept=default;
Exception Safety:exception safe
Description:Destructs an instance of this class. An instance of this class must not be destroyed before ExitRead() is called.
8.2.1.2 Constructors
8.2.1.2.1 DataTransferReadByPullHandler
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPullHandler
Syntax:DataTransferReadByPullHandler (DataTransferReadByPullHandler const &)=delete;
Description:Handlers shall not be copyable since only one way usage i.e. per single file transfer session.
8.2.1.3 Member Functions
8.2.1.3.1 ExitRead
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPullHandler
Syntax:virtual auto ExitRead (ara::diag::DataTransferExitType exit_type, ara::core::Span< const ara::core::Byte > transfer_request_parameter_record, MetaInfo const &meta_info, ara::diag::CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;
Parameters (in):exit_typeSpecifies the exit reason
transfer_request_parameter_recordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
meta_infoMetaInfo of the request.
cancellation_handlerThis parameter is used to
• Query the current cancellation status by calling cancellation_handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise.
• Register a notifier function by calling cancellation_handler.SetNotifier(). The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< ara::core::Vector< ara::core::Byte > >A Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with UDS ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.response_data will be placed after SID as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Exits an ongoing data transfer session.
8.2.1.3.2 Read
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPullHandler
Syntax:virtual auto Read (ara::core::Span< const ara::core::Byte > response_data, MetaInfo const &meta_info, ara::diag::CancellationHandler cancellation_handler) noexcept -> ara::core::Future< std::uint32_t >=0;
Parameters (in):response_dataThe view over a pre-allocated by AraDiag memory to write in this data chunk.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
meta_infoMetaInfo of the request.
cancellation_handlerThis parameter is used to
• Query the current cancellation status by calling cancellation_handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise.
• Register a notifier function by calling cancellation_handler.SetNotifier(). The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< std::uint32_t >A Future, which either gets readied to actual amount of data provided in the Span (for a positive response message) or readied with UDS ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in response_data will be placed after blockSequenceCounter as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Reads data chunk from the application. The first or subsequent file/directory info content chunk to be sent back to the UDS client will be composed by the application and copied into the provided by ara::diag Span with up to the requested Span size.
8.2.1.3.3 operator=(DataTransferReadByPullHandler&&) &
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPullHandler
Syntax:auto operator= (ara::diag::DataTransferReadByPullHandler &&other) & noexcept -> ara::diag::DataTransferReadByPullHandler & =default;
Parameters (out):otherThe other object
Return value:DataTransferReadByPullHandlerReference to self
Exception Safety:exception safe
Description:Move assigns an instance of this class.
8.2.1.3.4 operator=(DataTransferReadByPullHandler const&)
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPullHandler
Syntax:auto operator= (ara::diag::DataTransferReadByPullHandler const &) -> ara::diag::DataTransferReadByPullHandler &=delete;
Description:Handlers shall not be copy-able since only one way usage i.e. per single file transfer session.

8.2.2 Protected Member Functions

8.2.2.1 Special Member Functions
8.2.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPullHandler
Syntax:DataTransferReadByPullHandler () noexcept=default;
Exception Safety:exception safe
Description:Constructs an instance of this class.
Visibility:protected

8.3 Class: DataTransferReadByPushHandler

Kind:class
Header file:#include "ara/diag/data_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DataTransferReadByPushHandler
Syntax:class DataTransferReadByPushHandler {...};
Description:Handles data transfers initiated by RequestReadFile/-Directory with data pushed by the implementation.

8.3.1 Public Member Functions

8.3.1.1 Special Member Functions
8.3.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPushHandler
Syntax:DataTransferReadByPushHandler (DataTransferReadByPushHandler &&other) noexcept=default;
Parameters (out):otherThe other object
Exception Safety:exception safe
Description:Move constructs an instance of this class.
8.3.1.1.2 Destructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPushHandler
Syntax:virtual ~DataTransferReadByPushHandler () noexcept=default;
Exception Safety:exception safe
Description:Destructs an instance of this class. An instance of this class must not be destroyed before ExitRead() is called
8.3.1.2 Constructors
8.3.1.2.1 DataTransferReadByPushHandler
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPushHandler
Syntax:DataTransferReadByPushHandler (DataTransferReadByPushHandler const &)=delete;
Description:Handlers shall not be copy-able since only one way usage i.e. per single file transfer session.
8.3.1.3 Member Functions
8.3.1.3.1 ExitRead
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPushHandler
Syntax:virtual auto ExitRead (ara::diag::DataTransferExitType exit_type, ara::core::Span< const ara::core::Byte > transfer_request_parameter_record, MetaInfo const &meta_info, ara::diag::CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;
Parameters (in):exit_typeSpecifies the exit reason
transfer_request_parameter_recordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
meta_infoMetaInfo of the request.
cancellation_handlerThis parameter is used to
• Query the current cancellation status by calling cancellation_handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise.
• Register a notifier function by calling cancellation_handler.SetNotifier(). The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< ara::core::Vector< ara::core::Byte > >A Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with UDS ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.response_data will be placed after SID as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Exits an ongoing data transfer session.
8.3.1.3.2 Read
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPushHandler
Syntax:virtual auto Read (std::size_t recommended_number_bytes_to_return, MetaInfo const &meta_info, ara::diag::CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;
Parameters (in):recommended_number_bytes_to_returnThe recommended number of bytes to send back to DM in order to get optimum data throughput.
meta_infoMetaInfo of the request.
cancellation_handlerThis parameter is used to
• Query the current cancellation status by calling cancellation_handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise.
• Register a notifier function by calling cancellation_handler.SetNotifier(). The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< ara::core::Vector< ara::core::Byte > >A Future, which either gets readied to ReadPushOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for a negative response message). Data in ReadPushOutput.responseData will be placed after blockSequenceCounter as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Reads data chunk from the application. The first or subsequent file/directory info content chunk to be sent back to the UDS client will be composed by the application and its ownership is passed as a result to ara::diag.
8.3.1.3.3 operator=(DataTransferReadByPushHandler&&) &
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPushHandler
Syntax:auto operator= (ara::diag::DataTransferReadByPushHandler &&other) & noexcept -> ara::diag::DataTransferReadByPushHandler & =default;
Parameters (out):otherThe other object
Return value:DataTransferReadByPushHandlerReference to self
Exception Safety:exception safe
Description:Move assigns an instance of this class.
8.3.1.3.4 operator=(DataTransferReadByPushHandler const&)
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPushHandler
Syntax:auto operator= (ara::diag::DataTransferReadByPushHandler const &) -> ara::diag::DataTransferReadByPushHandler &=delete;
Description:Handlers shall not be assignable since only one way usage i.e. per single file transfer session.

8.3.2 Protected Member Functions

8.3.2.1 Special Member Functions
8.3.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadByPushHandler
Syntax:DataTransferReadByPushHandler () noexcept=default;
Exception Safety:exception safe
Description:Constructs an instance of this class.
Visibility:protected

8.4 Class: DataTransferReadSession

Kind:class
Header file:#include "ara/diag/data_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DataTransferReadSession
Syntax:class DataTransferReadSession final {...};
Description:Encapsulates all data transfer reading variants.

8.4.1 Public Member Functions

8.4.1.1 Special Member Functions
8.4.1.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSession
Syntax:DataTransferReadSession ()=delete;
Description:No default construction allowed.
8.4.1.1.2 Move Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSession
Syntax:DataTransferReadSession (DataTransferReadSession &&other) noexcept=default;
Parameters (out):otherThe other object
Exception Safety:exception safe
Description:Move constructs an instance of this class.
8.4.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSession
Syntax:~DataTransferReadSession () noexcept=default;
Exception Safety:exception safe
Description:Destructs an instance of this class.
8.4.1.2 Constructors
8.4.1.2.1 DataTransferReadSession
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSession
Syntax:DataTransferReadSession (DataTransferReadSession const &)=delete;
Description:DataTransferReadSession shall be a single not copy-able instance.
8.4.1.3 Member Functions
8.4.1.3.1 operator=(DataTransferReadSession const&)
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSession
Syntax:auto operator= (ara::diag::DataTransferReadSession const &) -> ara::diag::DataTransferReadSession &=delete;
Description:DataTransferReadSession shall be a single not assign-able instance.
8.4.1.3.2 operator=(DataTransferReadSession&&) &
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSession
Syntax:auto operator= (ara::diag::DataTransferReadSession &&other) & noexcept -> ara::diag::DataTransferReadSession & =default;
Parameters (out):otherThe other object
Return value:DataTransferReadSessionReference to self
Exception Safety:exception safe
Description:Move assigns an instance of this class.

8.5 Class: DataTransferReadSharedDataHandler

Kind:class
Header file:#include "ara/diag/data_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DataTransferReadSharedDataHandler
Syntax:class DataTransferReadSharedDataHandler {...};
Description:Handles data transfers initiated by RequestReadFile/-Directory with shared data from the implementation.

8.5.1 Public Member Functions

8.5.1.1 Special Member Functions
8.5.1.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSharedDataHandler
Syntax:DataTransferReadSharedDataHandler () noexcept=default;
Exception Safety:exception safe
Description:Constructs an instance of this class.
8.5.1.1.2 Move Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSharedDataHandler
Syntax:DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler &&other) noexcept=default;
Parameters (out):otherThe other object
Exception Safety:exception safe
Description:Move constructs an instance of this class.
8.5.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSharedDataHandler
Syntax:virtual ~DataTransferReadSharedDataHandler () noexcept=default;
Exception Safety:exception safe
Description:Destructs an instance of this class. An instance of this class must not be destroyed before ExitRead() is called.
8.5.1.2 Constructors
8.5.1.2.1 DataTransferReadSharedDataHandler
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSharedDataHandler
Syntax:DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler const &)=delete;
Description:Handlers shall not be copy-able since only one way usage i.e. per single file transfer session.
8.5.1.3 Member Functions
8.5.1.3.1 ExitRead
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSharedDataHandler
Syntax:virtual auto ExitRead (ara::diag::DataTransferExitType exit_type, ara::core::Span< const ara::core::Byte > transfer_request_parameter_record, MetaInfo const &meta_info, ara::diag::CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;
Parameters (in):exit_typeSpecifies the exit reason
transfer_request_parameter_recordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
meta_infocontains additional meta information of the request.
cancellation_handlerThis parameter is used to
• Query the current cancellation status by calling cancellation_handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise.
• Register a notifier function by calling cancellation_handler.SetNotifier(). The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< ara::core::Vector< ara::core::Byte > >Returns a Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.response_data will be placed after SID as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Exits an ongoing data transfer session.
8.5.1.3.2 Read
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSharedDataHandler
Syntax:virtual auto Read (ara::diag::ReleaseHandler release_handler, MetaInfo const &meta_info, ara::diag::CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Span< ara::core::Byte > >=0;
Parameters (in):release_handlerThe release shared resource handler to be stored and used by the application until a new one is passed for the same meta_info (UDS client).
meta_infoContains additional meta information.
cancellation_handlerThis parameter is used to
• Query the current cancellation status by calling cancellation_handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise.
• Register a notifier function by calling cancellation_handler.SetNotifier(). The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< ara::core::Span< ara::core::Byte > >Returns a Future, which either gets readied to ReadSharedOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in ReleaseSharedHandler.responseData will be placed after the blockSequenceCounter as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Provides the whole data to be read out from the application in form of a shared data view. The whole file/directory info content to be sent back to the UDS client will be allocated by the application and its shared ownership (view over the memory location) is passed as a result to AraDiag. The allocated memory must be kept until the ReleaseHandler's notifier is invoked or the status polled, signalling that the memory, addressed by the Span now can safely be released.
8.5.1.3.3 operator=(DataTransferReadSharedDataHandler&&) &
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSharedDataHandler
Syntax:auto operator= (ara::diag::DataTransferReadSharedDataHandler &&other) & noexcept -> ara::diag::DataTransferReadSharedDataHandler & =default;
Parameters (out):otherThe other object
Return value:DataTransferReadSharedDataHandlerReference to self
Exception Safety:exception safe
Description:Move assigns an instance of this class.
8.5.1.3.4 operator=(DataTransferReadSharedDataHandler const&)
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferReadSharedDataHandler
Syntax:auto operator= (ara::diag::DataTransferReadSharedDataHandler const &) -> ara::diag::DataTransferReadSharedDataHandler &=delete;
Description:Handlers shall not be copy-able since only one way usage i.e. per single file transfer session.

8.6 Class: DataTransferWriteHandler

Kind:class
Header file:#include "ara/diag/data_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DataTransferWriteHandler
Syntax:class DataTransferWriteHandler {...};
Description:Handles data transfers initiated by AddFile, ResumeFile or ReplaceFile ModeOfOperation handling per requested RequestWriteFile.

8.6.1 Public Member Functions

8.6.1.1 Special Member Functions
8.6.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteHandler
Syntax:DataTransferWriteHandler (DataTransferWriteHandler &&other) noexcept=default;
Parameters (out):otherThe other object
Exception Safety:exception safe
Description:Move constructs an instance of this class.
8.6.1.1.2 Destructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteHandler
Syntax:virtual ~DataTransferWriteHandler () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructs an instance of this class. An instance of this class must not be destroyed before ExitWrite() is called.
8.6.1.2 Constructors
8.6.1.2.1 DataTransferWriteHandler
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteHandler
Syntax:DataTransferWriteHandler (DataTransferWriteHandler const &)=delete;
Description:Handlers shall not be copyable since only one way usage i.e. per single file transfer session.
8.6.1.3 Member Functions
8.6.1.3.1 ExitWrite
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteHandler
Syntax:virtual auto ExitWrite (ara::diag::DataTransferExitType exitType, ara::core::Span< ara::core::Byte > transferRequestParameterRecord, MetaInfo const &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;
Parameters (in):exitTypeSpecifies the exit reason
transferRequestParameterRecordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns true in case, the current conversation has been cancelled and false otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< ara::core::Vector< ara::core::Byte > >Returns a Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message) Data in OperationOutput.response_data will be placed after SID as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Exits an ongoing data transfer session.
8.6.1.3.2 Write
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteHandler
Syntax:virtual auto Write (ara::core::Span< ara::core::Byte > requestData, MetaInfo const &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept -> ara::core::Future< void >=0;
Parameters (in):requestDataThe first or subsequent file content chunk received from the UDS client to be written into the file.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >A Future, which either is of type void or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message).
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Appends a data chunk into application memory.
8.6.1.3.3 operator=(DataTransferWriteHandler&&) &
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteHandler
Syntax:auto operator= (ara::diag::DataTransferWriteHandler &&other) & noexcept -> ara::diag::DataTransferWriteHandler & =default;
Parameters (out):otherThe other object
Return value:DataTransferWriteHandlerReference to self
Exception Safety:exception safe
Description:Move assigns an instance of this class.
8.6.1.3.4 operator=(DataTransferWriteHandler const&)
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteHandler
Syntax:auto operator= (ara::diag::DataTransferWriteHandler const &) -> ara::diag::DataTransferWriteHandler &=delete;
Description:Handlers shall not be copyable since only one way usage i.e. per single file transfer session.

8.6.2 Protected Member Functions

8.6.2.1 Special Member Functions
8.6.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteHandler
Syntax:DataTransferWriteHandler () noexcept=default;
Exception Safety:exception safe
Description:Constructs an instance of this class.
Visibility:protected

8.7 Class: DataTransferWriteSession

Kind:class
Header file:#include "ara/diag/data_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DataTransferWriteSession
Syntax:class DataTransferWriteSession final {...};
Description:Encapsulates all data transfer writing variants.

8.7.1 Public Member Functions

8.7.1.1 Special Member Functions
8.7.1.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteSession
Syntax:DataTransferWriteSession ()=delete;
Description:No default construction allowed.
8.7.1.1.2 Move Constructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteSession
Syntax:DataTransferWriteSession (DataTransferWriteSession &&other) noexcept=default;
Parameters (out):otherThe other object
Exception Safety:exception safe
Description:Move constructs an instance of this class.
8.7.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteSession
Syntax:~DataTransferWriteSession () noexcept=default;
Exception Safety:exception safe
Description:Destructs an instance of this class.
8.7.1.2 Constructors
8.7.1.2.1 DataTransferWriteSession
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteSession
Syntax:DataTransferWriteSession (DataTransferWriteSession const &)=delete;
Description:DataTransferWriteSession shall be a single not copy-able instance.
8.7.1.3 Member Functions
8.7.1.3.1 operator=(DataTransferWriteSession const&)
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteSession
Syntax:auto operator= (ara::diag::DataTransferWriteSession const &) -> ara::diag::DataTransferWriteSession &=delete;
Description:DataTransferWriteSession shall be a single not assignable instance.
8.7.1.3.2 operator=(DataTransferWriteSession&&) &
Kind:function
Header file:#include "ara/diag/data_transfer.h"
Scope:ara::diag::DataTransferWriteSession
Syntax:auto operator= (ara::diag::DataTransferWriteSession &&other) & noexcept -> ara::diag::DataTransferWriteSession & =default;
Parameters (out):otherThe other object
Return value:DataTransferWriteSessionReference to self
Exception Safety:exception safe
Description:Move assigns an instance of this class.

9 Header: ara/diag/diag_error_domain.h

9.1 Non-Member Types

9.1.1 Enumeration: DiagErrc

Kind:enumeration
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagErrc
Underlying type:ara::core::ErrorDomain::CodeType
Syntax:enum class DiagErrc : ara::core::ErrorDomain::CodeType {...};
Values:kAlreadyOffered= 101
The service is already offered .
kConfigurationMismatch= 102
Configuration does not match DEXT .
kDebouncingConfigurationInconsistent= 103
monitor debouncing configuration invalid, e.g. passed threshold larger than failed threshold ...
kReportIgnored= 104
Enable Conditions disabled, OC not started, ... .
kInvalidArgument= 105
e.g. kPreFailed with internal debouncing.
kNotOffered= 106
Offer not called before reporting. .
kNoSuchDTC= 108
No mapped DTC exits for the requested event.
kBusy= 109
Interface is busy with processing.
kFailed= 110
Failed to process.
kMemoryError= 111
A memory error occurred during processing.
kWrongDtc= 112
A wrong DTC number was requested.
kRejected= 113
Requested operation was rejected due to StateManagements/machines internal state.
kResetTypeNotSupported= 114
The requested Diagnostic reset type is not supported by the Diagnostic Address instance.
kRequestFailed= 115
Diagnostic request could not be performed successfully. .
kCustomResetTypeNotSupported= 116
The requested Diagnostic custom reset type is not supported by the Diagnostic Address instance.
kSuppressionIgnored= 117
In case a suppression of a DTC is requested, but the conditions are not met.
kServiceNotAvailable= 118
The call cannot be executed, because essential DM functionality is currently not available.
Description:Specifies the types of internal errors that can occur upon calling Offer or ReportMonitorAction.

9.1.2 Enumeration: DiagOfferErrc

Kind:enumeration
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagOfferErrc
Underlying type:ara::core::ErrorDomain::CodeType
Syntax:enum class DiagOfferErrc : ara::core::ErrorDomain::CodeType {...};
Values:kAlreadyOffered= 101
The service is already offered.
kConfigurationMismatch= 102
Configuration does not match DEXT.
kDebouncingConfigurationInconsistent= 103
monitor debouncing configuration invalid, e.g. passed threshold larger than failed threshold...
Description:The DiagOfferErrc enumeration defines the error codes for the DiagOfferErrorDomain.

9.1.3 Enumeration: DiagReportingErrc

Kind:enumeration
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagReportingErrc
Underlying type:ara::core::ErrorDomain::CodeType
Syntax:enum class DiagReportingErrc : ara::core::ErrorDomain::CodeType {...};
Values:kAlreadyOffered= 101
The service is already offered.
kConfigurationMismatch= 102
monitor configuration does not match DEXT
kDebouncingConfigurationInconsistent= 103
monitor debouncing configuration invalid, e.g. passed threshold larger than failed threshold ...
kReportIgnored= 104
Enable Conditions disabled, OC not started, ...
kInvalidArgument= 105
e.g. kPreFailed with internal debouncing
kNotOffered= 106
Offer not called before reporting.
kNoSuchDTC= 108
No mapped DTC exits for the requested event.
Description:The DiagReportingErrc enumeration defines the error codes for the DiagReportingErrorDomain.

9.2 Non-Member Functions

9.2.1 Other

9.2.1.1 GetDiagDomain
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:namespace ara::diag
Syntax:constexpr const ara::core::ErrorDomain & GetDiagDomain () noexcept;
Return value:const ara::core::ErrorDomain &reference to the DiagErrorDomain instance
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Obtain the reference to the single global DiagErrorDomain instance.
9.2.1.2 GetDiagOfferDomain
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:namespace ara::diag
Syntax:constexpr const ara::core::ErrorDomain & GetDiagOfferDomain () noexcept;
Return value:const ara::core::ErrorDomain &reference to the DiagOfferErrorDomain instance
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Obtain the reference to the single global DiagErrorDomain instance.
9.2.1.3 GetDiagReportingDomain
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:namespace ara::diag
Syntax:constexpr const ara::core::ErrorDomain & GetDiagReportingDomain () noexcept;
Return value:const ara::core::ErrorDomain &reference to the DiagOfferErrorDomain instance
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Obtain the reference to the single global DiagReportingErrorDomain instance.
9.2.1.4 MakeErrorCode(DiagReportingErrc, ErrorDomain::SupportDataType)
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:namespace ara::diag
Syntax:constexpr ara::core::ErrorCode MakeErrorCode (ara::diag::DiagReportingErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
Parameters (in):codean enumeration value from future_errc
dataa vendor-defined supplementary value
Return value:ara::core::ErrorCodethe new ErrorCode instance
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new ErrorCode for DiagReportingErrorDomain with the given support data type.
9.2.1.5 MakeErrorCode(DiagErrc, ErrorDomain::SupportDataType)
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:namespace ara::diag
Syntax:constexpr ara::core::ErrorCode MakeErrorCode (ara::diag::DiagErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
Parameters (in):codean enumeration value from future_errc
dataa vendor-defined supplementary value
Return value:ara::core::ErrorCodethe new ErrorCode instance
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new ErrorCode for DiagErrorDomain with the given support data type.
9.2.1.6 MakeErrorCode(DiagOfferErrc, ErrorDomain::SupportDataType)
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:namespace ara::diag
Syntax:constexpr ara::core::ErrorCode MakeErrorCode (ara::diag::DiagOfferErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
Parameters (in):codean enumeration value from future_errc
dataa vendor-defined supplementary value
Return value:ara::core::ErrorCodethe new ErrorCode instance
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new ErrorCode for DiagOfferErrorDomain with the given support data type.

9.3 Class: DiagErrorDomain

Kind:class
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagErrorDomain
Base class:ara::core::ErrorDomain
Syntax:class DiagErrorDomain final : public ara::core::ErrorDomain {...};
Description:Error domain for diagnostic errors.

9.3.1 Public Member Types

9.3.1.1 Type Alias: Errc
Kind:type alias
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagErrorDomain
Symbol:Errc
Syntax:using Errc = DiagErrc;
Description:Alias for the error code value enumeration.
9.3.1.2 Type Alias: Exception
Kind:type alias
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagErrorDomain
Symbol:Exception
Syntax:using Exception = DiagException;
Description:Alias for the exception base class.

9.3.2 Public Member Functions

9.3.2.1 Special Member Functions
9.3.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagErrorDomain
Syntax:constexpr DiagErrorDomain () noexcept;
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Default constructor.
9.3.2.2 Member Functions
9.3.2.2.1 Message
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagErrorDomain
Syntax:const char * Message (ara::core::ErrorDomain::CodeType errorCode) const noexcept override;
Parameters (in):errorCodethe error code value
Return value:const char *the text message, never nullptr
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Translate an error code value into a text message.
9.3.2.2.2 Name
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagErrorDomain
Syntax:const char * Name () const noexcept override;
Return value:const char *As per ara::diag::DiagErrorDomain in SWS_CORE_90023
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Return the "shortname" ApApplicationErrorDomain.SN of this error domain.
9.3.2.2.3 ThrowAsException
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagErrorDomain
Syntax:void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;
Parameters (in):errorCodethe ErrorCode instance
Return value:None
Exception Safety:not exception safe
Thread Safety:thread-safe
Description:Throw the exception type corresponding to the given ErrorCode. As per SWS_CORE_10304, this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

9.4 Class: DiagException

Kind:class
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagException
Base class:ara::core::Exception
Syntax:class DiagException : public ara::core::Exception {...};
Description:Exception type thrown by Diag classes.

9.4.1 Public Member Functions

9.4.1.1 Constructors
9.4.1.1.1 DiagException
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagException
Syntax:explicit DiagException (ara::core::ErrorCode err) noexcept;
Parameters (in):errthe ErrorCode
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Construct a new DiagException from an ErrorCode.

9.5 Class: DiagOfferErrorDomain

Kind:class
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagOfferErrorDomain
Base class:ara::core::ErrorDomain
Syntax:class DiagOfferErrorDomain final : public ara::core::ErrorDomain {...};
Description:Error domain for diagnostic offer errors.

9.5.1 Public Member Types

9.5.1.1 Type Alias: Errc
Kind:type alias
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagOfferErrorDomain
Symbol:Errc
Syntax:using Errc = DiagOfferErrc;
Description:Alias for the error code value enumeration.
9.5.1.2 Type Alias: Exception
Kind:type alias
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagOfferErrorDomain
Symbol:Exception
Syntax:using Exception = DiagException;
Description:Alias for the exception base class.

9.5.2 Public Member Functions

9.5.2.1 Special Member Functions
9.5.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagOfferErrorDomain
Syntax:constexpr DiagOfferErrorDomain () noexcept;
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Default constructor.
9.5.2.2 Member Functions
9.5.2.2.1 Message
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagOfferErrorDomain
Syntax:const char * Message (ara::core::ErrorDomain::CodeType errorCode) const noexcept override;
Parameters (in):errorCodethe error code value
Return value:const char *the text message, never nullptr
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Translate an error code value into a text message.
9.5.2.2.2 Name
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagOfferErrorDomain
Syntax:const char * Name () const noexcept override;
Return value:const char *As per ara::diag::DiagOfferErrorDomain in SWS_CORE_90023
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Return the "shortname" ApApplicationErrorDomain.SN of this error domain.
9.5.2.2.3 ThrowAsException
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagOfferErrorDomain
Syntax:void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;
Parameters (in):errorCodethe ErrorCode instance
Return value:None
Exception Safety:not exception safe
Thread Safety:thread-safe
Description:Throw the exception type corresponding to the given ErrorCode. As per SWS_CORE_10304, this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

9.6 Class: DiagOfferException

Kind:class
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagOfferException
Base class:ara::core::Exception
Syntax:class DiagOfferException : public ara::core::Exception {...};
Description:Exception type thrown by Diag classes.

9.6.1 Public Member Functions

9.6.1.1 Constructors
9.6.1.1.1 DiagOfferException
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagOfferException
Syntax:explicit DiagOfferException (ara::core::ErrorCode err) noexcept;
Parameters (in):errthe ErrorCode
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Construct a new DiagException from an ErrorCode.

9.7 Class: DiagReportingErrorDomain

Kind:class
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagReportingErrorDomain
Base class:ara::core::ErrorDomain
Syntax:class DiagReportingErrorDomain final : public ara::core::ErrorDomain {...};
Description:Error domain for diagnostic reporting errors.

9.7.1 Public Member Types

9.7.1.1 Type Alias: Errc
Kind:type alias
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagReportingErrorDomain
Symbol:Errc
Syntax:using Errc = DiagReportingErrc;
Description:Alias for the error code value enumeration.
9.7.1.2 Type Alias: Exception
Kind:type alias
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagReportingErrorDomain
Symbol:Exception
Syntax:using Exception = DiagReportingException;
Description:Alias for the exception base class.

9.7.2 Public Member Functions

9.7.2.1 Special Member Functions
9.7.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagReportingErrorDomain
Syntax:constexpr DiagReportingErrorDomain () noexcept;
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Default constructor.
9.7.2.2 Member Functions
9.7.2.2.1 Message
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagReportingErrorDomain
Syntax:const char * Message (ara::core::ErrorDomain::CodeType errorCode) const noexcept override;
Parameters (in):errorCodethe error code value
Return value:const char *the text message, never nullptr
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Translate an error code value into a text message.
9.7.2.2.2 Name
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagReportingErrorDomain
Syntax:const char * Name () const noexcept override;
Return value:const char *As per ara::diag::DiagReportingErrorDomain in SWS_CORE_90023
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Return the "shortname" ApApplicationErrorDomain.SN of this error domain.
9.7.2.2.3 ThrowAsException
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagReportingErrorDomain
Syntax:void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;
Parameters (in):errorCodethe ErrorCode instance
Return value:None
Exception Safety:not exception safe
Thread Safety:thread-safe
Description:Throw the exception type corresponding to the given ErrorCode. As per SWS_CORE_10304, this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

9.8 Class: DiagReportingException

Kind:class
Header file:#include "ara/diag/diag_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagReportingException
Base class:ara::core::Exception
Syntax:class DiagReportingException : public ara::core::Exception {...};
Description:Exception type thrown by Diag classes.

9.8.1 Public Member Functions

9.8.1.1 Constructors
9.8.1.1.1 DiagReportingException
Kind:function
Header file:#include "ara/diag/diag_error_domain.h"
Scope:ara::diag::DiagReportingException
Syntax:explicit DiagReportingException (ara::core::ErrorCode err) noexcept;
Parameters (in):errthe ErrorCode
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Construct a new DiagException from an ErrorCode.

10 Header: ara/diag/diag_uds_nrc_error_domain.h

10.1 Non-Member Types

10.1.1 Enumeration: DiagUdsNrcErrc

Kind:enumeration
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagUdsNrcErrc
Underlying type:ara::core::ErrorDomain::CodeType
Syntax:enum class DiagUdsNrcErrc : ara::core::ErrorDomain::CodeType {...};
Values:kGeneralReject= 0x10
0x10, This NRC indicates that the requested action has been rejected by the server. The generalReject response code shall only be implemented in the server if none of the negative response codes defined in this document meet the needs of the implementation. At no means shall this NRC be a general replacement for the response codes defined in this document.
kServiceNotSupported= 0x11
0x11, This NRC indicates that the requested action will not be taken because the server does not support the requested service. The server shall send this NRC in case the client has sent a request message with a service identifier which is unknown, not supported by the server, or is specified as a response service identifier. Therefore this negative response code is not shown in the list of negative response codes to be supported for a diagnostic service, because this negative response code is not applicable for supported services.
kSubFunctionNotSupported= 0x12
0x12, This NRC indicates that the requested action will not be taken because the server does not support the service specific parameters of the request message. The server shall send this NRC in case the client has sent a request message with a known and supported service identifier but with "SubFunction" which is either unknown or not supported.
kIncorrectMessageLengthOrInvalidFormat= 0x13
0x13, This NRC indicates that the requested action will not be taken because the length of the received request message does not match the prescribed length for the specified service or the format of the parameters do not match the prescribed format for the specified service.
kResponseTooLong= 0x14
0x14, This NRC shall be reported by the server if the response to be generated exceeds the maximum number of bytes available by the underlying network layer. This could occur if the response message exceeds the maximum size allowed by the underlying transport protocol or if the response message exceeds the server buffer size allocated for that purpose. EXAMPLE This problem may occur when several DIDs at a time are requested and the combination of all DIDs in the response exceeds the limit of the underlying transport protocol.
kBusyRepeatRequest= 0x21
0x21, This NRC indicates that the server is temporarily too busy to perform the requested operation. In this circumstance the client shall perform repetition of the "identical request message" or "another request message". The repetition of the request shall be delayed by a time specified in the respective implementation documents. EXAMPLE In a multi-client environment the diagnostic request of one client might be blocked temporarily by an NRC 0x21 while a different client finishes a diagnostic task. If the server is able to perform the diagnostic task but needs additional time to finish the task and prepare the response, the NRC 7816 shall be used instead of NRC 0x21. This NRC is in general supported by each diagnostic service, as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kConditionsNotCorrect= 0x22
0x22, This NRC indicates that the requested action will not be taken because the server prerequisite conditions are not met.
kRequestSequenceError= 0x24
0x24, This NRC indicates that the requested action will not be taken because the server expects a different sequence of request messages or message as sent by the client. This may occur when sequence sensitive requests are issued in the wrong order. EXAMPLE A successful SecurityAccess service specifies a sequence of requestSeed and sendKey as SubFuction in the request messages. If the sequence is sent different by the client, the server sends a negative response message with the negative response code 0x24 requestSequenceError.
kNoResponseFromSubnetComponent= 0x25
0x25, This NRC indicates that the server has received the request but the requested action could not be performed by the server as a subnet component which is necessary to supply the requested information did not respond within the specified time. The noResponseFromSubnetComponent negative response shall be implemented by gateways in electronic systems which contain electronic subnet components and which do not directly respond to the client's request. The gateway may receive the request for the subnet component and then request the necessary information from the subnet component. If the subnet component fails to respond, the server shall use this negative response to inform the client about the failure of the subnet component. This NRC is in general supported by each diagnostic service, as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kFailurePreventsExecutionOfRequestedAction= 0x26
0x26, This NRC indicates that the requested action will not be taken because a failure condition, identified by a DTC (with at least one DTC status bit for TestFailed, Pending, Confirmed or TestFailedSinceLastClear set to 1), has occurred and that this failure condition prevents the server from performing the requested action. This NRC can, for example, direct the technician to read DTCs in order to identify and fix the problem. Diagnostic services used to access DTCs shall not implement this NRC, because an external test tool may check for the above NRC and automatically request DTCs whenever the above NRC has been received. This NRC is in general supported by each diagnostic service (except the services mentioned above), as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kRequestOutOfRange= 0x31
0x31, This NRC indicates that the requested action will not be taken because the server has detected that the request message contains a parameter which attempts to substitute a value beyond its range of authority (e.g. attempting to substitute a data byte of 111 when the data is only defined to 100), or which attempts to access a dataIdentifier/routineIdentifer that is not supported or not supported in active session. This NRC shall be implemented for all services, which allow the client to read data, write data or adjust functions by data in the server.
kSecurityAccessDenied= 0x33
0x33, This NRC indicates that the requested action will not be taken because the server's security strategy has not been satisfied by the client. The server shall send this NRC if one of the following cases occur: — the test conditions of the server are not met, — the required message sequence, e.g. DiagnosticSessionControl, securityAccess is not met, — the client has sent a request message which requires an unlocked server. Beside the mandatory use of this negative response code as specified in the applicable services within this document, this negative response code can also be used for any case where security is required and is not yet granted to perform the required service.
kAuthenticationRequired= 0x34
0x34, This NRC indicates that the requested service will not be taken because the client has insufficient rights based on its Authentication state. This NRC is in general supported by each diagnostic service, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kInvalidKey= 0x35
0x35, This NRC indicates that the server has not given security access because the key sent by the client did not match with the key in the server's memory. This counts as an attempt to gain security. The server shall remain in the locked state and increment its internal securityAccessFailed counter as described in 10.4. (ISO 14229-1)
kExceedNumberOfAttempts= 0x36
0x36, This NRC indicates that the requested action will not be taken because the client has unsuccessfully attempted to gain security access more times than the server's security strategy will allow.
kRequiredTimeDelayNotExpired= 0x37
0x37, This NRC indicates that the requested action will not be taken because the client's latest attempt to gain security access was initiated before the server's required timeout period had elapsed.
kSecureDataTransmissionRequired= 0x38
0x38, This NRC indicates that the requested service will not be taken because the requested action is required to be sent using a secured communication channel (i.e. A_MType is equal to secure {remote} diagnostics). This NRC is in general supported by each diagnostic service, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kSecureDataTransmissionNotAllowed= 0x39
0x39, This NRC indicates that this message was received using the SecuredDataTransmission (0x84) service. However, the requested action is not allowed to be sent using the SecuredDataTransmission (0x84) service.
kSecureDataVerificationFailed= 0x3A
0x3A, This NRC indicates that the message failed in the security sub-layer. For example, invalid Apar - Administrative parameter or "Signature/Encryption Calculation" parameter, verification error of anti-replay counter or Signature/MAC, decryption or encryption error.
kCertificateVerificationFailedInvalidTimePeriod= 0x50
0x50, Date and time of the server does not match the validity period of the Certificate.
kCertificateVerificationFailedInvalidSignature= 0x51
0x51, Signature of the Certificate could not be verified.
kCertificateVerificationFailedInvalidChainOfTrust= 0x52
0x52, Certificate could not be verified against stored information about the issuing authority.
kCertificateVerificationFailedInvalidType= 0x53
0x53, Certificate does not match the current requested use case.
kCertificateVerificationFailedInvalidFormat= 0x54
0x54, Certificate could not be evaluated because the format requirement has not been met.
kCertificateVerificationFailedInvalidContent= 0x55
0x55, Certificate could not be verified because the content does not match.
kCertificateVerificationFailedInvalidScope= 0x56
0x56, The scope of the Certificate does not match the contents of the server.
kCertificateVerificationFailedInvalidCertificateRevoked= 0x57
0x57, Certificate received from client is invalid, because the server has revoked access for some reason.
kOwnershipVerificationFailed= 0x58
0x58, Delivered Ownership does not match the provided challenge or could not verified with the own private key.
kChallengeCalculationFailed= 0x59
0x59, The challenge could not be calculated on the server side.
kSettingAccessRightsFailed= 0x5A
0x5A, The server could not set the access rights.
kSessionKeyCreationDerivationFailed= 0x5B
0x5B, The server could not create or derive a session key.
kConfigurationDataUsageFailed= 0x5C
0x5C, The server could not work with the provided configuration data.
kDeAuthenticationFailed= 0x5D
0x5D, DeAuthentication was not successful, server could still be unprotected.
kUploadDownloadNotAccepted= 0x70
0x70, This NRC indicates that an attempt to upload/download to a server's memory cannot be accomplished due to some fault conditions.
kTransferDataSuspended= 0x71
0x71, This NRC indicates that a data transfer operation was halted due to some fault. The active transferData sequence shall be aborted.
kGeneralProgrammingFailure= 0x72
0x72, This NRC indicates that the server detected an error when erasing or programming a memory location in the permanent memory device (e.g. Flash Memory).
kWrongBlockSequenceCounter= 0x73
0x73, This NRC indicates that the server detected an error in the sequence of blockSequenceCounter values. Note that the repetition of a TransferData request message with a blockSequenceCounter equal to the one included in the previous TransferData request message shall be accepted by the server.
kRequestCorrectlyReceivedResponsePending= 0x78
0x78, This NRC indicates that the request message was received correctly, and that all parameters in the request message were valid (these checks can be delayed until after sending this NRC if executing the boot software), but the action to be performed is not yet completed and the server is not yet ready to receive another request. As soon as the requested service has been completed, the server shall send a positive response message or negative response message with a response code different from this. The negative response message with this NRC may be repeated by the server until the requested service is completed and the final response message is sent. This NRC might impact the application layer timing parameter values. The detailed specification shall be included in the data link specific implementation document. This NRC shall only be used in a negative response message if the server will not be able to receive further request messages from the client while completing the requested diagnostic service. When this NRC is used, the server shall always send a final response (positive or negative) independent of the suppressPosRspMsgIndicationBit value or the suppress requirement for responses with NRCs SNS, SFNS, SNSIAS, SFNSIAS and ROOR on functionally addressed requests. A typical example where this NRC may be used is when the client has sent a request message, which includes data to be programmed or erased in flash memory of the server. If the programming/erasing routine (usually executed out of RAM) is not able to support serial communication while writing to the flash memory the server shall send a negative response message with this response code.This NRC is in general supported by each diagnostic service, as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kSubFunctionNotSupportedInActiveSession= 0x7E
0x7E, This NRC indicates that the requested action will not be taken because the server does not support the requested SubFunction in the session currently active. This NRC shall only be used when the requested SubFunction is known to be supported in another session, otherwise response code SFNS (SubFunctionNotSupported) shall be used (e.g. servers executing the boot software generally do not know which SubFunctions are supported in the application (and vice versa) and therefore may need to respond with NRC 0x12 instead). This NRC shall be supported by each diagnostic service with a SubFunction parameter, if not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kServiceNotSupportedInActiveSession= 0x7F
0x7F, This NRC indicates that the requested action will not be taken because the server does not support the requested service in the session currently active. This NRC shall only be used when the requested service is known to be supported in another session, otherwise response code SNS (serviceNotSupported) shall be used (e.g. servers executing the boot software generally do not know which services are supported in the application (and vice versa) and therefore may need to respond with NRC 0x11 instead). This NRC is in general supported by each diagnostic service, as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kRpmTooHigh= 0x81
0x81, This NRC indicates that the requested action will not be taken because the server prerequisite condition for RPM is not met (current RPM is above a programmed maximum threshold).
kRpmTooLow= 0x82
0x82, This NRC indicates that the requested action will not be taken because the server prerequisite condition for RPM is not met (current RPM is below a programmed minimum threshold).
kEngineIsRunning= 0x83
0x83, This NRC is required for those actuator tests which cannot be actuated while the Engine is running. This is different from RPM too high negative response, and shall be allowed.
kEngineIsNotRunning= 0x84
0x84, This NRC is required for those actuator tests which cannot be actuated unless the Engine is running. This is different from RPM too low negative response, and shall be allowed.
kEngineRunTimeTooLow= 0x85
0x85, This NRC indicates that a requested action will not be taken because the server prerequisite condition for engine run time is not met (current engine run time is below a programmed limit).
kTemperatureTooHigh= 0x86
0x86, This NRC indicates that the requested action will not be taken because the server prerequisite condition for temperature is not met (current temperature is above a preprogrammed maximum threshold).
kTemperatureTooLow= 0x87
0x87, This NRC indicates that the requested action will not be taken because the server prerequisite condition for temperature is not met (current temperature is below a preprogrammed minimum threshold).
kVehicleSpeedTooHigh= 0x88
0x88, This NRC indicates that the requested action will not be taken because the server prerequisite condition for vehicle speed is not met (current vehicle speed is above a preprogrammed maximum threshold).
kVehicleSpeedTooLow= 0x89
0x89, This NRC indicates that the requested action will not be taken because the server prerequisite condition for vehicle speed is not met (current vehicle speed is below a preprogrammed minimum threshold).
kThrottlePedalTooHigh= 0x8A
0x8A, This NRC indicates that the requested action will not be taken because the server prerequisite condition for throttle/pedal position is not met (current TP/APP is above a preprogrammed maximum threshold).
kThrottlePedalTooLow= 0x8B
0x8B, This NRC indicates that the requested action will not be taken because the server prerequisite condition for throttle/pedal position is not met (current TP/APP is below a preprogrammed minimum threshold).
kTransmissionRangeNotInNeutral= 0x8C
0x8C, This NRC indicates that the requested action will not be taken because the server prerequisite condition for being in neutral is not met (current transmission range is not in neutral).
kTransmissionRangeNotInGear= 0x8D
0x8D, This NRC indicates that the requested action will not be taken because the server prerequisite condition for being in gear is not met (current transmission range is not in gear).
kBrakeSwitchNotClosed= 0x8F
0x8F, This NRC indicates that for safety reasons, this is required for certain tests before it begins, and shall be maintained for the entire duration of the test.
kShifterLeverNotInPark= 0x90
0x90, This NRC indicates that for safety reasons, this is required for certain tests before it begins, and shall be maintained for the entire duration of the test.
kTorqueConverterClutchLocked= 0x91
0x91, This NRC indicates that the requested action will not be taken because the server prerequisite condition for torque converter clutch is not met (current TCC status above a preprogrammed limit or locked).
kVoltageTooHigh= 0x92
0x92, This NRC indicates that the requested action will not be taken because the server prerequisite condition for voltage at the primary pin of the server (ECU) is not met (current voltage is above a preprogrammed maximum threshold).
kVoltageTooLow= 0x93
0x93, This NRC indicates that the requested action will not be taken because the server prerequisite condition for voltage at the primary pin of the server (ECU) is not met (current voltage is below a preprogrammed maximum threshold).
kResourceTemporarilyNotAvailable= 0x94
0x94, This NRC indicates that the server has received the request but the requested action could not be performed by the server because an application which is necessary to supply the requested information is temporality not available. This NRC is in general supported by each diagnostic service, as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
kNoProcessingNoResponse= 0xFF
Deviating from ISO - no further service processing and no response (silently ignore request message).
kISO_RESERVED_NRC= 0x01
Placeholder as starting number for valid NRCs.
Description:Specifies the types of internal errors that can occur upon calling Offer or ReportMonitorAction. The error codes described are defined in ISO 14229-1:2020 ISO-14229-1-2020, Table A.1 "Negative Response Codes". In AUTOSAR, the three negative response code ranges, 0x00, 0x01-0x7F and 0x80-0xFF are respected, however, the value 0xFF is used to internally indicate, that there is no further processing and no response handling foreseen.

10.2 Non-Member Functions

10.2.1 Other

10.2.1.1 GetDiagUdsNrcDomain
Kind:function
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:namespace ara::diag
Syntax:constexpr const ara::core::ErrorDomain & GetDiagUdsNrcDomain () noexcept;
Return value:const ara::core::ErrorDomain &reference to the DiagUdsNrcErrorDomain instance
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Obtain the reference to the single global DiagUdsNrcErrorDomain instance.
10.2.1.2 MakeErrorCode
Kind:function
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:namespace ara::diag
Syntax:constexpr ara::core::ErrorCode MakeErrorCode (ara::diag::DiagUdsNrcErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
Parameters (in):codean enumeration value from diag_errc
dataa vendor-defined supplementary value
Return value:ara::core::ErrorCodethe new ErrorCode instance
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new ErrorCode for DiagUdsNrcErrorDomain with the given support data type and message.

10.3 Class: DiagUdsNrcErrorDomain

Kind:class
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagUdsNrcErrorDomain
Base class:ara::core::ErrorDomain
Syntax:class DiagUdsNrcErrorDomain final : public ara::core::ErrorDomain {...};
Description:Error domain for errors originating from several diagnostic classes.

10.3.1 Public Member Types

10.3.1.1 Type Alias: Errc
Kind:type alias
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:ara::diag::DiagUdsNrcErrorDomain
Symbol:Errc
Syntax:using Errc = DiagUdsNrcErrc;
Description:Alias for the error code value enumeration.
10.3.1.2 Type Alias: Exception
Kind:type alias
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:ara::diag::DiagUdsNrcErrorDomain
Symbol:Exception
Syntax:using Exception = DiagUdsNrcException;
Description:Alias for the exception base class.

10.3.2 Public Member Functions

10.3.2.1 Special Member Functions
10.3.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:ara::diag::DiagUdsNrcErrorDomain
Syntax:constexpr DiagUdsNrcErrorDomain () noexcept;
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Default constructor .
10.3.2.2 Member Functions
10.3.2.2.1 Message
Kind:function
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:ara::diag::DiagUdsNrcErrorDomain
Syntax:const char * Message (ara::core::ErrorDomain::CodeType errorCode) const noexcept override;
Parameters (in):errorCodethe error code value
Return value:const char *the text message, never nullptr
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Translate an error code value into a text message.
10.3.2.2.2 Name
Kind:function
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:ara::diag::DiagUdsNrcErrorDomain
Syntax:const char * Name () const noexcept override;
Return value:const char *As per ara::diag::DiagUdsNrcErrorDomain in SWS_CORE_90023
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Return the "shortname" ApApplicationErrorDomain.SN of this error domain.
10.3.2.2.3 ThrowAsException
Kind:function
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:ara::diag::DiagUdsNrcErrorDomain
Syntax:void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;
Parameters (in):errorCodethe ErrorCode instance
Return value:None
Exception Safety:not exception safe
Thread Safety:thread-safe
Description:Throw the exception type corresponding to the given ErrorCode. As per SWS_CORE_10304, this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

10.4 Class: DiagUdsNrcException

Kind:class
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagUdsNrcException
Base class:ara::core::Exception
Syntax:class DiagUdsNrcException : public ara::core::Exception {...};
Description:Exception type thrown by Diag classes.

10.4.1 Public Member Functions

10.4.1.1 Constructors
10.4.1.1.1 DiagUdsNrcException
Kind:function
Header file:#include "ara/diag/diag_uds_nrc_error_domain.h"
Scope:ara::diag::DiagUdsNrcException
Syntax:explicit DiagUdsNrcException (ara::core::ErrorCode err) noexcept;
Parameters (in):errthe ErrorCode
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Construct a new DiagException from an ErrorCode.

11 Header: ara/diag/diagnostic_service_dynamic_access_list.h

11.1 Class: DiagnosticServiceDynamicAccessList

Kind:class
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DiagnosticServiceDynamicAccessList
Syntax:class DiagnosticServiceDynamicAccessList final {...};
Description:Definition of the DiagnosticServiceDynamicAccessList class, which is used by the application to build a DynamicAccessList.

11.1.1 Public Member Functions

11.1.1.1 Special Member Functions
11.1.1.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:DiagnosticServiceDynamicAccessList () noexcept;
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Constructor of DiagnosticServiceDynamicAccessList.
11.1.1.1.2 Move Constructor
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:DiagnosticServiceDynamicAccessList (DiagnosticServiceDynamicAccessList &&other) noexcept;
Parameters (in):otherObject to move-construct from
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructor of DiagnosticServiceDynamicAccessList.
11.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:~DiagnosticServiceDynamicAccessList () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of DiagnosticServiceDynamicAccessList.
11.1.1.2 Constructors
11.1.1.2.1 DiagnosticServiceDynamicAccessList
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:DiagnosticServiceDynamicAccessList (DiagnosticServiceDynamicAccessList const &other) noexcept;
Parameters (in):otherObject to copy-construct from
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Copy constructor of DiagnosticServiceDynamicAccessList.
11.1.1.3 Member Functions
11.1.1.3.1 MakeServiceBuilder(DynamicAccessListDiagServiceBuilder::ByteString)
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:auto MakeServiceBuilder (ara::diag::DynamicAccessListDiagServiceBuilder::ByteString serviceHead) noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder;
Parameters (in):serviceHeadA string of bytes to start the DynamicAccess pattern-match
Return value:DynamicAccessListDiagServiceBuilderReturns an instance of a diagnostic service pattern builder
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This function is used by the AA to construct a pattern for the DynamicAccessList, using a string of bytes.
11.1.1.3.2 MakeServiceBuilder(DynamicAccessListDiagServiceBuilder::Byte)
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:auto MakeServiceBuilder (ara::diag::DynamicAccessListDiagServiceBuilder::Byte sid) noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder;
Parameters (in):sidThe diagnostic service identifier
Return value:DynamicAccessListDiagServiceBuilderReturns an instance of a diagnostic service pattern builder.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This function is used by the AA to construct a pattern for the DynamicAccessList, using only the SID.
11.1.1.3.3 Reserve
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:void Reserve (std::size_t numberOfServiceHeads, std::size_t maxServiceHeadSize) noexcept;
Parameters (in):numberOfServiceHeadsThe number of diagnostic service patterns.
maxServiceHeadSizeThe expected maximum number of diagnostic service bytes in a single pattern.
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Preallocates memory for all service heads to fit into the DynamicAccessList. The preallocation can be just estimated and may calculate just the worst case of memory needed, not exact memory size needed for data numberOfServiceHeads.
11.1.1.3.4 operator=(DiagnosticServiceDynamicAccessList&&) &
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:auto operator= (ara::diag::DiagnosticServiceDynamicAccessList &&other) & noexcept -> ara::diag::DiagnosticServiceDynamicAccessList &;
Parameters (in):otherObject to move-assign from.
Return value:DiagnosticServiceDynamicAccessListDiagnosticService DynamicAccessList& Reference to self.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Move assignment operator of DiagnosticServiceDynamicAccessList.
11.1.1.3.5 operator=(DiagnosticServiceDynamicAccessList const&) &
Kind:function
Header file:#include "ara/diag/diagnostic_service_dynamic_access_list.h"
Scope:ara::diag::DiagnosticServiceDynamicAccessList
Syntax:auto operator= (ara::diag::DiagnosticServiceDynamicAccessList const &other) & noexcept -> ara::diag::DiagnosticServiceDynamicAccessList &;
Parameters (in):otherObject to copy-assign from.
Return value:DiagnosticServiceDynamicAccessListDiagnosticService DynamicAccessList& Reference to self.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Copy assignment operator of DiagnosticServiceDynamicAccessList.

12 Header: ara/diag/download.h

12.1 Class: DownloadService

Kind:class
Port Interfaces:DiagnosticDownloadInterface
Header file:#include "ara/diag/download.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DownloadService
Syntax:class DownloadService {...};
Description:Download service interface.

12.1.1 Public Member Functions

12.1.1.1 Special Member Functions
12.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:DownloadService (DownloadService &&) noexcept=delete;
Description:Move constructor of DownloadService.
12.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:ara::diag::DownloadService & operator= (ara::diag::DownloadService &&)=delete;
Description:Move assignment operator of DownloadService.
12.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:virtual ~DownloadService () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class DownloadService.
12.1.1.2 Constructors
12.1.1.2.1 DownloadService(const ara::core::InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:explicit DownloadService (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticDownloadInterface
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticDownloadInterface needs to be typed by a DiagnosticServiceGenericMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Class for an DownloadService.
12.1.1.2.2 DownloadService(DownloadService&)
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:DownloadService (DownloadService &)=delete;
Description:DownloadService shall be a single not copy-able instance.
12.1.1.3 Member Functions
12.1.1.3.1 DownloadData
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:virtual ara::core::Future< ara::diag::DownloadService::OperationOutput > DownloadData (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):transferRequestParameterRecorddata to be transferred (copied/downloaded to the ECU/server)
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.responseData will be placed after the blockSequenceCounter as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for TransferData following a previous RequestDownload.
12.1.1.3.2 Offer
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
12.1.1.3.3 RequestDownload
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:virtual ara::core::Future< void > RequestDownload (std::uint8_t dataFormatIdentifier, std::uint8_t addressAndLengthFormatIdentifier, ara::core::Span< const std::uint8_t > memoryAddressAndSize, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):dataFormatIdentifierUDS dataFormat Identifier
addressAndLengthFormatIdentifierUDS addressAndLengthFormatIdentifier
memoryAddressAndSizememoryAddress and memorySize part of the request.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >A Future, which either gets readied to void (for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message)
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestDownload.
12.1.1.3.4 RequestDownloadExit
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:virtual ara::core::Future< ara::diag::DownloadService::OperationOutput > RequestDownloadExit (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):transferRequestParameterRecordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.responseData will be placed after SID as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestTransferExit.
12.1.1.3.5 StopOffer
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
12.1.1.3.6 operator=
Kind:function
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService
Syntax:ara::diag::DownloadService & operator= (ara::diag::DownloadService &)=delete;
Description:DownloadService shall be a single not assignable instance.

12.2 Struct: OperationOutput

Kind:struct
Header file:#include "ara/diag/download.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::DownloadService
Symbol:OperationOutput
Syntax:struct OperationOutput {...};
Description:Response data of positive response message.

12.2.1 Public Member Variables

12.2.1.1 responseData
Kind:variable
Header file:#include "ara/diag/download.h"
Scope:ara::diag::DownloadService::OperationOutput
Symbol:responseData
Type:ara::core::Vector< std::uint8_t >
Syntax:ara::core::Vector<std::uint8_t> responseData;
Description:Content of positive response message (without SID) Depending on the operation (e.g.: DownloadData, RequestDownloadExit) the expectation, what responseData shall contain (where it starts in the positive response) might differ. See doc of corresponding operation.

13 Header: ara/diag/dynamic_access_list_diag_service_builder.h

13.1 Class: DynamicAccessListDiagServiceBuilder

Kind:class
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DynamicAccessListDiagServiceBuilder
Syntax:class DynamicAccessListDiagServiceBuilder final {...};
Description:Definition of the DynamicAccessListDiagServiceBuilder class, which is used by the application to build a DynamicAccessList.

13.1.1 Public Member Types

13.1.1.1 Type Alias: Byte
Kind:type alias
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Symbol:Byte
Syntax:using Byte = std::uint8_t;
Description:Type alias of a single diagnostic service pattern element in the DynamicAccessList.
13.1.1.2 Type Alias: ByteString
Kind:type alias
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Symbol:ByteString
Syntax:using ByteString = ara::core::Span<Byte>;
Description:Type alias of a sequence of diagnostic service pattern elements in the DynamicAccessList.

13.1.2 Public Member Functions

13.1.2.1 Special Member Functions
13.1.2.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:DynamicAccessListDiagServiceBuilder (DynamicAccessListDiagServiceBuilder &&other) noexcept;
Parameters (in):otherObject to move-construct from.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructor of DynamicAccessListDiagServiceBuilder.
13.1.2.1.2 Destructor
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:~DynamicAccessListDiagServiceBuilder () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of DynamicAccessListDiagServiceBuilder.
13.1.2.2 Constructors
13.1.2.2.1 DynamicAccessListDiagServiceBuilder(V, ara::core::Vector<std::uint8_t>&)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:template <typename V> DynamicAccessListDiagServiceBuilder (V value, ara::core::Vector< std::uint8_t > &content) noexcept;
Parameters (in):valueValue(s) to be added to the DynamicAccessList.
contentStack holder for serialized DynamicAccessList.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Constructor for DynamicAccessListDiagServiceBuilder.
13.1.2.2.2 DynamicAccessListDiagServiceBuilder(DynamicAccessListDiagServiceBuilder const&)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:DynamicAccessListDiagServiceBuilder (DynamicAccessListDiagServiceBuilder const &other)=delete;
Description:Copy constructor of DynamicAccessListDiagServiceBuilder cannot be used.
13.1.2.3 Member Functions
13.1.2.3.1 Add(ByteRange)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:auto Add (ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange range) noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder &;
Parameters (in):rangeThe range of byte values to add to the DynamicAccessList. The range will be used to check for a match during evaluation of the diagnostic service access rights.
Return value:DynamicAccessListDiagServiceBuilderReturns the instance of the same object to allow fluent API usage.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This function is used by the application to add a range of bytes to a DynamicAccessListPattern.
13.1.2.3.2 Add(Byte)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:auto Add (ara::diag::DynamicAccessListDiagServiceBuilder::Byte value) noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder &;
Parameters (in):valueThe byte value to add to the DynamicAccessList. The value will be used to check for an exact match during evaluation of the diagnostic service access rights.
Return value:DynamicAccessListDiagServiceBuilderReturns the instance of the same object to allow fluent API usage.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This function is used by the application to add a single byte to a DynamicAccessListPattern.
13.1.2.3.3 Add(ByteString)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:auto Add (ara::diag::DynamicAccessListDiagServiceBuilder::ByteString values) noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder &;
Parameters (in):valuesThe byte sequence to add to the DynamicAccessList. The values will be used to check for an exact match during evaluation of the diagnostic service access rights.
Return value:DynamicAccessListDiagServiceBuilderReturns the instance of the same object to allow fluent API usage.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This function is used by the application to add a string of bytes to a DynamicAccessListPattern.
13.1.2.3.4 Any
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:auto Any (std::size_t numberOfBytesToIgnore) noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder &;
Parameters (in):numberOfBytesToIgnoreThe number of bytes to ignore
Return value:DynamicAccessListDiagServiceBuilderReturns the instance of the same object to allow fluent API usage.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This function is used by the application to define a wildcard, i.e, to define a set of bytes that will be ignored in the DynamicAccessList pattern being created.
13.1.2.3.5 Build
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:void Build () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Finalizes building the DynamicAccessList. Must be called before destroying the ServiceBuilder object.
13.1.2.3.6 EndsWith(ByteRange)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:void EndsWith (ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange range) noexcept;
Parameters (in):rangeThe range of byte values to end the DynamicAccessList. The range will be used to check for a match during evaluation of the diagnostic service access rights.
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This function is used by the application to specify a closed range of bytes at the end of the DynamicAccessList pattern.
13.1.2.3.7 EndsWith(Byte)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:void EndsWith (ara::diag::DynamicAccessListDiagServiceBuilder::Byte value) noexcept;
Parameters (in):valueThe byte value to end the DynamicAccessList. The value will be used to check for an exact match during evaluation of the diagnostic service access rights.
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This function is used by the application to specify a single byte value at the end of the DynamicAccessList pattern.
13.1.2.3.8 operator=(DynamicAccessListDiagServiceBuilder&&)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:auto operator= (ara::diag::DynamicAccessListDiagServiceBuilder &&other) -> ara::diag::DynamicAccessListDiagServiceBuilder &=delete;
Description:Move assignment operator of DynamicAccessListDiagServiceBuilder.
13.1.2.3.9 operator=(DynamicAccessListDiagServiceBuilder const&)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Syntax:auto operator= (ara::diag::DynamicAccessListDiagServiceBuilder const &other) -> ara::diag::DynamicAccessListDiagServiceBuilder &=delete;
Description:Copy assignment operator of DynamicAccessListDiagServiceBuilder cannot be used.

13.2 Class: ByteRange

Kind:class
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder
Symbol:ByteRange
Syntax:class ByteRange final {...};
Description:Represents a single byte value closed range. Type alias of a single diagnostic service pattern element in the DynamicAccessList

13.2.1 Public Member Functions

13.2.1.1 Special Member Functions
13.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange
Syntax:ByteRange (ByteRange &&other) noexcept;
Parameters (in):otherObject to move-assign from.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructor of ByteRange.
13.2.1.1.2 Destructor
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange
Syntax:~ByteRange () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of ByteRange.
13.2.1.2 Constructors
13.2.1.2.1 ByteRange(Byte, Byte)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange
Syntax:ByteRange (ara::diag::DynamicAccessListDiagServiceBuilder::Byte min, ara::diag::DynamicAccessListDiagServiceBuilder::Byte max) noexcept;
Parameters (in):minThe minimum value to match.
maxThe maximum value to match.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Constructs a value range.
13.2.1.2.2 ByteRange(ByteRange const&)
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange
Syntax:ByteRange (ByteRange const &other) noexcept;
Parameters (in):otherObject to construct-assign from.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Copy constructor of ByteRange.
13.2.1.3 Member Functions
13.2.1.3.1 GetMax
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange
Syntax:auto GetMax () const noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder::Byte;
Return value:ByteReturns the the highest value.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Reports the highest value to match.
13.2.1.3.2 GetMin
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange
Syntax:auto GetMin () const noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder::Byte;
Return value:ByteReturns the lowest value.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Reports the lowest value to match.
13.2.1.3.3 operator=(ByteRange const&) &
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange
Syntax:auto operator= (ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange const &other) & noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange &;
Parameters (in):otherObject to copy-assign from.
Return value:ByteRangeByteRange& Reference to self.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Copy assignment operator of ByteRange.
13.2.1.3.4 operator=(ByteRange&&) &
Kind:function
Header file:#include "ara/diag/dynamic_access_list_diag_service_builder.h"
Scope:ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange
Syntax:auto operator= (ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange &&other) & noexcept -> ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange &;
Parameters (in):otherObject to move-assign from.
Return value:ByteRangeByteRange& Reference to self.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Move assignment operator of ByteRange.

14 Header: ara/diag/ecu_reset_request.h

14.1 Non-Member Types

14.1.1 Type Alias: ResetRequestType

Kind:type alias
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:namespace ara::diag
Symbol:ResetRequestType
Syntax:using ResetRequestType = std::uint8_t;
Description:The type of the requested reset.

14.2 Global Variables

14.2.1 kCustomReset

Kind:variable
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:namespace ara::diag
Symbol:kCustomReset
Type:ResetRequestType
Syntax:constexpr ResetRequestType kCustomReset = 3;
Description:kCustomReset

14.2.2 kHardReset

Kind:variable
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:namespace ara::diag
Symbol:kHardReset
Type:ResetRequestType
Syntax:constexpr ResetRequestType kHardReset = 1;
Description:HardReset.

14.2.3 kKeyOffOnReset

Kind:variable
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:namespace ara::diag
Symbol:kKeyOffOnReset
Type:ResetRequestType
Syntax:constexpr ResetRequestType kKeyOffOnReset = 2;
Description:KeyOffOnReset.

14.2.4 kSoftReset

Kind:variable
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:namespace ara::diag
Symbol:kSoftReset
Type:ResetRequestType
Syntax:constexpr ResetRequestType kSoftReset = 0;
Description:SoftReset.

14.3 Class: EcuResetRequest

Kind:class
Port Interfaces:DiagnosticEcuResetInterface
Header file:#include "ara/diag/ecu_reset_request.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:EcuResetRequest
Syntax:class EcuResetRequest {...};
Description:Service EcuReset Request interface.

14.3.1 Public Member Functions

14.3.1.1 Special Member Functions
14.3.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:EcuResetRequest (EcuResetRequest &&) noexcept=delete;
Description:Move constructor of EcuResetRequest.
14.3.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:ara::diag::EcuResetRequest & operator= (ara::diag::EcuResetRequest &&)=delete;
Description:Move assignment operator of EcuResetRequest.
14.3.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:virtual ~EcuResetRequest () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of EcuResetRequest.
14.3.1.2 Constructors
14.3.1.2.1 EcuResetRequest(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:explicit EcuResetRequest (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticEcuResetInterface.
Exception Safety:exception safe
Thread Safety:not thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticEcuResetInterface needs to be referenced by a DiagnosticServiceGenericMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of EcuResetRequest.
14.3.1.2.2 EcuResetRequest(EcuResetRequest&)
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:EcuResetRequest (EcuResetRequest &)=delete;
Description:EcuResetRequest shall be a single not copy-able instance.
14.3.1.3 Member Functions
14.3.1.3.1 EnableRapidShutdown
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:virtual ara::core::Future< void > EnableRapidShutdown (bool enable, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):enableWhen enable is set to true the rapid shutdown will be enabled, setting enable to false will disable rapid shutdown.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Interface for subFunction En-/DisableRapidShutdown.
14.3.1.3.2 ExecuteReset
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:virtual ara::core::Future< void > ExecuteReset (const ara::diag::MetaInfo &metaInfo) noexcept=0;
Parameters (in):metaInfoMetaInfo of the request.
Return value:ara::core::Future< void >Return nothing or an error. In case the parameter DiagnosticEcuResetClass.respondToReset is either not present or present and set to respondBeforeReset, a given error has no effect.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:process which is instantiating this interface, has to execute the requested reset.
14.3.1.3.3 Offer
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
14.3.1.3.4 RequestReset
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:virtual ara::core::Future< void > RequestReset (ara::diag::ResetRequestType resetType, ara::core::Optional< std::uint8_t > id, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):resetTypeType of the requested reset.
idid of the custom reset type. Will only be evaluated when resetType is "custom".
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for any EcuReset subFunction, except En-/DisableRapidShutdown. The process, which is instantiating this interface, needs to evaluate carefully if the request to restart parts or the whole machine. Once the request to reset is accepted, the process, which is instantiating this interface, has to rely on this decision for the ExecuteReset() trigger.
14.3.1.3.5 StopOffer
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
14.3.1.3.6 operator=
Kind:function
Header file:#include "ara/diag/ecu_reset_request.h"
Scope:ara::diag::EcuResetRequest
Syntax:ara::diag::EcuResetRequest & operator= (ara::diag::EcuResetRequest &)=delete;
Description:EcuResetRequest shall be a single not assignable instance.

15 Header: ara/diag/external_authentication.h

15.1 Class: ExternalAuthentication

Kind:class
Port Interfaces:DiagnosticExternalAuthenticationInterface
Header file:#include "ara/diag/external_authentication.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ExternalAuthentication
Syntax:class ExternalAuthentication final {...};
Description:Definition of the ExternalAuthentication class, which is used by the application to receive an instance of the ClientAuthentication Class relevant to the specific client.

15.1.1 Public Member Types

15.1.1.1 Type Alias: Address
Kind:type alias
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Symbol:Address
Syntax:using Address = std::uint16_t;
Description:Alias for tester address.

15.1.2 Public Member Functions

15.1.2.1 Special Member Functions
15.1.2.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:ExternalAuthentication (ExternalAuthentication &&other) noexcept=default;
Parameters (in):otherObject to move-construct from
Exception Safety:exception safe
Description:Move constructor of ExternalAuthentication.
15.1.2.1.2 Destructor
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:~ExternalAuthentication () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of DiagnosticServiceDynamicAccessList.
15.1.2.2 Constructors
15.1.2.2.1 ExternalAuthentication(ara::core::InstanceSpecifier)
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:explicit ExternalAuthentication (ara::core::InstanceSpecifier instanceSpecifier) noexcept;
Parameters (in):instanceSpecifierInstanceSpecifier to a PortPrototype of a DiagnosticExternalAuthenticationInterface service instance in the manifest.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticExternalAuthenticationPortMapping needs to be typed by a DiagnosticExternalAuthenticationInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructs the port for authentication of diagnostic clients.
15.1.2.2.2 ExternalAuthentication(ExternalAuthentication const&)
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:ExternalAuthentication (ExternalAuthentication const &other)=delete;
Description:Copy constructor of ExternalAuthentication.
15.1.2.3 Member Functions
15.1.2.3.1 Get(Address)
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:ara::core::Result< ara::diag::ClientAuthentication > Get (ara::diag::ExternalAuthentication::Address sourceAddress) noexcept;
Parameters (in):sourceAddressThe source address of the client
Return value:ara::core::Result< ClientAuthentication >Returns the associated diagnostic client authentication object or error.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This function is used by the application to get the ClientAuthentication Instance that is handling the Authentication State of the Client corresponding to the Address.
15.1.2.3.2 Get(const MetaInfo&)
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:ara::core::Result< ara::diag::ClientAuthentication > Get (const ara::diag::MetaInfo &metaInfo) noexcept;
Parameters (in):metaInfoMetaInfo of the request.
Return value:ara::core::Result< ClientAuthentication >Returns the diagnostic client associated authentication object or error.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:This function is used by the application to get the ClientAuthentication Instance that is handling the Authentication State of the Client corresponding to the MetaInfo.
15.1.2.3.3 GetAll
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:ara::core::Vector< ara::diag::ClientAuthentication > GetAll () noexcept;
Return value:ara::core::Vector< ClientAuthentication >Returns the list of all diagnostic client associated authentication objects or empty list if none available.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:This function is used by the application to get all the ClientAuthentication Instances that are currently handled by the DM.
15.1.2.3.4 operator=(ExternalAuthentication const&)
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:auto operator= (ara::diag::ExternalAuthentication const &other) -> ara::diag::ExternalAuthentication &=delete;
Description:Copy assignment operator of ExternalAuthentication.
15.1.2.3.5 operator=(ExternalAuthentication&&) &
Kind:function
Header file:#include "ara/diag/external_authentication.h"
Scope:ara::diag::ExternalAuthentication
Syntax:auto operator= (ara::diag::ExternalAuthentication &&other) & noexcept -> ara::diag::ExternalAuthentication & =default;
Parameters (in):otherObject to move-assign from.
Return value:ExternalAuthenticationExternalAuthentication& Reference to self.
Exception Safety:exception safe
Description:Move assignment operator of ExternalAuthentication.

16 Header: ara/diag/file_transfer.h

16.1 Class: FileTransferService

Kind:class
Port Interfaces:DiagnosticRequestFileTransferInterface
Header file:#include "ara/diag/file_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:FileTransferService
Syntax:class FileTransferService {...};
Description:File Transfer service interface.

16.1.1 Public Member Types

16.1.1.1 Enumeration: WriteFileMode
Kind:enumeration
Header file:#include "ara/diag/file_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::FileTransferService
Symbol:WriteFileMode
Underlying type:ara::core::Byte
Syntax:enum class WriteFileMode : ara::core::Byte {...};
Values:kAddThe file shall be added only if not existing.
kReplaceThe file shall be added in any case, if already exists, will be replaced.
Description:Determines the write file operation mode.

16.1.2 Public Member Functions

16.1.2.1 Special Member Functions
16.1.2.1.1 Destructor
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:virtual ~FileTransferService () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class FileTransferService.
16.1.2.2 Constructors
16.1.2.2.1 FileTransferService
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:FileTransferService (ara::core::InstanceSpecifier const &instanceSpecifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):instanceSpecifierInstanceSpecifier to a PortPrototype of a DiagnosticRequestFileTransferInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticRequestFileTransferInterface needs to be referenced by a DiagnosticServiceGenericMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor for FileTransferService (inherited)
16.1.2.3 Member Functions
16.1.2.3.1 DeleteFile
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:virtual auto DeleteFile (ara::core::String fileName, MetaInfo const &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept -> ara::core::Future< void >=0;
Parameters (in):fileNamePath including name of the file to read
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >A Future with either a void data result to be reported to the UDS client (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestFileTransfer with ModeOfOperation DeleteFile. This method is the complete operation of deleting a file
16.1.2.3.2 Offer
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:auto Offer () noexcept -> ara::core::Result< void >;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
16.1.2.3.3 RequestReadDirectory
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:virtual auto RequestReadDirectory (ara::core::String directoryName, MetaInfo const &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept -> ara::core::Future< std::tuple< DataTransferReadSession, std::uint64_t > >=0;
Parameters (in):directoryNamePath including name of the directory to read
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< std::tuple< DataTransferReadSession, std::uint64_t > >A Future with either the access strategy to be used during reading and the directory information size to be reported to the UDS client (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestFileTransfer with ModeOfOperation ReadDir. .
16.1.2.3.4 RequestReadFile
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:virtual auto RequestReadFile (ara::core::String fileName, ara::core::Byte dataFormatIdentifier, MetaInfo const &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept -> ara::core::Future< std::tuple< DataTransferReadSession, FileSizes > >=0;
Parameters (in):fileNamePath including name of the file to read
dataFormatIdentifierUDS dataFormat Identifier
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< std::tuple< DataTransferReadSession, FileSizes > >A Future with either the access strategy to be used during reading and the file sizes to be reported to the UDS client (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestFileTransfer with ModeOfOperation ReadFile.
• ara::diag::FileTransferService::FileSizes.uncompressed_size: If set to 0, the parameter will not be reported to the diagnostic client.
• ara::diag::FileTransferService::FileSizes.compressed_size: If set to 0, the parameter will not be reported to the diagnostic client. If no compression is used, the value shall be zero.
16.1.2.3.5 RequestResumeWriteFile
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:virtual auto RequestResumeWriteFile (ara::core::String fileName, ara::core::Byte dataFormatIdentifier, ara::diag::FileTransferService::FileSizes fileSizes, MetaInfo const &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept -> ara::core::Future< std::tuple< DataTransferWriteSession, std::uint64_t > >=0;
Parameters (in):fileNamePath including name of the file to read
dataFormatIdentifierUDS dataFormat Identifier
fileSizesThe compressed/uncompressed files sizes
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< std::tuple< DataTransferWriteSession, std::uint64_t > >A Future with either an instance of the file writing session and the byte position where to start resuming from to be reported to the UDS client (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestFileTransfer with ModeOfOperation ResumeFile.
16.1.2.3.6 RequestWriteFile
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:virtual auto RequestWriteFile (ara::core::String fileName, ara::core::Byte dataFormatIdentifier, ara::diag::FileTransferService::FileSizes fileSizes, ara::diag::FileTransferService::WriteFileMode mode, MetaInfo const &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept -> ara::core::Future< ara::diag::DataTransferWriteSession >=0;
Parameters (in):fileNamePath including name of the file to read
dataFormatIdentifierUDS dataFormat Identifier
fileSizesThe compressed/uncompressed files sizes
modeThe file replacement mode
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< DataTransferWriteSession >A Future with either an instance of the file writing session to be reported to the UDS client (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestFileTransfer with ModeOfOperation WriteFile.
16.1.2.3.7 StopOffer
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:void StopOffer () const noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.

16.1.3 Protected Member Functions

16.1.3.1 Special Member Functions
16.1.3.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:FileTransferService (FileTransferService &&other) noexcept;
Parameters (out):otherThe other object
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructs an instance of FileTransferService.
Visibility:protected
16.1.3.2 Constructors
16.1.3.2.1 FileTransferService
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:FileTransferService (FileTransferService const &)=delete;
Description:FileTransferService shall be a single not copy-able instance.
Visibility:protected
16.1.3.3 Member Functions
16.1.3.3.1 operator=(FileTransferService const&)
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:auto operator= (ara::diag::FileTransferService const &) -> ara::diag::FileTransferService &=delete;
Description:FileTransferService shall be a single not assignable instance.
Visibility:protected
16.1.3.3.2 operator=(FileTransferService&&) &
Kind:function
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService
Syntax:auto operator= (ara::diag::FileTransferService &&other) & noexcept -> ara::diag::FileTransferService &;
Parameters (out):otherThe other object
Return value:FileTransferServiceReference to self
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Move assigns an instance of FileTransferService.
Visibility:protected

16.2 Struct: FileSizes

Kind:struct
Header file:#include "ara/diag/file_transfer.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::FileTransferService
Symbol:FileSizes
Syntax:struct FileSizes {...};
Description:Definition of total file sizes.

16.2.1 Public Member Variables

16.2.1.1 compressed_size
Kind:variable
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService::FileSizes
Symbol:compressed_size
Type:std::uint64_t
Syntax:std::uint64_t compressed_size;
Description:Specifies the compressed file size in bytes.
16.2.1.2 uncompressed_size
Kind:variable
Header file:#include "ara/diag/file_transfer.h"
Scope:ara::diag::FileTransferService::FileSizes
Symbol:uncompressed_size
Type:std::uint64_t
Syntax:std::uint64_t uncompressed_size;
Description:Specifies the uncompressed file size in bytes.

17 Header: ara/diag/generic_data_identifier.h

17.1 Class: GenericDataIdentifier

Kind:class
Port Interfaces:DiagnosticDataIdentifierGenericInterface
Header file:#include "ara/diag/generic_data_identifier.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:GenericDataIdentifier
Syntax:class GenericDataIdentifier {...};
Description:Generic DataIdentifier interface.

17.1.1 Public Member Functions

17.1.1.1 Special Member Functions
17.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:GenericDataIdentifier (GenericDataIdentifier &&) noexcept=delete;
Description:Move constructor of GenericDataIdentifier.
17.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:ara::diag::GenericDataIdentifier & operator= (ara::diag::GenericDataIdentifier &&)=delete;
Description:Move assignment operator of GenericDataIdentifier.
17.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:virtual ~GenericDataIdentifier () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class GenericDataIdentifier .
17.1.1.2 Constructors
17.1.1.2.1 GenericDataIdentifier(const ara::core::InstanceSpecifier&, DataIdentifierConcurrencyType)
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:explicit GenericDataIdentifier (const ara::core::InstanceSpecifier &specifier, ara::diag::DataIdentifierConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticDataIdentifierGenericInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent)
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticDataIdentifierGenericInterface needs to be referenced by a DiagnosticDataPortMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Class for an GenericDataIdentifier.
17.1.1.2.2 GenericDataIdentifier(GenericDataIdentifier&)
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:GenericDataIdentifier (GenericDataIdentifier &)=delete;
Description:GenericDataIdentifier shall be a single not copy-able instance.
17.1.1.3 Member Functions
17.1.1.3.1 Offer
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
17.1.1.3.2 Read
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:virtual ara::core::Future< ara::diag::GenericDataIdentifier::OperationOutput > Read (std::uint16_t dataIdentifier, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):dataIdentifierthe corresponding DataIdentifier
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for ReadDataByIdentifier request for this DiagnosticDataIdentifier.
17.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
17.1.1.3.4 Write
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:virtual ara::core::Future< void > Write (std::uint16_t dataIdentifier, ara::core::Span< const std::uint8_t > requestData, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept;
Parameters (in):dataIdentifierthe corresponding DataIdentifier
requestDataContent of request message (without DataIdentifier).
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >A Future with either void (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for WriteDataByIdentifier request for this DiagnosticDataIdentifier.
17.1.1.3.5 operator=
Kind:function
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier
Syntax:ara::diag::GenericDataIdentifier & operator= (ara::diag::GenericDataIdentifier &)=delete;
Description:GenericDataIdentifier shall be a single not assignable instance.

17.2 Struct: OperationOutput

Kind:struct
Header file:#include "ara/diag/generic_data_identifier.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::GenericDataIdentifier
Symbol:OperationOutput
Syntax:struct OperationOutput {...};
Description:Response data of positive respose message.

17.2.1 Public Member Variables

17.2.1.1 responseData
Kind:variable
Header file:#include "ara/diag/generic_data_identifier.h"
Scope:ara::diag::GenericDataIdentifier::OperationOutput
Symbol:responseData
Type:ara::core::Vector< std::uint8_t >
Syntax:ara::core::Vector<std::uint8_t> responseData;
Description:Content of positive respose message (without DataIdentifier)

18 Header: ara/diag/generic_routine.h

18.1 Class: GenericRoutine

Kind:class
Port Interfaces:DiagnosticRoutineGenericInterface
Header file:#include "ara/diag/generic_routine.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:GenericRoutine
Syntax:class GenericRoutine {...};
Description:Generic Routine interface.

18.1.1 Public Member Functions

18.1.1.1 Special Member Functions
18.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:GenericRoutine (GenericRoutine &&) noexcept=delete;
Description:Move constructor of GenericRoutine.
18.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:ara::diag::GenericRoutine & operator= (ara::diag::GenericRoutine &&)=delete;
Description:Move assignment operator of GenericRoutine.
18.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:virtual ~GenericRoutine () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class GenericRoutine .
18.1.1.2 Constructors
18.1.1.2.1 GenericRoutine(const ara::core::InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:explicit GenericRoutine (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticRoutineGenericInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticRoutineGenericInterface needs to be referenced by a DiagnosticServiceGenericMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Class for an GenericRoutine.
18.1.1.2.2 GenericRoutine(GenericRoutine&)
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:GenericRoutine (GenericRoutine &)=delete;
Description:GenericRoutine shall be a single not copy-able instance.
18.1.1.3 Member Functions
18.1.1.3.1 Offer
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
18.1.1.3.2 RequestResults
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:virtual ara::core::Future< ara::diag::GenericRoutine::OperationOutput > RequestResults (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept;
Parameters (in):routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier),
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RoutineControl with SubFunction RequestResults (0x03) request for this DiagnosticRoutineIdentifier.
18.1.1.3.3 Start
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:virtual ara::core::Future< ara::diag::GenericRoutine::OperationOutput > Start (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier).
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RoutineControl with SubFunction Start (0x01) request for this DiagnosticRoutineIdentifier.
18.1.1.3.4 Stop
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:virtual ara::core::Future< ara::diag::GenericRoutine::OperationOutput > Stop (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept;
Parameters (in):routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier).
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaData of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for an negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RoutineControl with SubFunction Stop (0x02) request for this DiagnosticRoutineIdentifier.
18.1.1.3.5 StopOffer
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
18.1.1.3.6 operator=
Kind:function
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine
Syntax:ara::diag::GenericRoutine & operator= (ara::diag::GenericRoutine &)=delete;
Description:GenericRoutine shall be a single not assignable instance.

18.2 Struct: OperationOutput

Kind:struct
Header file:#include "ara/diag/generic_routine.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::GenericRoutine
Symbol:OperationOutput
Syntax:struct OperationOutput {...};
Description:Response data of positive respose message.

18.2.1 Public Member Variables

18.2.1.1 responseData
Kind:variable
Header file:#include "ara/diag/generic_routine.h"
Scope:ara::diag::GenericRoutine::OperationOutput
Symbol:responseData
Type:ara::core::Vector< std::uint8_t >
Syntax:ara::core::Vector<std::uint8_t> responseData;
Description:Content of positive respose message (without RoutineIdentifier)

19 Header: ara/diag/generic_uds_service.h

19.1 Class: GenericUDSService

Kind:class
Port Interfaces:DiagnosticGenericUdsInterface
Header file:#include "ara/diag/generic_uds_service.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:GenericUDSService
Syntax:class GenericUDSService {...};
Description:Generic UDS interface.

19.1.1 Public Member Functions

19.1.1.1 Special Member Functions
19.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:GenericUDSService (GenericUDSService &&) noexcept=delete;
Description:Move constructor of GenericUDSService.
19.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:ara::diag::GenericUDSService & operator= (ara::diag::GenericUDSService &&)=delete;
Description:Move assignment operator of GenericUDSService.
19.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:virtual ~GenericUDSService () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of GenericUDSService.
19.1.1.2 Constructors
19.1.1.2.1 GenericUDSService(const ara::core::InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:explicit GenericUDSService (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticGenericUdsInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticGenericUdsInterface needs to be referenced by a DiagnosticServiceGenericMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of GenericUDSService.
19.1.1.2.2 GenericUDSService(GenericUDSService&)
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:GenericUDSService (GenericUDSService &)=delete;
Description:GenericUDSService shall be a single not copy-able instance.
19.1.1.3 Member Functions
19.1.1.3.1 HandleMessage
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:virtual ara::core::Future< ara::diag::GenericUDSService::OperationOutput > HandleMessage (std::uint8_t sid, ara::core::Span< const std::uint8_t > requestData, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):sidDiagnostic Request Service Identifier.
requestDataDiagnostic request data (starting after SID).
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Result with either a OperationOutput or an error
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for any request message.
19.1.1.3.2 Offer
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
19.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
19.1.1.3.4 operator=
Kind:function
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService
Syntax:ara::diag::GenericUDSService & operator= (ara::diag::GenericUDSService &)=delete;
Description:GenericUDSService shall be a single not assignable instance.

19.2 Struct: OperationOutput

Kind:struct
Header file:#include "ara/diag/generic_uds_service.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::GenericUDSService
Symbol:OperationOutput
Syntax:struct OperationOutput {...};
Description:Response data of positive respose message.

19.2.1 Public Member Variables

19.2.1.1 responseData
Kind:variable
Header file:#include "ara/diag/generic_uds_service.h"
Scope:ara::diag::GenericUDSService::OperationOutput
Symbol:responseData
Type:ara::core::Vector< std::uint8_t >
Syntax:ara::core::Vector<std::uint8_t> responseData;
Description:Content of positive respose message (without SID)

20 Header: ara/diag/meta_info.h

20.1 Class: MetaInfo

Kind:class
Header file:#include "ara/diag/meta_info.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:MetaInfo
Syntax:class MetaInfo final {...};
Description:Metainfo interface.

20.1.1 Public Member Types

20.1.1.1 Type Alias: Context
Kind:type alias
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Symbol:Context
Syntax:using Context = std::uint32_t;
Description:Definition of possible call context.

20.1.2 Public Member Variables

20.1.2.1 kDiagnosticCommunication
Kind:variable
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Symbol:kDiagnosticCommunication
Type:MetaInfo::Context
Syntax:MetaInfo::Context kDiagnosticCommunication = 0x01;
Description:Service request in DCM context.
20.1.2.2 kDoIP
Kind:variable
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Symbol:kDoIP
Type:MetaInfo::Context
Syntax:MetaInfo::Context kDoIP = 0x03;
Description:For reading VIN.
20.1.2.3 kFaultMemory
Kind:variable
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Symbol:kFaultMemory
Type:MetaInfo::Context
Syntax:MetaInfo::Context kFaultMemory = 0x02;
Description:For DIDs in Snapshots.

20.1.3 Public Member Functions

20.1.3.1 Special Member Functions
20.1.3.1.1 Copy Constructor
Kind:function
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Syntax:MetaInfo (const MetaInfo &)=delete;
Description:Copy Constructor of MetaInfo cannot be used.
20.1.3.1.2 Default Constructor
Kind:function
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Syntax:MetaInfo () noexcept=delete;
Description:Constructor of MetaInfo cannot be used.
20.1.3.1.3 Move Constructor
Kind:function
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Syntax:MetaInfo (MetaInfo &&obj) noexcept;
Parameters (in):objobject to be moved
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move Constructor of MetaInfo.
20.1.3.1.4 Copy Assignment Operator
Kind:function
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Syntax:ara::diag::MetaInfo & operator= (const ara::diag::MetaInfo &)=delete;
Description:Copy Assignment Operator of MetaInfo cannot be used.
20.1.3.1.5 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Syntax:ara::diag::MetaInfo & operator= (ara::diag::MetaInfo &&other) & noexcept;
Parameters (in):otherMetaInfo instance
Return value:MetaInfo &Reference to the current object
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Move Assignment Operator of MetaInfo.
20.1.3.1.6 Destructor
Kind:function
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Syntax:~MetaInfo () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Default destructor.
20.1.3.2 Member Functions
20.1.3.2.1 GetContext
Kind:function
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Syntax:ara::diag::MetaInfo::Context GetContext () const noexcept;
Return value:ContextReturns the context.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Get the context of the invocation.
20.1.3.2.2 GetValue
Kind:function
Header file:#include "ara/diag/meta_info.h"
Scope:ara::diag::MetaInfo
Syntax:ara::core::Optional< ara::core::StringView > GetValue (ara::core::StringView key) const noexcept;
Parameters (in):keyidentification of value to be returned
Return value:ara::core::Optional< ara::core::StringView >Returns value for the given key.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Get the metainfo value for a given key.

21 Header: ara/diag/release_handler.h

21.1 Class: ReleaseHandler

Kind:class
Header file:#include "ara/diag/release_handler.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ReleaseHandler
Syntax:class ReleaseHandler final {...};
Description:ReleaseHandler contains a shared state if the processing should be cancelled.

21.1.1 Public Member Types

21.1.1.1 Type Alias: ReleaseHandlerSetNotifier
Kind:type alias
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Symbol:ReleaseHandlerSetNotifier
Syntax:using ReleaseHandlerSetNotifier = std::function<void(void)>;
Thread Safety:not thread-safe
Description:Notifier function which is called if the shared resource can be freed.

21.1.2 Public Member Functions

21.1.2.1 Special Member Functions
21.1.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Syntax:ReleaseHandler ()=delete;
Description:Default constructor of ReleaseHandler cannot be used.
21.1.2.1.2 Move Constructor
Kind:function
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Syntax:ReleaseHandler (ReleaseHandler &&other) noexcept;
Parameters (out):otherThe other object
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructs instance of class.
21.1.2.1.3 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Syntax:ara::diag::ReleaseHandler & operator= (ara::diag::ReleaseHandler &&other) & noexcept;
Parameters (out):otherThe other object
Return value:ReleaseHandler &Reference to self
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Move assigns instance of class.
21.1.2.1.4 Destructor
Kind:function
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Syntax:~ReleaseHandler () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Default destructor.
21.1.2.2 Constructors
21.1.2.2.1 ReleaseHandler
Kind:function
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Syntax:ReleaseHandler (ReleaseHandler const &)=delete;
Description:Copy constructor of ReleaseHandler cannot be used.
21.1.2.3 Member Functions
21.1.2.3.1 MayRelease
Kind:function
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Syntax:bool MayRelease () const noexcept;
Return value:boolTrue in if the shared resource is no longer in use, False otherwise
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Reports whether the shared resource is no longer in use.
21.1.2.3.2 SetNotifier
Kind:function
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Syntax:void SetNotifier (ara::diag::ReleaseHandler::ReleaseHandlerSetNotifier notifier) noexcept;
Parameters (in):notifierNotification function that is called upon releasing the shared resource
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Registering a notifier function which is called if the shared resource can be freed. A consecutive call of this method will overwrite the previous registered notifier.
Notes:The passed in function does not throw any exceptions. The passed notifier must contain a callable object.
21.1.2.3.3 operator=
Kind:function
Header file:#include "ara/diag/release_handler.h"
Scope:ara::diag::ReleaseHandler
Syntax:ara::diag::ReleaseHandler & operator= (ara::diag::ReleaseHandler const &)=delete;
Description:Copy assignment operator of ReleaseHandler cannot be used.

22 Header: ara/diag/security_access.h

22.1 Non-Member Types

22.1.1 Enumeration: KeyCompareResultType

Kind:enumeration
Header file:#include "ara/diag/security_access.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:KeyCompareResultType
Underlying type:std::uint8_t
Syntax:enum class KeyCompareResultType : std::uint8_t {...};
Values:kKeyValid= 0x00
Key is valid.
kKeyInvalid= 0x01
Key is invalid.
Description:Represents the status of the key compare.

22.2 Class: SecurityAccess

Kind:class
Port Interfaces:DiagnosticSecurityLevelInterface
Header file:#include "ara/diag/security_access.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:SecurityAccess
Syntax:class SecurityAccess {...};
Description:DiagnosticSecurityAccessInterface.

22.2.1 Public Member Functions

22.2.1.1 Special Member Functions
22.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:SecurityAccess (SecurityAccess &&) noexcept=delete;
Description:Move constructor of SecurityAccess.
22.2.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:ara::diag::SecurityAccess & operator= (ara::diag::SecurityAccess &&)=delete;
Description:Move assignment operator of SecurityAccess.
22.2.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:virtual ~SecurityAccess () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of SecurityAccess .
22.2.1.2 Constructors
22.2.1.2.1 SecurityAccess(const ara::core::InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:explicit SecurityAccess (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticSecurityLevelInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticSecurityLevelPortMapping needs to be typed by a DiagnosticSecurityLevelInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of SecurityAccess.
22.2.1.2.2 SecurityAccess(SecurityAccess&)
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:SecurityAccess (SecurityAccess &)=delete;
Description:SecurityAccess shall be a single not copy-able instance.
22.2.1.3 Member Functions
22.2.1.3.1 CompareKey
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:virtual ara::core::Future< ara::diag::KeyCompareResultType > CompareKey (ara::core::Span< const std::uint8_t > key, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):keyThe key to be validated.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< KeyCompareResultType >Result of the key validation.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:This method is called, when a diagnostic request has been finished, to notify about the outcome.
22.2.1.3.2 GetSeed
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:virtual ara::core::Future< ara::core::Vector< std::uint8_t > > GetSeed (ara::core::Span< const std::uint8_t > securityAccessDataRecord, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):securityAccessDataRecordSecurity Access payload,
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< ara::core::Vector< std::uint8_t > >provided seed
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for any request messsage.
22.2.1.3.3 Offer
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
22.2.1.3.4 StopOffer
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
22.2.1.3.5 operator=
Kind:function
Header file:#include "ara/diag/security_access.h"
Scope:ara::diag::SecurityAccess
Syntax:ara::diag::SecurityAccess & operator= (ara::diag::SecurityAccess &)=delete;
Description:SecurityAccess shall be a single not assignable instance.

23 Header: ara/diag/service_validation.h

23.1 Non-Member Types

23.1.1 Enumeration: ConfirmationStatusType

Kind:enumeration
Header file:#include "ara/diag/service_validation.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ConfirmationStatusType
Underlying type:std::uint8_t
Syntax:enum class ConfirmationStatusType : std::uint8_t {...};
Values:kResPosOk= 0x00
Positive response has been sent out successfully.
kResPosNotOk= 0x01
Positive response has not been sent out successfully.
kResNegOk= 0x02
Negative response has been sent out successful.
kResNegNotOk= 0x03
Negative response has not been sent out successfully.
kResPosSuppressed= 0x04
Positive answer suppressed.
kResNegSuppressed= 0x05
Negative answer suppressed.
kCanceled= 0x06
Processing is cancelled.
kNoProcessingNoResponse= 0x07
Processing rejected in Validation.
Description:Represents the status of the service processing.

23.2 Class: ServiceValidation

Kind:class
Port Interfaces:DiagnosticServiceValidationInterface
Header file:#include "ara/diag/service_validation.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ServiceValidation
Syntax:class ServiceValidation {...};
Description:DiagnosticServiceValidationInterface.

23.2.1 Public Member Functions

23.2.1.1 Special Member Functions
23.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:ServiceValidation (ServiceValidation &&)=delete;
Description:Move constructor of ServiceValidation.
23.2.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:ara::diag::ServiceValidation & operator= (ara::diag::ServiceValidation &&)=delete;
Description:Move assignment operator of ServiceValidation.
23.2.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:virtual ~ServiceValidation () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of ServiceValidation .
23.2.1.2 Constructors
23.2.1.2.1 ServiceValidation(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:explicit ServiceValidation (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticServiceValidationInterface
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticServiceValidationMapping needs to be typed by a DiagnosticServiceValidationInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of ServiceValidation. Depending on value of attribute DiagnosticServiceValidationMapping.Identifiable.category, the SWS_DM_00774.ara::diag::ServiceValidation::Validate is either called in the context of the NRC sequence in chapter 8.7 response implementation rules from UDS ISO 14229-1 as a Manufacturer or a Supplier Check.
23.2.1.2.2 ServiceValidation(ServiceValidation&)
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:ServiceValidation (ServiceValidation &)=delete;
Description:ServiceValidation shall be a single not copy-able instance.
23.2.1.3 Member Functions
23.2.1.3.1 Confirmation
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:virtual void Confirmation (ara::diag::ConfirmationStatusType status, const ara::diag::MetaInfo &metaInfo) noexcept;
Parameters (in):statusstatus/outcome of the service processing.
metaInfoMetaInfo of the request.
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This method is called, when a diagnostic request has been finished, to notify about the outcome.
23.2.1.3.2 Offer
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
23.2.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
23.2.1.3.4 Validate
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:virtual ara::core::Future< void > Validate (ara::core::Span< const std::uint8_t > requestData, const ara::diag::MetaInfo &metaInfo) noexcept;
Parameters (in):requestDataDiagnostic request data (including SID).
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
Return value:ara::core::Future< void >Returns nothing or an error
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for any request message.
23.2.1.3.5 operator=
Kind:function
Header file:#include "ara/diag/service_validation.h"
Scope:ara::diag::ServiceValidation
Syntax:ara::diag::ServiceValidation & operator= (ara::diag::ServiceValidation &)=delete;
Description:ServiceValidation shall be a single not assignable instance.

24 Header: ara/diag/transmit_certificate.h

24.1 Class: TransmitCertificate

Kind:class
Port Interfaces:DiagnosticTransmitCertificateInterface
Header file:#include "ara/diag/transmit_certificate.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:TransmitCertificate
Syntax:class TransmitCertificate {...};
Description:Class to implement the subfunction TransmitCertificate (29 04) of UDS service Authentication as interface to application. This class implements a so called generic interface, where the application has means to handle one ore more certificateEvaluationId transferred certificates.

24.1.1 Public Member Functions

24.1.1.1 Special Member Functions
24.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:TransmitCertificate (TransmitCertificate &&) noexcept=delete;
Description:Move constructor of TransmitCertificate.
24.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:ara::diag::TransmitCertificate & operator= (ara::diag::TransmitCertificate &&)=delete;
Description:Move assignment operator of TransmitCertificate.
24.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:virtual ~TransmitCertificate () noexcept=default;
Exception Safety:exception safe
Description:Destructor of TransmitCertificate.
24.1.1.2 Constructors
24.1.1.2.1 TransmitCertificate(TransmitCertificate&)
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:TransmitCertificate (TransmitCertificate &)=delete;
Description:Authentication shall be a single not copy-able instance.
24.1.1.2.2 TransmitCertificate(const ara::core::InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:explicit TransmitCertificate (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticTransmitCertificateInterface service instance in the manifest.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticAuthenticationPortMapping needs to be typed by a DiagnosticTransmitCertificateInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of TransmitCertificate.
24.1.1.3 Member Functions
24.1.1.3.1 Offer
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
24.1.1.3.2 Process
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:virtual ara::core::Future< void > Process (std::uint16_t certificateEvaluationId, ara::core::Span< ara::core::Byte const > certificateData, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):certificateEvaluationIdRepresents the 16bit certificate evaluation ID as part of the UDS request message
certificateDataCertificate to be verified, transmitted by the tester
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns true in case, the current conversation has been cancelled and false otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >void
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:This method is used to process certificates send by a diagnostic tester, via the UDS subfunction TransmitCertificate inside the application. There is no specific semantics for the certificate and it is left to the application to process the received certificate and derive the needed actions.
24.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
24.1.1.3.4 operator=
Kind:function
Header file:#include "ara/diag/transmit_certificate.h"
Scope:ara::diag::TransmitCertificate
Syntax:ara::diag::TransmitCertificate & operator= (ara::diag::TransmitCertificate &)=delete;
Description:Authentication shall be a single not assignable instance.

25 Header: ara/diag/upload.h

25.1 Class: UploadService

Kind:class
Port Interfaces:DiagnosticUploadInterface
Header file:#include "ara/diag/upload.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:UploadService
Syntax:class UploadService {...};
Description:Upload service interface.

25.1.1 Public Member Functions

25.1.1.1 Special Member Functions
25.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:UploadService (UploadService &&) noexcept=delete;
Description:Move constructor of UploadService.
25.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:ara::diag::UploadService & operator= (ara::diag::UploadService &&)=delete;
Description:Move assignment operator of UploadService.
25.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:virtual ~UploadService () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class UploadService.
25.1.1.2 Constructors
25.1.1.2.1 UploadService(UploadService&)
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:UploadService (UploadService &)=delete;
Description:UploadService shall be a single not copy-able instance.
25.1.1.2.2 UploadService(const ara::core::InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:explicit UploadService (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticUploadInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticUploadInterface needs to be referenced by a DiagnosticServiceGenericMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Class for an UploadService.
25.1.1.3 Member Functions
25.1.1.3.1 Offer
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
25.1.1.3.2 RequestUpload
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:virtual ara::core::Future< void > RequestUpload (std::uint8_t dataFormatIdentifier, std::uint8_t addressAndLengthFormatIdentifier, ara::core::Span< const std::uint8_t > memoryAddressAndSize, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):dataFormatIdentifierUDS dataFormat Identifier
addressAndLengthFormatIdentifierUDS addressAndLengthFormatIdentifier
memoryAddressAndSizememoryAddress and memorySize part of the request.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >A Result with either void (for a positive response message) or an UDS NRC value (for a negative response message).
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestUpload.
25.1.1.3.3 RequestUploadExit
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:virtual ara::core::Future< ara::diag::UploadService::OperationOutput > RequestUploadExit (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):transferRequestParameterRecordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific.
Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.responseData will be placed after SID as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for RequestTransferExit.
25.1.1.3.4 StopOffer
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
25.1.1.3.5 UploadData
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:virtual ara::core::Future< ara::diag::UploadService::OperationOutput > UploadData (std::size_t numBytesToReturn, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):numBytesToReturnnumber of bytes DM accepts (due to its internal buffer) for this chunk.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< OperationOutput >A Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for a negative response message). Data in OperationOutput.responseData will be placed after blockSequenceCounter as transferResponseParameterRecord in the positive response.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Called for TransferData following a previous RequestUpload.
25.1.1.3.6 operator=
Kind:function
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService
Syntax:ara::diag::UploadService & operator= (ara::diag::UploadService &)=delete;
Description:UploadService shall be a single not assignable instance.

25.2 Struct: OperationOutput

Kind:struct
Header file:#include "ara/diag/upload.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::UploadService
Symbol:OperationOutput
Syntax:struct OperationOutput {...};
Description:Response data of positive respose message.

25.2.1 Public Member Variables

25.2.1.1 responseData
Kind:variable
Header file:#include "ara/diag/upload.h"
Scope:ara::diag::UploadService::OperationOutput
Symbol:responseData
Type:ara::core::Vector< std::uint8_t >
Syntax:ara::core::Vector<std::uint8_t> responseData;
Description:Content of positive response message (without SID) Depending on the operation (e.g.: UploadData, RequestUploadExit) the expectation, what responseData shall contain (where it starts in the positive response) might differ. See doc of corresponding operation.

26 Header: {<data-element-directory-path>}/{<data-element-shortname-lower>}.h

Kind:Header File
Syntax:data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h
Description:For each modeled DiagnosticDataElementInterface, a Diagnostic DataElement Header File is generated according to this directory path/file name convention and shall: 1. Insert a multiple inclusion guard around the whole header file as per SWS_CORE_90002
Example:// File=n/n_plus_1/n_plus_2/si_data-element.h (1)
#ifndef N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)
#define N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)
#include ".../path/to/si_common.h" (3)
...
#endif // N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)

26.1 Namespaces

26.1.1 {<namespace-list-data-element>}

Kind:namespace
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:--
Syntax:namespace ::namespace_list_data_element
Description:The generator shall use the SymbolProps aggregated in the role PortInterface. PortInterface.namespace. For each PortInterface.namespace in the ordered list: PortInterface.namespace[N+1] shall be an inner namespace of PortInterface.namespace[N] converted to lower-case.

26.2 Class: {<data-element-interface-name-x>}

Kind:class
Port Interfaces:DiagnosticDataElementInterface
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Forwarding header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower_fwd.h"
Scope:namespace ::namespace_list_data_element
Symbol:namespace_list_data_element::data_element_interface_name_x::data_element_interface_name_x
Syntax:class namespace_list_data_element::data_element_interface_name_x::data_element_interface_name_x {...};
Description:DiagnosticDataElementInterface class

26.2.1 Public Member Variables

26.2.1.1 {<data-element-out-arg-symbol>}
Kind:variable
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Symbol:namespace_list_data_element::data_element_interface_name_x::data_element_out_arg_symbol::data_element_out_arg_symbol
Type:namespace_list_data_element::data_element_interface_name_x::data_element_out_arg_symbol::data_element_out_arg_type
Syntax:namespace_list_data_element::data_element_interface_name_x::data_element_out_arg_symbol::data_element_out_arg_type namespace_list_data_element::data_element_interface_name_x::data_element_out_arg_symbol::data_element_out_arg_symbol;
Description:Member declaration representing an out argument in an namespacelistdataelement::dataelementinterfacenamex::dataelementnameReadOutput.

26.2.2 Public Member Functions

26.2.2.1 Member Functions
26.2.2.1.1 Offer
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::diag::DiagOfferErrc
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler
26.2.2.1.2 Read
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:virtual ara::core::Future< namespace_list_data_element::data_element_interface_name_x::Read::data_element_nameReadOutput > Read (const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< namespace_list_data_element::data_element_interface_name_x::Read::data_element_nameReadOutput >• If successful: an ara::core::Future containing a namespacelistdataelement::dataelementinterfacenamex::dataelementnameReadOutput object as per SWS_DM_00581
• If unsuccessful: an ara::core::Future containing a corresponding ara::diag::DiagUdsNrcErrc or ApApplicationError.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Provision of a Read DataElement (DiagnosticDataElementInterface in the role DiagnosticDataElementInterface.read)
Example:// Example:
virtual ara::core::Future<SomeDataElementReadOutput> Read(
  const ara::diag::MetaInfo& metaInfo,
  ara::diag::CancellationHandler cancellationHandler
) noexcept = 0;
26.2.2.1.3 StopOffer
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM
26.2.2.1.4 operator=(const data_element_interface_name_3&)
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:namespace_list_data_element::data_element_interface_name_x::operator=::data_element_interface_name_3 & operator= (const namespace_list_data_element::data_element_interface_name_x::operator=::data_element_interface_name_3 &other)=delete;
Description:Copy assignment constructor deletion
26.2.2.1.5 operator=(data_element_interface_name_5&&)
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:namespace_list_data_element::data_element_interface_name_x::operator=::data_element_interface_name_5 & operator= (namespace_list_data_element::data_element_interface_name_x::operator=::data_element_interface_name_5 &&other)=delete;
Description:Move assignment constructor
26.2.2.1.6 {<data-element-interface-name-1>}
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:namespace_list_data_element::data_element_interface_name_x::data_element_interface_name_1::data_element_interface_name_1 (ara::core::InstanceSpecifier instanceSpec, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):instanceSpecThe specifier of a specific instance of a service.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticDataElementInterface needs to be referenced by a DiagnosticDataPortMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Construct a namespacelistdataelement::dataelementinterfacenamex from an ara::core::InstanceSpecifier
26.2.2.1.7 {<data-element-interface-name-2>}
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:namespace_list_data_element::data_element_interface_name_x::data_element_interface_name_2::data_element_interface_name_2 (const namespace_list_data_element::data_element_interface_name_x::data_element_interface_name_2::data_element_interface_name_2 &other)=delete;
Description:Copy constructor deletion
26.2.2.1.8 {<data-element-interface-name-4>}
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:namespace_list_data_element::data_element_interface_name_x::data_element_interface_name_4::data_element_interface_name_4 (namespace_list_data_element::data_element_interface_name_x::data_element_interface_name_4::data_element_interface_name_4 &&other)=delete;
Description:Move constructor
26.2.2.1.9 ~{<data-element-interface-name-6>}
Kind:function
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Syntax:virtual ~namespace_list_data_element::data_element_interface_name_x::~data_element_interface_name_6::data_element_interface_name_6 () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destruction of a namespacelistdataelement::dataelementinterfacenamex

26.3 Struct: {<data-element-name>}ReadOutput

Kind:struct
Header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower.h"
Forwarding header file:#include "data_element_directory_path_data_element_shortname_lower.h::data_element_directory_path/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower/data_element_directory_path_data_element_shortname_lower.h::data_element_shortname_lower_fwd.h"
Scope:namespacelistdataelement::dataelementinterfacenamex
Symbol:namespace_list_data_element::data_element_interface_name_x::data_element_nameReadOutput::data_element_nameReadOutput
Syntax:struct namespace_list_data_element::data_element_interface_name_x::data_element_nameReadOutput::data_element_nameReadOutput {...};
Description:Structure wrapping the out arguments for a SWS_DM_00596.namespacelistdataelement::dataelementinterfacenamex::Read

27 Header: {<data-identifier-directory-path>}/{<data-identifier-shortname-lower>}.h

Kind:Header File
Syntax:data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h
Description:For each modeled DiagnosticDataIdentifierInterface a Diagnostic DataIdentifier Header File is generated according to this directory path/file name convention and shall: 1. Insert a multiple inclusion guard around the whole header file as per SWS_CORE_90002
Example:// File=n/n_plus_1/n_plus_2/si_data identifier.h (1)
#ifndef N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)
#define N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)
#include ".../path/to/si_common.h" (3)
...
#endif // N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)

27.1 Namespaces

27.1.1 {<namespace-list-data-identifier>}

Kind:namespace
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:--
Syntax:namespace ::namespace_list_data_identifier
Description:The generator shall use the SymbolProps aggregated in the role PortInterface. PortInterface.namespace. For each PortInterface.namespace in the ordered list: PortInterface.namespace[N+1] shall be an inner namespace of PortInterface.namespace[N] converted to lower-case.

27.2 Class: {<data-identifier-interface-name-x>}

Kind:class
Port Interfaces:DiagnosticDataIdentifierInterface
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Forwarding header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower_fwd.h"
Scope:namespace ::namespace_list_data_identifier
Symbol:namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_interface_name_x
Syntax:class namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_interface_name_x {...};
Description:DiagnosticDataIdentifierInterface class

27.2.1 Public Member Variables

27.2.1.1 {<data-identifier-out-arg-symbol>}
Kind:variable
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Symbol:namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_out_arg_symbol::data_identifier_out_arg_symbol
Type:namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_out_arg_symbol::data_identifier_out_arg_type
Syntax:namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_out_arg_symbol::data_identifier_out_arg_type namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_out_arg_symbol::data_identifier_out_arg_symbol;
Description:Member declaration representing an out argument in an namespacelistdataidentifier::dataidentifierinterfacenamex::dataidentifiernameRead.

27.2.2 Public Member Functions

27.2.2.1 Member Functions
27.2.2.1.1 Offer
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::diag::DiagOfferErrc
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler
27.2.2.1.2 Read
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:virtual ara::core::Future< namespace_list_data_identifier::data_identifier_interface_name_x::Read::data_identifier_nameReadOutput > Read (const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< namespace_list_data_identifier::data_identifier_interface_name_x::Read::data_identifier_nameReadOutput >• If successful: an ara::core::Future containing a namespacelistdataidentifier::dataidentifierinterfacenamex::dataidentifiername8ReadOutput object as per SWS_DM_00579
• If unsuccessful: an ara::core::Future containing a corresponding ara::diag::DiagUdsNrcErrc or ApApplicationError.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Provision of a reading DataIdentifier (DiagnosticDataIdentifierInterface in the role DiagnosticDataIdentifierInterface.read).
Example:// Example:
virtual ara::core::Future<SomeDataIdentifierReadOutput> Read(
  const ara::diag::MetaInfo& metaInfo,
  ara::diag::CancellationHandler cancellationHandler
) noexcept = 0;
27.2.2.1.3 StopOffer
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM
27.2.2.1.4 Write
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:virtual ara::core::Future< void > Write (namespace_list_data_identifier::data_identifier_interface_name_x::Write::data_identifier_in_arg_derived_type_0toN namespace_list_data_identifier::data_identifier_interface_name_x::Write::data_identifier_in_arg_symbol_0toN, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):namespace_list_data_identifier::data_identifier_interface_name_x::Write::data_identifier_in_arg_symbol_0toNThe symbol name of method ClientServerOperation.argument[0..N] in the ordered list of ClientServerOperation arguments, with ClientServerOperation. ArgumentDataPrototype.direction == ArgumentDirectionEnum.in given by ClientServerOperation. ArgumentDataPrototype[0..N]. Referrable.shortName
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< void >• If successful: an ara::core::Future containing a void.
• If unsuccessful: an ara::core::Future containing a corresponding ara::diag::DiagUdsNrcErrc or ApApplicationError.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Provision of a writing DataIdentifier (DiagnosticDataIdentifierInterface in the role DiagnosticDataIdentifierInterface.write).
Example:// Example:
virtual ara::core::Future<void> Write(
  // {<derived-type>} sub-clause 1:
  std::int8_t inArg0,
  // {<derived-type>} sub-clause 1:
  // e.g. if inArg1 would type-resolve to std::uint64_t
  ns1::ns2::sometype_t inArg1,
  // {<derived-type>} sub-clause 2:
  // e.g. if inArg2 would type-resolve to ara::core::map
  const ns1::ns2::anothertype_t& inArg2,
  // {<derived-type>} sub-clause 2:
  // e.g. if inArgN would type-resolve to struct
  const ns1::ns2::furthertype_t& inArgN,
  const ara::diag::MetaInfo& metaInfo,
  ara::diag::CancellationHandler cancellationHandler
) noexcept = 0;
27.2.2.1.5 operator=(data_identifier_interface_name_5&&)
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:namespace_list_data_identifier::data_identifier_interface_name_x::operator=::data_identifier_interface_name_5 & operator= (namespace_list_data_identifier::data_identifier_interface_name_x::operator=::data_identifier_interface_name_5 &&other)=delete;
Description:Move assignment constructor
27.2.2.1.6 operator=(const data_identifier_interface_name_3&)
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:namespace_list_data_identifier::data_identifier_interface_name_x::operator=::data_identifier_interface_name_3 & operator= (const namespace_list_data_identifier::data_identifier_interface_name_x::operator=::data_identifier_interface_name_3 &other)=delete;
Description:Copy assignment constructor deletion
27.2.2.1.7 {<data-identifier-interface-name-1>}
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_interface_name_1::data_identifier_interface_name_1 (ara::core::InstanceSpecifier instanceSpec, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):instanceSpecThe specifier of a specific instance of a service.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent)..
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticDataIdentifierInterface needs to be referenced by a DiagnosticDataPortMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Construct a namespacelistdataidentifier::dataidentifierinterfacenamex from an ara::core::InstanceSpecifier
27.2.2.1.8 {<data-identifier-interface-name-2>}
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_interface_name_2::data_identifier_interface_name_2 (const namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_interface_name_2::data_identifier_interface_name_2 &other)=delete;
Description:Copy constructor deletion
27.2.2.1.9 {<data-identifier-interface-name-4>}
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_interface_name_4::data_identifier_interface_name_4 (namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_interface_name_4::data_identifier_interface_name_4 &&other)=delete;
Description:Move constructor
27.2.2.1.10 ~{<data-identifier-interface-name-6>}
Kind:function
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Syntax:virtual ~namespace_list_data_identifier::data_identifier_interface_name_x::~data_identifier_interface_name_6::data_identifier_interface_name_6 ();
Exception Safety:not exception safe
Thread Safety:not thread-safe
Description:Destruction of a namespacelistdataidentifier::dataidentifierinterfacenamex

27.3 Struct: {<data-identifier-name>}ReadOutput

Kind:struct
Header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower.h"
Forwarding header file:#include "data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_directory_path/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower/data_identifier_directory_path_data_identifier_shortname_lower.h::data_identifier_shortname_lower_fwd.h"
Scope:namespacelistdataidentifier::dataidentifierinterfacenamex
Symbol:namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_nameReadOutput::data_identifier_nameReadOutput
Syntax:struct namespace_list_data_identifier::data_identifier_interface_name_x::data_identifier_nameReadOutput::data_identifier_nameReadOutput {...};
Description:Structure wrapping the out arguments for a namespacelistdataidentifier::dataidentifierinterfacenamex::dataidentifiername8ReadOutput.ReadOutput

28 Header: {<routine-interface-directory-path>}/{<routine-interface-shortname-lower>}.h

Kind:Header File
Syntax:routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h
Description:For each modeled DiagnosticRoutineInterface a Diagnostic Routine Header File is generated according to this directory path/file name convention and shall: 1. Insert a multiple inclusion guard around the whole header file as per SWS_CORE_90002
Example:// File=n/n_plus_1/n_plus_2/si_skeleton.h (1)
#ifndef N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)
#define N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)
#include ".../path/to/si_common.h" (3)
...
#endif // N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)

28.1 Namespaces

28.1.1 {<routine-interface-hierarchical-namespace-list>}

Kind:namespace
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:--
Syntax:namespace ::routine_interface_hierarchical_namespace_list
Description:The generator shall use the SymbolProps aggregated in the role PortInterface. PortInterface.namespace. For each PortInterface.namespace in the ordered list: PortInterface.namespace[N+1] shall be an inner namespace of PortInterface.namespace[N] converted to lower-case.

28.2 Class: {<routine-interface-name-x>}

Kind:class
Port Interfaces:DiagnosticRoutineInterface
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Forwarding header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower_fwd.h"
Scope:namespace ::routine_interface_hierarchical_namespace_list
Symbol:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_x
Syntax:class routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_x {...};
Description:DiagnosticRoutineInterface class

28.2.1 Public Member Variables

28.2.1.1 {<routine-interface-request-result-out-arg-symbol>}
Kind:variable
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Symbol:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_request_result_out_arg_symbol::routine_interface_request_result_out_arg_symbol
Type:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_request_result_out_arg_symbol::routine_interface_request_result_out_arg_type
Syntax:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_request_result_out_arg_symbol::routine_interface_request_result_out_arg_type routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_request_result_out_arg_symbol::routine_interface_request_result_out_arg_symbol;
Description:Member declaration representing an out argument in an routineinterfacehierarchicalnamespacelist::routineinterfacenamex::routineinterfacename11RequestOutput.
28.2.1.2 {<routine-interface-start-out-arg-symbol>}
Kind:variable
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Symbol:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_start_out_arg_symbol::routine_interface_start_out_arg_symbol
Type:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_start_out_arg_symbol::routine_interface_start_out_arg_type
Syntax:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_start_out_arg_symbol::routine_interface_start_out_arg_type routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_start_out_arg_symbol::routine_interface_start_out_arg_symbol;
Description:Member declaration representing an out argument in an routineinterfacehierarchicalnamespacelist::routineinterfacenamex::StartOutput.
28.2.1.3 {<routine-interface-stop-out-arg-symbol>}
Kind:variable
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Symbol:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_stop_out_arg_symbol::routine_interface_stop_out_arg_symbol
Type:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_stop_out_arg_symbol::routine_interface_stop_out_arg_type
Syntax:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_stop_out_arg_symbol::routine_interface_stop_out_arg_type routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_stop_out_arg_symbol::routine_interface_stop_out_arg_symbol;
Description:Member declaration representing an out argument in an routineinterfacehierarchicalnamespacelist::routineinterfacenamex::routineinterfacename9StopOutput.

28.2.2 Public Member Functions

28.2.2.1 Member Functions
28.2.2.1.1 Offer
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler
28.2.2.1.2 RequestResult
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:virtual ara::core::Future< routine_interface_hierarchical_namespace_list::routine_interface_name_x::RequestResult::routine_interface_name_12RequestResultOutput > RequestResult (routine_interface_hierarchical_namespace_list::routine_interface_name_x::RequestResult::routine_interface_request_result_in_arg_derived_type_0toN routine_interface_hierarchical_namespace_list::routine_interface_name_x::RequestResult::routine_interface_request_result_in_arg_symbol_0toN, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):routine_interface_hierarchical_namespace_list::routine_interface_name_x::RequestResult::routine_interface_request_result_in_arg_symbol_0toNThe symbol name of method ClientServerOperation.argument[0..N] in the ordered list of ClientServerOperation arguments, with ClientServerOperation. ArgumentDataPrototype.direction == ArgumentDirectionEnum.in given by ClientServerOperation. ArgumentDataPrototype[0..N]. Referrable.shortName
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< routine_interface_hierarchical_namespace_list::routine_interface_name_x::RequestResult::routine_interface_name_12RequestResultOutput >• If successful: an ara::core::Future containing an routineinterfacehierarchicalnamespacelist::routineinterfacenamex::routineinterfacename11RequestResultOutput object as per SWS_DM_00583
• If unsuccessful: an ara::core::Future containing a corresponding ara::diag::DiagUdsNrcErrc or ApApplicationError.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Provision of a RequestResult RoutineControl (DiagnosticRoutineInterface in the role DiagnosticRoutineInterface.requestResult).
Example:// Example:
virtual ara::core::Future<SomeRoutineInterfaceRequestResultOutput> RequestResult(
  // {<derived-type>} sub-clause 1:
  std::int8_t inArg0,
  // {<derived-type>} sub-clause 1:
  // e.g. if inArg1 would type-resolve to std::uint64_t
  ns1::ns2::sometype_t inArg1,
  // {<derived-type>} sub-clause 2:
  // e.g. if inArg2 would type-resolve to ara::core::map
  const ns1::ns2::anothertype_t& inArg2,
  // {<derived-type>} sub-clause 2:
  // e.g. if inArgN would type-resolve to struct
  const ns1::ns2::furthertype_t& inArgN,
  const ara::diag::MetaInfo& metaInfo,
  ara::diag::CancellationHandler cancellationHandler
) noexcept = 0;
28.2.2.1.3 Start
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:virtual ara::core::Future< routine_interface_hierarchical_namespace_list::routine_interface_name_x::Start::routine_interface_name_8StartOutput > Start (routine_interface_hierarchical_namespace_list::routine_interface_name_x::Start::routine_interface_start_in_arg_derived_type_0toN routine_interface_hierarchical_namespace_list::routine_interface_name_x::Start::routine_interface_start_in_arg_symbol_0toN, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):routine_interface_hierarchical_namespace_list::routine_interface_name_x::Start::routine_interface_start_in_arg_symbol_0toNThe symbol name of method ClientServerOperation.argument[0..N] in the ordered list of ClientServerOperation arguments, with ClientServerOperation. ArgumentDataPrototype.direction == ArgumentDirectionEnum.in given by ClientServerOperation. ArgumentDataPrototype[0..N]. Referrable.shortName
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< routine_interface_hierarchical_namespace_list::routine_interface_name_x::Start::routine_interface_name_8StartOutput >• If successful: an ara::core::Future containing an routineinterfacehierarchicalnamespacelist::routineinterfacenamex::routineinterfacename6StartOutput object as per SWS_DM_00581
• If unsuccessful: an ara::core::Future containing a corresponding ara::diag::DiagUdsNrcErrc or ApApplicationError.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Provision of a Start RoutineControl (DiagnosticRoutineInterface in the role DiagnosticRoutineInterface.start).
Example:// Example:
virtual ara::core::Future<SomeRoutineInterfaceStartOutput> Start(
  // {<derived-type>} sub-clause 1:
  std::int8_t inArg0,
  // {<derived-type>} sub-clause 1:
  // e.g. if inArg1 would type-resolve to std::uint64_t
  ns1::ns2::sometype_t inArg1,
  // {<derived-type>} sub-clause 2:
  // e.g. if inArg2 would type-resolve to ara::core::map
  const ns1::ns2::anothertype_t& inArg2,
  // {<derived-type>} sub-clause 2:
  // e.g. if inArgN would type-resolve to struct
  const ns1::ns2::furthertype_t& inArgN,
  const ara::diag::MetaInfo& metaInfo,
  ara::diag::CancellationHandler cancellationHandler
) noexcept = 0;
28.2.2.1.4 Stop
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:virtual ara::core::Future< routine_interface_hierarchical_namespace_list::routine_interface_name_x::Stop::routine_interface_name_10StopOutput > Stop (routine_interface_hierarchical_namespace_list::routine_interface_name_x::Stop::routine_interface_stop_in_arg_derived_type_0toN routine_interface_hierarchical_namespace_list::routine_interface_name_x::Stop::routine_interface_stop_in_arg_symbol_0toN, const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):routine_interface_hierarchical_namespace_list::routine_interface_name_x::Stop::routine_interface_stop_in_arg_symbol_0toNThe symbol name of method ClientServerOperation.argument[0..N] in the ordered list of ClientServerOperation arguments, with ClientServerOperation.ArgumentDataPrototype.direction == ArgumentDirectionEnum.in given by ClientServerOperation.ArgumentDataPrototype[0..N].Referrable.shortName
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< routine_interface_hierarchical_namespace_list::routine_interface_name_x::Stop::routine_interface_name_10StopOutput >• If successful: an ara::core::Future containing an routineinterfacehierarchicalnamespacelist::routineinterfacenamex::routineinterfacename9StopOutput object as per SWS_DM_00582
• If unsuccessful: an ara::core::Future containing a corresponding ara::diag::DiagUdsNrcErrc or ApApplicationError.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:Please use an applicable NRC, as defined in ISO 14229-1, using ara::diag::DiagUdsNrcErrc.
Description:Provision of a Stop RoutineControl (DiagnosticRoutineInterface in the role DiagnosticRoutineInterface.stop).
Example:// Example:
virtual ara::core::Future<SomeRoutineInterfaceStopOutput> Stop(
  // {<derived-type>} sub-clause 1:
  std::int8_t inArg0,
  // {<derived-type>} sub-clause 1:
  // e.g. if inArg1 would type-resolve to std::uint64_t
  ns1::ns2::sometype_t inArg1,
  // {<derived-type>} sub-clause 2:
  // e.g. if inArg2 would type-resolve to ara::core::map
  const ns1::ns2::anothertype_t& inArg2,
  // {<derived-type>} sub-clause 2:
  // e.g. if inArgN would type-resolve to struct
  const ns1::ns2::furthertype_t& inArgN,
  const ara::diag::MetaInfo& metaInfo,
  ara::diag::CancellationHandler cancellationHandler
) noexcept = 0;
28.2.2.1.5 StopOffer
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM
28.2.2.1.6 operator=(routine_interface_name_5&&)
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:routine_interface_hierarchical_namespace_list::routine_interface_name_x::operator=::routine_interface_name_5 & operator= (routine_interface_hierarchical_namespace_list::routine_interface_name_x::operator=::routine_interface_name_5 &&other)=delete;
Description:Move assignment constructor
28.2.2.1.7 operator=(const routine_interface_name_3&)
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:routine_interface_hierarchical_namespace_list::routine_interface_name_x::operator=::routine_interface_name_3 & operator= (const routine_interface_hierarchical_namespace_list::routine_interface_name_x::operator=::routine_interface_name_3 &other)=delete;
Description:Copy assignment constructor deletion
28.2.2.1.8 {<routine-interface-name-1>}
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_1::routine_interface_name_1 (ara::core::InstanceSpecifier instanceSpec, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):instanceSpecThe specifier of a specific instance of a service.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticRoutineInterface needs to be referenced by a DiagnosticServiceGenericMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Construct a routineinterfacehierarchicalnamespacelist::routineinterfacenamex from an ara::core::InstanceSpecifier
28.2.2.1.9 {<routine-interface-name-2>}
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_2::routine_interface_name_2 (const routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_2::routine_interface_name_2 &other)=delete;
Description:Copy constructor deletion
28.2.2.1.10 {<routine-interface-name-4>}
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_4::routine_interface_name_4 (routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_4::routine_interface_name_4 &&other)=delete;
Description:Move constructor
28.2.2.1.11 ~{<routine-interface-name-6>}
Kind:function
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Syntax:virtual ~routine_interface_hierarchical_namespace_list::routine_interface_name_x::~routine_interface_name_6::routine_interface_name_6 () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destruction of a routineinterfacehierarchicalnamespacelist::routineinterfacenamex

28.3 Struct: {<routine-interface-name-11>}RequestResultOutput

Kind:struct
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Forwarding header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower_fwd.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Symbol:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_11RequestResultOutput::routine_interface_name_11RequestResultOutput
Syntax:struct routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_11RequestResultOutput::routine_interface_name_11RequestResultOutput {...};
Description:Structure wrapping the out arguments for a SWS_DM_00593.routineinterfacehierarchicalnamespacelist::routineinterfacenamex::RequestResult

28.4 Struct: {<routine-interface-name-6>}StartOutput

Kind:struct
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Forwarding header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower_fwd.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Symbol:routine_interface_hierarchical_namespace_list::routine_interface_name_x::~routine_interface_name_6::routine_interface_name_6StartOutput
Syntax:struct routine_interface_hierarchical_namespace_list::routine_interface_name_x::~routine_interface_name_6::routine_interface_name_6StartOutput {...};
Description:Structure wrapping the out arguments for a SWS_DM_00591.routineinterfacehierarchicalnamespacelist::routineinterfacenamex::Start

28.5 Struct: {<routine-interface-name-9>}StopOutput

Kind:struct
Header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower.h"
Forwarding header file:#include "routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_directory_path/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower/routine_interface_directory_path_routine_interface_shortname_lower.h::routine_interface_shortname_lower_fwd.h"
Scope:routineinterfacehierarchicalnamespacelist::routineinterfacenamex
Symbol:routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_9StopOutput::routine_interface_name_9StopOutput
Syntax:struct routine_interface_hierarchical_namespace_list::routine_interface_name_x::routine_interface_name_9StopOutput::routine_interface_name_9StopOutput {...};
Description:Structure wrapping the out arguments for a SWS_DM_00592.routineinterfacehierarchicalnamespacelist::routineinterfacenamex::Stop

29 Header: ara/diag/doip_activationline.h

29.1 Class: DoIPActivationLine

Kind:class
Port Interfaces:DiagnosticDoIPActivationLineInterface
Header file:#include "ara/diag/doip_activationline.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DoIPActivationLine
Syntax:class DoIPActivationLine {...};
Description:DiagnosticDoIPActivationLineInterface.

29.1.1 Public Member Functions

29.1.1.1 Special Member Functions
29.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:DoIPActivationLine (DoIPActivationLine &&) noexcept=delete;
Description:Move constructor of DoIPActivationLine.
29.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:ara::diag::DoIPActivationLine & operator= (ara::diag::DoIPActivationLine &&)=delete;
Description:Move assignment operator of DoIPActivationLine.
29.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:virtual ~DoIPActivationLine () noexcept=default;
Exception Safety:exception safe
Description:Destructor of DoIPActivationLine.
29.1.1.2 Constructors
29.1.1.2.1 DoIPActivationLine(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:explicit DoIPActivationLine (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticDoIPActivationLineInterface
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticDoIpActivationLinePortMapping needs to be typed by a DiagnosticDoIPActivationLineInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of DoIPActivationLine.
29.1.1.2.2 DoIPActivationLine(DoIPActivationLine&)
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:DoIPActivationLine (DoIPActivationLine &)=delete;
Description:DoIPActivationLine shall be a single not copy-able instance.
29.1.1.3 Member Functions
29.1.1.3.1 GetActivationLineState
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:virtual ara::core::Future< bool > GetActivationLineState () noexcept=0;
Return value:ara::core::Future< bool >TRUE in case the activation line is active, else FALSE.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:This function does not specify any standardized errors.
Description:Called to get the current activation line state.
29.1.1.3.2 GetNetworkInterfaceId
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:virtual ara::core::Future< std::uint8_t > GetNetworkInterfaceId () noexcept=0;
Return value:ara::core::Future< std::uint8_t >network interface id for which this activation line is responsible.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:This function does not specify any standardized errors.
Description:Called to get the network interface Id (see DoIpNetworkConfiguration.networkInterfaceId) for which this DoIPActivationLine instance is responsible.
Notes:If the reported DoIpNetworkConfiguration.networkInterfaceId belongs to a DoIpNetworkConfiguration with property DoIpNetworkConfiguration.isActivationLineDependent = 'FALSE', this is an error!
29.1.1.3.3 Offer
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to listen to activation line state changes.
29.1.1.3.4 StopOffer
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the provision of activation line state to DM.
29.1.1.3.5 UpdateActivationLineState
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:void UpdateActivationLineState (bool activation_line_state);
Parameters (in):activation_line_stateTRUE in case the activation line is active, else FALSE
Return value:None
Exception Safety:not exception safe
Thread Safety:not thread-safe
Description:Called to update current activation line state.
29.1.1.3.6 operator=
Kind:function
Header file:#include "ara/diag/doip_activationline.h"
Scope:ara::diag::DoIPActivationLine
Syntax:ara::diag::DoIPActivationLine & operator= (ara::diag::DoIPActivationLine &)=delete;
Description:DoIPActivationLine shall be a single not assignable instance.

30 Header: ara/diag/doip_entity_identification.h

30.1 Class: DoIPEntityIdentification

Kind:class
Port Interfaces:DiagnosticDoIPEntityIdentificationInterface
Header file:#include "ara/diag/doip_entity_identification.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DoIPEntityIdentification
Syntax:class DoIPEntityIdentification {...};
Description:DoIPEntityIdentification class to obtain the EID if required.

30.1.1 Public Member Functions

30.1.1.1 Special Member Functions
30.1.1.1.1 Destructor
Kind:function
Header file:#include "ara/diag/doip_entity_identification.h"
Scope:ara::diag::DoIPEntityIdentification
Syntax:virtual ~DoIPEntityIdentification () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of DoIPEntityIdentification.
30.1.1.2 Constructors
30.1.1.2.1 DoIPEntityIdentification
Kind:function
Header file:#include "ara/diag/doip_entity_identification.h"
Scope:ara::diag::DoIPEntityIdentification
Syntax:explicit DoIPEntityIdentification (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticDoIPEntityIdentificationInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent)..
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticDoIpEntityIdentificationPortMapping needs to be typed by a DiagnosticDoIPEntityIdentificationInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of DoIPEntityIdentification.
30.1.1.3 Member Functions
30.1.1.3.1 GetEntityId
Kind:function
Header file:#include "ara/diag/doip_entity_identification.h"
Scope:ara::diag::DoIPEntityIdentification
Syntax:virtual ara::core::Future< ara::diag::DoIPEntityIdentification::EntityId > GetEntityId () noexcept=0;
Return value:ara::core::Future< EntityId >Entity identification
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:This function does not specify any standardized errors.
Description:Called to get the EID for the DoIP protocol.
30.1.1.3.2 Offer
Kind:function
Header file:#include "ara/diag/doip_entity_identification.h"
Scope:ara::diag::DoIPEntityIdentification
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
30.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/doip_entity_identification.h"
Scope:ara::diag::DoIPEntityIdentification
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.

30.2 Struct: EntityId

Kind:struct
Header file:#include "ara/diag/doip_entity_identification.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::DoIPEntityIdentification
Symbol:EntityId
Syntax:struct EntityId {...};
Description:Entity Identification value ( EID ) as defined in ISO 13400-2 ISO-13400-2.

30.2.1 Public Member Variables

30.2.1.1 entityIdentification
Kind:variable
Header file:#include "ara/diag/doip_entity_identification.h"
Scope:ara::diag::DoIPEntityIdentification::EntityId
Symbol:entityIdentification
Type:ara::core::Array< std::uint8_t, 6 >
Syntax:ara::core::Array<std::uint8_t, 6> entityIdentification;
Description:Entity Identification value.

31 Header: ara/diag/doip_group_identification.h

31.1 Class: DoIPGroupIdentification

Kind:class
Port Interfaces:DiagnosticDoIPGroupIdentificationInterface
Header file:#include "ara/diag/doip_group_identification.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DoIPGroupIdentification
Syntax:class DoIPGroupIdentification {...};
Description:DoIPGroupIdentificationInterface.

31.1.1 Public Member Functions

31.1.1.1 Special Member Functions
31.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:DoIPGroupIdentification (DoIPGroupIdentification &&) noexcept=delete;
Description:Move constructor of DoIPGroupIdentification.
31.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:ara::diag::DoIPGroupIdentification & operator= (ara::diag::DoIPGroupIdentification &&)=delete;
Description:Move assignment operator of DoIPGroupIdentification.
31.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:virtual ~DoIPGroupIdentification () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of DoIPGroupIdentification.
31.1.1.2 Constructors
31.1.1.2.1 DoIPGroupIdentification(const ara::core::InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:explicit DoIPGroupIdentification (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticDoIPGroupIdentificationInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticDoIpGroupIdentificationPortMapping needs to be typed by a DiagnosticDoIPGroupIdentificationInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of DoIPGroupIdentification.
31.1.1.2.2 DoIPGroupIdentification(DoIPGroupIdentification&)
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:DoIPGroupIdentification (DoIPGroupIdentification &)=delete;
Description:DoIPGroupIdentification shall be a single not copy-able instance.
31.1.1.3 Member Functions
31.1.1.3.1 GetGidStatus
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:virtual ara::core::Future< ara::diag::DoIPGroupIdentification::GidStatus > GetGidStatus () noexcept=0;
Return value:ara::core::Future< GidStatus >group identification and state
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:This function does not specify any standardized errors.
Description:Called to get the current GID state for the DoIP protocol.
31.1.1.3.2 Offer
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
31.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM to this handler.
31.1.1.3.4 operator=
Kind:function
Header file:#include "ara/diag/doip_group_identification.h"
Scope:ara::diag::DoIPGroupIdentification
Syntax:ara::diag::DoIPGroupIdentification & operator= (ara::diag::DoIPGroupIdentification &)=delete;
Description:DoIPGroupIdentification shall be a single not assignable instance.

31.2 Struct: GidStatus

Kind:struct
Header file:#include "ara/diag/doip_group_identification.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::DoIPGroupIdentification
Symbol:GidStatus
Syntax:struct GidStatus {...};
Description:Response data of positive response message.

32 Header: ara/diag/doip_power_mode.h

32.1 Non-Member Types

32.1.1 Enumeration: PowerModeType

Kind:enumeration
Header file:#include "ara/diag/doip_power_mode.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:PowerModeType
Underlying type:std::uint8_t
Syntax:enum class PowerModeType : std::uint8_t {...};
Values:kNotReady= 0x00
not all ECUs accessible via DoIP can communicate
kReady= 0x01
all ECUs accessible via DoIP can communicate
kNotSupported= 0x02
the Diagnostic Information Power Mode Information Request message is not supported
Description:PowerMode as defined in ISO 13400-2 ISO-13400-2.

32.2 Class: DoIPPowerMode

Kind:class
Port Interfaces:DiagnosticDoIPPowerModeInterface
Header file:#include "ara/diag/doip_power_mode.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DoIPPowerMode
Syntax:class DoIPPowerMode {...};
Description:DiagnosticDoIPPowerModeInterface.

32.2.1 Public Member Functions

32.2.1.1 Special Member Functions
32.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:DoIPPowerMode (DoIPPowerMode &&) noexcept=delete;
Description:Move constructor of DoIPPowerMode.
32.2.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:ara::diag::DoIPPowerMode & operator= (ara::diag::DoIPPowerMode &&)=delete;
Description:Move assignment operator of DoIPPowerMode.
32.2.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:virtual ~DoIPPowerMode () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of DoIPPowerMode .
32.2.1.2 Constructors
32.2.1.2.1 DoIPPowerMode(const ara::core::InstanceSpecifier&, ConcurrencyType)
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:explicit DoIPPowerMode (const ara::core::InstanceSpecifier &specifier, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticDoIPPowerModeInterface
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent)..
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticDoIpPowerModePortMapping needs to be typed by a DiagnosticDoIPPowerModeInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of DoIPPowerMode.
32.2.1.2.2 DoIPPowerMode(DoIPPowerMode&)
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:DoIPPowerMode (DoIPPowerMode &)=delete;
Description:DoIPPowerMode shall be a single not copiable instance.
32.2.1.3 Member Functions
32.2.1.3.1 GetDoIPPowerMode
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:virtual ara::core::Future< ara::diag::PowerModeType > GetDoIPPowerMode () noexcept=0;
Return value:ara::core::Future< PowerModeType >current diagnostic power mode
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:This function does not specify any standardized errors.
Description:Called to get the current Power Mode for the DoIP protocol.
32.2.1.3.2 Offer
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
32.2.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
32.2.1.3.4 operator=
Kind:function
Header file:#include "ara/diag/doip_power_mode.h"
Scope:ara::diag::DoIPPowerMode
Syntax:ara::diag::DoIPPowerMode & operator= (ara::diag::DoIPPowerMode &)=delete;
Description:DoIPPowerMode shall be a single not assignable instance.

33 Header: ara/diag/doip_trigger_vehicle_announcement.h

33.1 Class: DoIPTriggerVehicleAnnouncement

Kind:class
Port Interfaces:DiagnosticDoIPTriggerVehicleAnnouncementInterface
Header file:#include "ara/diag/doip_trigger_vehicle_announcement.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DoIPTriggerVehicleAnnouncement
Syntax:class DoIPTriggerVehicleAnnouncement {...};
Description:DiagnosticDoIPTriggerVehicleAnnouncement.

33.1.1 Public Member Functions

33.1.1.1 Member Functions
33.1.1.1.1 GetDoIPTriggerVehicleAnnouncement
Kind:function
Header file:#include "ara/diag/doip_trigger_vehicle_announcement.h"
Scope:ara::diag::DoIPTriggerVehicleAnnouncement
Syntax:static ara::core::Result< std::reference_wrapper< ara::diag::DoIPTriggerVehicleAnnouncement > > GetDoIPTriggerVehicleAnnouncement () noexcept;
Return value:ara::core::Result< std::reference_wrapper< DoIPTriggerVehicleAnnouncement > >DoIPTriggerVehicleAnnouncement object
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Get DoIPTriggerVehicleAnnouncement interface from DM.
33.1.1.1.2 TriggerVehicleAnnouncement
Kind:function
Header file:#include "ara/diag/doip_trigger_vehicle_announcement.h"
Scope:ara::diag::DoIPTriggerVehicleAnnouncement
Syntax:virtual ara::core::Result< void > TriggerVehicleAnnouncement (std::uint8_t networkInterfaceId) noexcept=0;
Parameters (in):networkInterfaceIdnetwork interface id on which a vehicle announcement shall be sent.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Called by application to trigger DM sending out vehicle announcements on the given network interface Id.
Notes:If the reported DoIPNetworkConfiguration.networkInterfaceId belongs to a DoIPNetworkConfiguration with property isActivationLineDependent = TRUE, this is an error as on those interfaces sending of announcements happens automatically after activation line going up/IP address assignment.

33.1.2 Private Member Functions

33.1.2.1 Special Member Functions
33.1.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/diag/doip_trigger_vehicle_announcement.h"
Scope:ara::diag::DoIPTriggerVehicleAnnouncement
Syntax:DoIPTriggerVehicleAnnouncement ()=delete;
Description:Ctor is vendor-specific.
Visibility:private
33.1.2.1.2 Destructor
Kind:function
Header file:#include "ara/diag/doip_trigger_vehicle_announcement.h"
Scope:ara::diag::DoIPTriggerVehicleAnnouncement
Syntax:~DoIPTriggerVehicleAnnouncement () noexcept=delete;
Description:Dtor is vendor-specific.
Visibility:private

34 Header: ara/diag/condition.h

34.1 Non-Member Types

34.1.1 Enumeration: ConditionType

Kind:enumeration
Header file:#include "ara/diag/condition.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ConditionType
Underlying type:std::uint8_t
Syntax:enum class ConditionType : std::uint8_t {...};
Values:kConditionFalse= 0x00
condition is set to false
kConditionTrue= 0x01
condition is set to true
Description:Type for Condition status.

34.2 Class: Condition

Kind:class
Port Interfaces:DiagnosticConditionInterface
Header file:#include "ara/diag/condition.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:Condition
Syntax:class Condition final {...};
Description:DiagnosticConditionInterface.

34.2.1 Public Member Functions

34.2.1.1 Special Member Functions
34.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/condition.h"
Scope:ara::diag::Condition
Syntax:Condition (Condition &&) noexcept=delete;
Description:Move constructor of Condition.
34.2.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/condition.h"
Scope:ara::diag::Condition
Syntax:ara::diag::Condition & operator= (ara::diag::Condition &&)=delete;
Description:Move assignment operator of Condition.
34.2.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/condition.h"
Scope:ara::diag::Condition
Syntax:~Condition () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class Condition .
34.2.1.2 Constructors
34.2.1.2.1 Condition(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/condition.h"
Scope:ara::diag::Condition
Syntax:explicit Condition (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticConditionInterface.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticConditionInterface needs either to be referenced by a DiagnosticEnableConditionPortMapping or a DiagnosticClearConditionPortMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of Condition Class.
34.2.1.2.2 Condition(Condition&)
Kind:function
Header file:#include "ara/diag/condition.h"
Scope:ara::diag::Condition
Syntax:Condition (Condition &)=delete;
Description:Condition shall be a single not copy-able instance.
34.2.1.3 Member Functions
34.2.1.3.1 GetCondition
Kind:function
Header file:#include "ara/diag/condition.h"
Scope:ara::diag::Condition
Syntax:ara::core::Future< ara::diag::ConditionType > GetCondition () noexcept;
Return value:ara::core::Future< ConditionType >the current condition
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Get current condition.
34.2.1.3.2 SetCondition
Kind:function
Header file:#include "ara/diag/condition.h"
Scope:ara::diag::Condition
Syntax:ara::core::Result< void > SetCondition (ara::diag::ConditionType condition) noexcept;
Parameters (in):conditioncurrent condition
Return value:ara::core::Result< void >Returns void.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Set condition.
34.2.1.3.3 operator=
Kind:function
Header file:#include "ara/diag/condition.h"
Scope:ara::diag::Condition
Syntax:ara::diag::Condition & operator= (ara::diag::Condition &)=delete;
Description:Condition shall be a single not assignable instance.

35 Header: ara/diag/operation_cycle.h

35.1 Class: OperationCycle

Kind:class
Port Interfaces:DiagnosticOperationCycleInterface
Header file:#include "ara/diag/operation_cycle.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:OperationCycle
Syntax:class OperationCycle final {...};
Description:DiagnosticOperationCycleInterface provides functionality for handling of operation cycles.

35.1.1 Public Member Types

35.1.1.1 Type Alias: OperationCycleSetNotifier
Kind:type alias
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Symbol:OperationCycleSetNotifier
Syntax:using OperationCycleSetNotifier = std::function<void(void)>;
Thread Safety:not thread-safe
Description:Notifier function which is called if the operation cycle is changed. .

35.1.2 Public Member Functions

35.1.2.1 Special Member Functions
35.1.2.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Syntax:OperationCycle (OperationCycle &&) noexcept=delete;
Description:Move constructor of OperationCycle.
35.1.2.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Syntax:ara::diag::OperationCycle & operator= (ara::diag::OperationCycle &&)=delete;
Description:Move assignment operator of OperationCycle.
35.1.2.1.3 Destructor
Kind:function
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Syntax:~OperationCycle () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of DiagnosticOperationCycleInterface .
35.1.2.2 Constructors
35.1.2.2.1 OperationCycle(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Syntax:explicit OperationCycle (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticOperationCycleInterface.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticOperationCyclePortMapping needs to be typed by a DiagnosticOperationCycleInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor for DiagnosticOperationCycleInterface.
35.1.2.2.2 OperationCycle(OperationCycle&)
Kind:function
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Syntax:OperationCycle (OperationCycle &)=delete;
Description:OperationCycle shall be a single not copy-able instance.
35.1.2.3 Member Functions
35.1.2.3.1 RestartOperationCycle
Kind:function
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Syntax:ara::core::Result< void > RestartOperationCycle () noexcept;
Return value:ara::core::Result< void >Returns void.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Trigger to restart the Operation Cycle.
35.1.2.3.2 SetNotifier
Kind:function
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Syntax:ara::core::Result< void > SetNotifier (ara::diag::OperationCycle::OperationCycleSetNotifier notifier) noexcept;
Parameters (in):notifiernotifier function
Return value:ara::core::Result< void >Returns void.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Registering a notifier function which is called if the operation cycle is changed. A consecutive call of this method will overwrite the previous registered notifier.
35.1.2.3.3 operator=
Kind:function
Header file:#include "ara/diag/operation_cycle.h"
Scope:ara::diag::OperationCycle
Syntax:ara::diag::OperationCycle & operator= (ara::diag::OperationCycle &)=delete;
Description:OperationCycle shall be a single not assignable instance.

36 Header: ara/diag/monitor.h

36.1 Class: Monitor

Kind:class
Port Interfaces:DiagnosticMonitorInterface
Header file:#include "ara/diag/monitor.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:Monitor
Syntax:class Monitor final {...};
Description:Class to implement operations on diagnostic Monitor interface.

36.1.1 Public Member Functions

36.1.1.1 Special Member Functions
36.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:Monitor (Monitor &&) noexcept=delete;
Description:Move constructor of Monitor.
36.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:ara::diag::Monitor & operator= (ara::diag::Monitor &&)=delete;
Description:Move assignment operator of Monitor.
36.1.1.2 Constructors
36.1.1.2.1 Monitor(const ara::core::InstanceSpecifier&, InitMonitorNotifier)
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:Monitor (const ara::core::InstanceSpecifier &specifier, ara::diag::InitMonitorNotifier initMonitor) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitorPossibility to register an InitMonitor callback
Exception Safety:exception safe
Thread Safety:not thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
InvalidDebouncingAlgorithmViolationMismatching Debounce Algorithm in DEXT i.e DiagnosticEventToDebounceAlgorithmMapping shall be mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Description:Monitor constructor for Monitors without debouncing.
36.1.1.2.2 Monitor(const ara::core::InstanceSpecifier&, InitMonitorNotifier, CounterBased)
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:Monitor (const ara::core::InstanceSpecifier &specifier, ara::diag::InitMonitorNotifier initMonitor, ara::diag::CounterBased defaultValues) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for CounterBased debouncing
Exception Safety:exception safe
Thread Safety:not thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
InvalidDebouncingAlgorithmViolationMismatching Debounce Algorithm in DEXT i.e DiagnosticEventToDebounceAlgorithmMapping shall be mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceCounterBased.
Description:Monitor constructor for Monitors with counter-based debouncing.
36.1.1.2.3 Monitor(const ara::core::InstanceSpecifier&, InitMonitorNotifier, TimeBased)
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:Monitor (const ara::core::InstanceSpecifier &specifier, ara::diag::InitMonitorNotifier initMonitor, ara::diag::TimeBased defaultValues) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for TimeBased debouncing
Exception Safety:exception safe
Thread Safety:not thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
InvalidDebouncingAlgorithmViolationMismatching Debounce Algorithm in DEXT i.e DiagnosticEventToDebounceAlgorithmMapping shall be mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceTimeBased.
Description:Monitor constructor for Monitors with time-based debouncing.
36.1.1.2.4 Monitor(Monitor&)
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:Monitor (Monitor &)=delete;
Description:Monitor shall be a single not copy-able instance.
36.1.1.2.5 Monitor(const ara::core::InstanceSpecifier&, InitMonitorNotifier, std::function<std::int8_t(void)>)
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:Monitor (const ara::core::InstanceSpecifier &specifier, ara::diag::InitMonitorNotifier initMonitor, std::function< std::int8_t()> getFaultDetectionCounter) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitorPossibility to register an InitMonitor callback
getFaultDetectionCounterPossibility to register a function to get the current FDC for this event.
Exception Safety:exception safe
Thread Safety:not thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
InvalidDebouncingAlgorithmViolationMismatching Debounce Algorithm in DEXT i.e DiagnosticEventToDebounceAlgorithmMapping shall be mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Description:Monitor constructor for Monitors with Monitor-internal debouncing. using ara::diag::CounterBased; using ara::diag::TimeBased;
36.1.1.3 Member Functions
36.1.1.3.1 Offer
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:With the Offer the application states that it is ready to receive and process initMonitor callouts.
36.1.1.3.2 ReportMonitorAction
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:void ReportMonitorAction (ara::diag::MonitorAction action) noexcept;
Parameters (in):actionContains either the last (un-)qualified test result of the diagnostic monitor or commands to control the debouncing or to force a prestorage.
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Violations:UnexpectedMonitorActionHandlingViolationSWS_DM_00543.ara::diag::Monitor::ReportMonitorAction is called with a parameter SWS_DM_00543.ara::diag::Monitor::ReportMonitorAction.action value that is not supported by the used debouncing method.
Description:Function to report the status information being relevant for error monitoring paths.
36.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
36.1.1.3.4 operator=
Kind:function
Header file:#include "ara/diag/monitor.h"
Scope:ara::diag::Monitor
Syntax:ara::diag::Monitor & operator= (ara::diag::Monitor &)=delete;
Description:Monitor shall be a single not assignable instance.

37 Header: ara/diag/monitor_types.h

37.1 Non-Member Types

37.1.1 Type Alias: InitMonitorNotifier

Kind:type alias
Header file:#include "ara/diag/monitor_types.h"
Scope:namespace ara::diag
Symbol:InitMonitorNotifier
Syntax:using InitMonitorNotifier = std::function<void(InitMonitorReason)>;
Thread Safety:not thread-safe
Description:Notifier function which is called if the monitor needs to be re-initialized.

37.1.2 Enumeration: InitMonitorReason

Kind:enumeration
Header file:#include "ara/diag/monitor_types.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:InitMonitorReason
Underlying type:std::uint32_t
Syntax:enum class InitMonitorReason : std::uint32_t {...};
Values:kClear= 0x00
Event was cleared and all internal values and states are reset.
kRestart= 0x01
Operation cycle of the event was (re-)started.
kReenabled= 0x02
Enable conditions are fulfilled and control DTC setting is set to on
kDisabled= 0x03
Enable conditions no longer fulfilled, or Control DTC setting is set to off
Description:Represents the status information reported to AAs why the monitor may be re-initalized.

37.1.3 Enumeration: MonitorAction

Kind:enumeration
Header file:#include "ara/diag/monitor_types.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:MonitorAction
Underlying type:std::uint32_t
Syntax:enum class MonitorAction : std::uint32_t {...};
Values:kPassed= 0x00
Monitor reports qualified test result passed.
kFailed= 0x01
Monitor reports qualified test result failed.
kPrepassed= 0x02
Monitor reports unqualified test result pre-passed.
kPrefailed= 0x03
Monitor reports unqualified test result pre-failed.
kFdcThresholdReached= 0x04
Monitor triggers the storage of ExtendedDataRecords and Freeze Frames (if the triggering condition is connected to this threshold).
kResetTestFailed= 0x05
Reset TestFailed Bit without any other side effects like readiness
kFreezeDebouncing= 0x06
Freeze the internal debounce timer.
kResetDebouncing= 0x07
Reset the internal debounce counter/timer.
Description:Represents the status information reported by AAs being relevant for error monitoring.

37.2 Struct: CounterBased

Kind:struct
Header file:#include "ara/diag/monitor_types.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:CounterBased
Syntax:struct CounterBased {...};
Description:Represents the parameters for counter-based debouncing.

37.2.1 Public Member Variables

37.2.1.1 failedJumpValue
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::CounterBased
Symbol:failedJumpValue
Type:std::int16_t
Syntax:std::int16_t failedJumpValue;
Description:failed to jump value
37.2.1.2 failedStepsize
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::CounterBased
Symbol:failedStepsize
Type:std::uint16_t
Syntax:std::uint16_t failedStepsize;
Description:Stepsize per pre-failed report.
37.2.1.3 failedThreshold
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::CounterBased
Symbol:failedThreshold
Type:std::int16_t
Syntax:std::int16_t failedThreshold;
Description:Threshold until qualified failed.
37.2.1.4 passedJumpValue
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::CounterBased
Symbol:passedJumpValue
Type:std::int16_t
Syntax:std::int16_t passedJumpValue;
Description:passed to jump value
37.2.1.5 passedStepsize
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::CounterBased
Symbol:passedStepsize
Type:std::uint16_t
Syntax:std::uint16_t passedStepsize;
Description:Stepsize per pre-passed report.
37.2.1.6 passedThreshold
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::CounterBased
Symbol:passedThreshold
Type:std::int16_t
Syntax:std::int16_t passedThreshold;
Description:Threshold until qualified passed.
37.2.1.7 useJumpToFailed
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::CounterBased
Symbol:useJumpToFailed
Type:bool
Syntax:bool useJumpToFailed;
Description:is jump supported
37.2.1.8 useJumpToPassed
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::CounterBased
Symbol:useJumpToPassed
Type:bool
Syntax:bool useJumpToPassed;
Description:is jump supported

37.3 Struct: TimeBased

Kind:struct
Header file:#include "ara/diag/monitor_types.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:TimeBased
Syntax:struct TimeBased {...};
Description:Represents the parameters for time-based debouncing.

37.3.1 Public Member Variables

37.3.1.1 failedMs
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::TimeBased
Symbol:failedMs
Type:std::uint32_t
Syntax:std::uint32_t failedMs;
Description:time until failed in (ms)
37.3.1.2 passedMs
Kind:variable
Header file:#include "ara/diag/monitor_types.h"
Scope:ara::diag::TimeBased
Symbol:passedMs
Type:std::uint32_t
Syntax:std::uint32_t passedMs;
Description:time until passed in (ms)

38 Header: ara/diag/multiple_condition.h

38.1 Non-Member Types

38.1.1 Type Alias: ConditionHandleType

Kind:type alias
Header file:#include "ara/diag/multiple_condition.h"
Scope:namespace ara::diag
Symbol:ConditionHandleType
Syntax:using ConditionHandleType = std::uint8_t;
Description:Type to identify a condition.

38.2 Class: MultipleCondition

Kind:class
Port Interfaces:DiagnosticMultipleConditionInterface
Header file:#include "ara/diag/multiple_condition.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:MultipleCondition
Syntax:class MultipleCondition final {...};
Description:Class for multiple condition operations.

38.2.1 Public Member Functions

38.2.1.1 Special Member Functions
38.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/multiple_condition.h"
Scope:ara::diag::MultipleCondition
Syntax:MultipleCondition (MultipleCondition &&) noexcept=delete;
Description:Move constructor of MultipleCondition.
38.2.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/multiple_condition.h"
Scope:ara::diag::MultipleCondition
Syntax:ara::diag::MultipleCondition & operator= (ara::diag::MultipleCondition &&)=delete;
Description:Move assignment operator of MultipleCondition.
38.2.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/multiple_condition.h"
Scope:ara::diag::MultipleCondition
Syntax:~MultipleCondition () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class Condition .
38.2.1.2 Constructors
38.2.1.2.1 MultipleCondition(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/multiple_condition.h"
Scope:ara::diag::MultipleCondition
Syntax:explicit MultipleCondition (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticMultipleConditionInterface
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticMultipleConditionPortMapping needs to be typed by a DiagnosticMultipleConditionInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor of MultipleCondition Class.
38.2.1.2.2 MultipleCondition(MultipleCondition&)
Kind:function
Header file:#include "ara/diag/multiple_condition.h"
Scope:ara::diag::MultipleCondition
Syntax:MultipleCondition (MultipleCondition &)=delete;
Description:Copy constructor of MultipleCondition.
38.2.1.3 Member Functions
38.2.1.3.1 GetCondition
Kind:function
Header file:#include "ara/diag/multiple_condition.h"
Scope:ara::diag::MultipleCondition
Syntax:ara::core::Future< ara::diag::ConditionType > GetCondition (ara::diag::ConditionHandleType conditionHandle) noexcept;
Parameters (in):conditionHandleIdentifies the requested condition
Return value:ara::core::Future< ConditionType >the current condition
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Get condition state of the requested condition.
38.2.1.3.2 SetCondition
Kind:function
Header file:#include "ara/diag/multiple_condition.h"
Scope:ara::diag::MultipleCondition
Syntax:ara::core::Result< void > SetCondition (ara::diag::ConditionHandleType conditionHandle, ara::diag::ConditionType condition) noexcept;
Parameters (in):conditionHandleIdentifies the requested condition
conditioncurrent condition
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Set condition state of the requested condition.
38.2.1.3.3 operator=
Kind:function
Header file:#include "ara/diag/multiple_condition.h"
Scope:ara::diag::MultipleCondition
Syntax:ara::diag::MultipleCondition & operator= (ara::diag::MultipleCondition &)=delete;
Description:Copy assignment operator of MultipleCondition.

39 Header: ara/diag/multiple_event.h

39.1 Non-Member Types

39.1.1 Type Alias: EventHandleType

Kind:type alias
Header file:#include "ara/diag/multiple_event.h"
Scope:namespace ara::diag
Symbol:EventHandleType
Syntax:using EventHandleType = std::uint32_t;
Description:Type to identify an event.

39.2 Class: MultipleEvent

Kind:class
Port Interfaces:DiagnosticMultipleEventInterface
Header file:#include "ara/diag/multiple_event.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:MultipleEvent
Syntax:class MultipleEvent final {...};
Description:Class to implement operations on diagnostic Events with the multiple event interfaces.

39.2.1 Public Member Functions

39.2.1.1 Special Member Functions
39.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:MultipleEvent (MultipleEvent &&) noexcept=delete;
Description:Move constructor of MultipleEvent.
39.2.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:ara::diag::MultipleEvent & operator= (ara::diag::MultipleEvent &&)=delete;
Description:Move assignment operator of MultipleEvent.
39.2.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:~MultipleEvent () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class MultipleEvent.
39.2.1.2 Constructors
39.2.1.2.1 MultipleEvent(MultipleEvent&)
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:MultipleEvent (MultipleEvent &)=delete;
Description:Copy constructor of MultipleEvent.
39.2.1.2.2 MultipleEvent(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:explicit MultipleEvent (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticMultipleEventInterface.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticMultipleEventPortMapping needs to be typed by a DiagnosticMultipleEventInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor MultipleEvent class.
39.2.1.3 Member Functions
39.2.1.3.1 GetDTCNumber
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:ara::core::Future< std::uint32_t > GetDTCNumber (ara::diag::EventHandleType eventHandle, ara::diag::DTCFormatType dtcFormat) noexcept;
Parameters (in):eventHandleIdentifies the requested event
dtcFormatDefine ara::diag::DTCFormatType for the return value.
Return value:ara::core::Future< std::uint32_t >DTC number in respective ara::diag::DTCFormatType.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
DiagErrc::kNoSuchDTCrollback_semantics
No mapped DTC exits for the requested event.
DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Returns the DTC-ID related to requested event.
39.2.1.3.2 GetDebouncingStatus
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:ara::core::Future< ara::diag::DebouncingState > GetDebouncingStatus (ara::diag::EventHandleType eventHandle) noexcept;
Parameters (in):eventHandleIdentifies the requested event
Return value:ara::core::Future< DebouncingState >Return the current debouncing state of this event.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Get the current debouncing status of the requested event.
39.2.1.3.3 GetEventStatus
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:ara::core::Future< ara::diag::EventStatusByte > GetEventStatus (ara::diag::EventHandleType eventHandle) noexcept;
Parameters (in):eventHandleHandle of the Event
Return value:ara::core::Future< EventStatusByte >Returns the current diagnostic event status
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Returns the current status of the requested event.
39.2.1.3.4 GetFaultDetectionCounter
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:ara::core::Future< std::int8_t > GetFaultDetectionCounter (ara::diag::EventHandleType eventHandle) noexcept;
Parameters (in):eventHandleIdentifies the requested event
Return value:ara::core::Future< std::int8_t >Return the current FaultDetectionCounter value.
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Returns the current value of Fault Detection Counter of the selected event.
39.2.1.3.5 SetEventStatusChangedNotifier
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:ara::core::Result< void > SetEventStatusChangedNotifier (ara::diag::EventHandleType eventHandle, ara::diag::EventStatusByteNotifier notifier) noexcept;
Parameters (in):eventHandleIdentifies the requested event
notifierThe function to be called if a diagnostic event is changed.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Register a notifier function which is called if a diagnostic event is changed. A consecutive call of this method will overwrite the previous registered notifier.
39.2.1.3.6 operator=
Kind:function
Header file:#include "ara/diag/multiple_event.h"
Scope:ara::diag::MultipleEvent
Syntax:ara::diag::MultipleEvent & operator= (ara::diag::MultipleEvent &)=delete;
Description:Copy assignment operator of MultipleEvent.

40 Header: ara/diag/multiple_monitor.h

40.1 Non-Member Types

40.1.1 Type Alias: MonitorHandleType

Kind:type alias
Header file:#include "ara/diag/multiple_monitor.h"
Scope:namespace ara::diag
Symbol:MonitorHandleType
Syntax:using MonitorHandleType = std::uint32_t;
Description:Type to identify an monitor .

40.2 Class: MultipleMonitor

Kind:class
Port Interfaces:DiagnosticMultipleMonitorInterface
Header file:#include "ara/diag/multiple_monitor.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:MultipleMonitor
Syntax:class MultipleMonitor final {...};
Description:Class to implement monitor operations on the multiple monitor interfaces.

40.2.1 Public Member Functions

40.2.1.1 Special Member Functions
40.2.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:MultipleMonitor (MultipleMonitor &&) noexcept=delete;
Description:Move constructor of MultiMonitor.
40.2.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:ara::diag::MultipleMonitor & operator= (ara::diag::MultipleMonitor &&)=delete;
Description:Move assignment operator of MultiMonitor.
40.2.1.2 Constructors
40.2.1.2.1 MultipleMonitor(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:MultipleMonitor (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticMultipleMonitorInterface.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticMultipleEventPortMapping needs to be typed by a DiagnosticMultipleMonitorInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:MultipleMonitor constructor allows to report status of more than one monitor. using ara::diag::CounterBased; using ara::diag::TimeBased;
40.2.1.2.2 MultipleMonitor(MultipleMonitor&)
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:MultipleMonitor (MultipleMonitor &)=delete;
Description:Copy constructor of MultiMonitor.
40.2.1.3 Member Functions
40.2.1.3.1 ConfigureMonitor(MonitorHandleType, InitMonitorNotifier, CounterBased)
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:ara::core::Result< void > ConfigureMonitor (ara::diag::MonitorHandleType monitorHandle, ara::diag::InitMonitorNotifier initMonitor, ara::diag::CounterBased defaultValues) noexcept;
Parameters (in):monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for CounterBased debouncing
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Configures a monitor with counter-based debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.
40.2.1.3.2 ConfigureMonitor(MonitorHandleType, InitMonitorNotifier, TimeBased)
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:ara::core::Result< void > ConfigureMonitor (ara::diag::MonitorHandleType monitorHandle, ara::diag::InitMonitorNotifier initMonitor, ara::diag::TimeBased defaultValues) noexcept;
Parameters (in):monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for TimeBased debouncing
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Configures a monitor with time-based debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.
40.2.1.3.3 ConfigureMonitor(MonitorHandleType, InitMonitorNotifier)
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:ara::core::Result< void > ConfigureMonitor (ara::diag::MonitorHandleType monitorHandle, ara::diag::InitMonitorNotifier initMonitor) noexcept;
Parameters (in):monitorHandleHandle of the monitor
initMonitorPossibility to register an InitMonitor callback.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Configures a monitor without debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.
40.2.1.3.4 ConfigureMonitor(MonitorHandleType, InitMonitorNotifier, std::function<std::int8_t(void)>)
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:ara::core::Result< void > ConfigureMonitor (ara::diag::MonitorHandleType monitorHandle, ara::diag::InitMonitorNotifier initMonitor, std::function< std::int8_t()> getFaultDetectionCounter) noexcept;
Parameters (in):monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
getFaultDetectionCounterPossibility to register a function to get the current FDC for this event.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Configures a monitor with Monitor-internal debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.
40.2.1.3.5 Offer
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler.
40.2.1.3.6 ReportMonitorAction
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:void ReportMonitorAction (ara::diag::MonitorHandleType monitorHandle, ara::diag::MonitorAction action) noexcept;
Parameters (in):monitorHandleIdentifies the requested monitor
actionContains either the last (un-)qualified test result of the diagnostic monitor or commands to control the debouncing or to force a prestorage.
Return value:None
Exception Safety:exception safe
Thread Safety:conditionalwhether the function has to be implemented thread safe or non-thread safe is determined by the ara::diag::ConcurrencyType given in the constructor
Description:Function to report the status information being relevant for error monitoring paths. Calls with invalid monitorHandle are ignored.
40.2.1.3.7 StopOffer
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM.
40.2.1.3.8 operator=
Kind:function
Header file:#include "ara/diag/multiple_monitor.h"
Scope:ara::diag::MultipleMonitor
Syntax:ara::diag::MultipleMonitor & operator= (ara::diag::MultipleMonitor &)=delete;
Description:Copy assignment operator of MultiMonitor.

41 Header: ara/diag/indicator.h

41.1 Non-Member Types

41.1.1 Enumeration: IndicatorStatusType

Kind:enumeration
Header file:#include "ara/diag/indicator.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:IndicatorStatusType
Underlying type:std::uint8_t
Syntax:enum class IndicatorStatusType : std::uint8_t {...};
Values:kOff= 0x00
Indicator off mode {default}.
kOnDemand= 0x06
Indicator on-demand mode.
Description:Represents the state of an indicator.

41.2 Class: Indicator

Kind:class
Port Interfaces:DiagnosticIndicatorInterface
Header file:#include "ara/diag/indicator.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:Indicator
Syntax:class Indicator final {...};
Description:DiagnosticIndicatorInterface provides functionality for handling indicators.

41.2.1 Public Member Types

41.2.1.1 Type Alias: IndicatorStatusTypeNotifier
Kind:type alias
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Symbol:IndicatorStatusTypeNotifier
Syntax:using IndicatorStatusTypeNotifier = std::function<void(IndicatorStatusType)>;
Thread Safety:not thread-safe
Description:Register a notifier function which is called if the indicator state is updated.

41.2.2 Public Member Functions

41.2.2.1 Special Member Functions
41.2.2.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Syntax:Indicator (Indicator &&) noexcept=delete;
Description:Move constructor of Indicator.
41.2.2.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Syntax:ara::diag::Indicator & operator= (ara::diag::Indicator &&)=delete;
Description:Move assignment operator of Indicator.
41.2.2.1.3 Destructor
Kind:function
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Syntax:~Indicator () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of DiagnosticIndicatorInterface.
41.2.2.2 Constructors
41.2.2.2.1 Indicator(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Syntax:explicit Indicator (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticIndicatorInterface.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticIndicatorPortMapping needs to be typed by a DiagnosticIndicatorInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor for DiagnosticIndicatorInterface.
41.2.2.2.2 Indicator(Indicator&)
Kind:function
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Syntax:Indicator (Indicator &)=delete;
Description:Indicator shall be a single not copy-able instance.
41.2.2.3 Member Functions
41.2.2.3.1 GetIndicatorState
Kind:function
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Syntax:ara::core::Future< ara::diag::IndicatorStatusType > GetIndicatorState () noexcept;
Return value:ara::core::Future< IndicatorStatusType >Returns the current IndicatorState.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Get current IndicatorState.
41.2.2.3.2 SetNotifier
Kind:function
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Syntax:ara::core::Result< void > SetNotifier (ara::diag::Indicator::IndicatorStatusTypeNotifier notifier) noexcept;
Parameters (in):notifiernotifier function
Return value:ara::core::Result< void >Returns void.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Register a notifier function which is called if the indicator is updated. A consecutive call of this method will overwrite the previous registered notifier.
41.2.2.3.3 operator=
Kind:function
Header file:#include "ara/diag/indicator.h"
Scope:ara::diag::Indicator
Syntax:ara::diag::Indicator & operator= (ara::diag::Indicator &)=delete;
Description:Indicator shall be a single not assign-able instance.

42 Header: ara/diag/event.h

42.1 Class: Event

Kind:class
Port Interfaces:DiagnosticEventInterface
Header file:#include "ara/diag/event.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:Event
Syntax:class Event final {...};
Description:Class to implement operations on diagnostic Events.

42.1.1 Public Member Functions

42.1.1.1 Special Member Functions
42.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:Event (Event &&) noexcept=delete;
Description:Move constructor of Event.
42.1.1.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:ara::diag::Event & operator= (ara::diag::Event &&)=delete;
Description:Move assignment operator of Event.
42.1.1.1.3 Destructor
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:~Event () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class Event.
42.1.1.2 Constructors
42.1.1.2.1 Event(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:explicit Event (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticEventInterface.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticEventPortMapping needs to be typed by a DiagnosticEventInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor Event class.
42.1.1.2.2 Event(Event&)
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:Event (Event &)=delete;
Description:Event shall be a single not copy-able instance.
42.1.1.3 Member Functions
42.1.1.3.1 GetDTCNumber
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:ara::core::Future< std::uint32_t > GetDTCNumber (ara::diag::DTCFormatType dtcFormat) noexcept;
Parameters (in):dtcFormatDefine the ara::diag::DTCFormatType for the return value.
Return value:ara::core::Future< std::uint32_t >Return the DTC number in respective ara::diag::DTCFormatType.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kNoSuchDTCrollback_semantics
No mapped DTC exits for the requested event.
DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Returns the DTC number related to this event instance.
42.1.1.3.2 GetDebouncingStatus
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:ara::core::Future< ara::diag::DebouncingState > GetDebouncingStatus () noexcept;
Return value:ara::core::Future< DebouncingState >Return the current ara::diag::DebouncingState of this event.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Get the current debouncing status.
42.1.1.3.3 GetEventStatus
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:ara::core::Future< ara::diag::EventStatusByte > GetEventStatus () noexcept;
Return value:ara::core::Future< EventStatusByte >Return the current diagnostic event status
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Returns the current diagnostic event status.
42.1.1.3.4 GetFaultDetectionCounter
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:ara::core::Future< std::int8_t > GetFaultDetectionCounter () noexcept;
Return value:ara::core::Future< std::int8_t >Returns the current FaultDetectionCounter value.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Returns the current value of the Fault Detection Counter (FDC) of this event.
42.1.1.3.5 GetTestComplete
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:ara::core::Future< bool > GetTestComplete () noexcept;
Return value:ara::core::Future< bool >Return the current test_completed-state of this event. TRUE, if FDC = -128 or FDC = 127; FALSE in all other cases.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Get the status if the event has matured to test completed (corresponds to FDC = -128 or FDC = 127).
42.1.1.3.6 SetEventStatusChangedNotifier
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:ara::core::Result< void > SetEventStatusChangedNotifier (ara::diag::EventStatusByteNotifier notifier) noexcept;
Parameters (in):notifierThe function to be called if a diagnostic event is changed.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Register a notifier function which is called if a diagnostic event is changed. A consecutive call of this method will overwrite the previous registered notifier.
42.1.1.3.7 operator=
Kind:function
Header file:#include "ara/diag/event.h"
Scope:ara::diag::Event
Syntax:ara::diag::Event & operator= (ara::diag::Event &)=delete;
Description:Event shall be a single not assign-able instance.

43 Header: ara/diag/event_types.h

43.1 Non-Member Types

43.1.1 Enumeration: DTCFormatType

Kind:enumeration
Header file:#include "ara/diag/event_types.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DTCFormatType
Underlying type:std::uint8_t
Syntax:enum class DTCFormatType : std::uint8_t {...};
Values:kDTCFormatOBD= 0
SAE_J2012-DA_DTCFormat_00 as defined in ISO 15031-6 ISO-15031-6 specification.
kDTCFormatUDS= 1
ISO_14229-1_DTCFormat as defined in ISO 14229-1 ISO-14229-1 specification.
kDTCFormatJ1939= 2
SAE_J1939-73_DTCFormat as defined in SAE J1939-73 SAE-J1939-73 specification.
Description:Represents the type of the DTC format according to ISO 14229-1 ISO-14229-1.

43.1.2 Enumeration: DebouncingState

Kind:enumeration
Header file:#include "ara/diag/event_types.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DebouncingState
Underlying type:std::uint8_t
Syntax:enum class DebouncingState : std::uint8_t {...};
Values:kNeutral= 0x00
Neutral (corresponds to FDC = 0)
kTemporarilyDefective= 0x01
Temporarily Defective (corresponds to 0 < FDC < 127)
kFinallyDefective= 0x02
Finally Defective (corresponds to FDC = 127)
kTemporarilyHealed= 0x04
Temporarily Healed (corresponds to -128 < FDC < 0)
kFinallyHealed= 0x08
Finally Healed (corresponds to FDC = -128)
Description:Debounce status of event.

43.1.3 Enumeration: EventStatusBit

Kind:enumeration
Header file:#include "ara/diag/event_types.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:EventStatusBit
Underlying type:std::uint8_t
Syntax:enum class EventStatusBit : std::uint8_t {...};
Values:kTestFailedbit 0: TestFailed
kTestFailedThisOperationCyclebit 1: TestFailedThisOperationCycle
kTestNotCompletedThisOperationCyclebit 6: TestNotCompletedThisOperationCycle
Description:Single event status bits.

43.1.4 Type Alias: EventStatusByteNotifier

Kind:type alias
Header file:#include "ara/diag/event_types.h"
Scope:namespace ara::diag
Symbol:EventStatusByteNotifier
Syntax:using EventStatusByteNotifier = std::function<void(EventStatusByte)>;
Thread Safety:not thread-safe
Description:Register a notifier function which is called if a diagnostic event is changed.

43.2 Struct: EventStatusByte

Kind:struct
Header file:#include "ara/diag/event_types.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:EventStatusByte
Syntax:struct EventStatusByte {...};
Description:Current event status byte, bit-encoded.

43.2.1 Public Member Functions

43.2.1.1 Special Member Functions
43.2.1.1.1 Copy Constructor
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:constexpr EventStatusByte (const EventStatusByte &other) noexcept=default;
Parameters (in):otherObject to copy-construct from.
Exception Safety:exception safe
Description:Copy constructor.
43.2.1.1.2 Move Constructor
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:constexpr EventStatusByte (EventStatusByte &&other) noexcept;
Parameters (in):otherObject to move-construct from.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructor.
43.2.1.1.3 Copy Assignment Operator
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:constexpr EventStatusByte & operator= (const EventStatusByte &other) noexcept;
Parameters (in):otherObject to copy-assign from.
Return value:EventStatusByte &EventStatusByte & Reference to self.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Copy assignment operator.
43.2.1.1.4 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:constexpr EventStatusByte & operator= (EventStatusByte &&other) noexcept;
Parameters (in):otherObject to move-assign from.
Return value:EventStatusByte &EventStatusByte & Reference to self.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Move assignment operator.
43.2.1.2 Constructors
43.2.1.2.1 EventStatusByte
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:template <typename... Args> constexpr EventStatusByte (Args... bits) noexcept;
Parameters (in):bitsThe EventStatusBits that shall be set.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Construct an EventStatusByte where all EventStatusBits passed as parameter are set.
43.2.1.3 Member Functions
43.2.1.3.1 IsFailedAndTested
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:constexpr bool IsFailedAndTested () const noexcept;
Return value:boolTRUE: if bits ara::diag::EventStatusBit.kTestFailed AND ara::diag::EventStatusBit.kTestFailedThisOperationCycle are set, else FALSE
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Retrieve the value of the bits ara::diag::EventStatusBit.kTestFailed and ara::diag::EventStatusBit.kTestFailedThisOperationCycle.
43.2.1.3.2 IsNotSet
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:template <typename... Args> constexpr bool IsNotSet (Args... bits) const noexcept;
Parameters (in):bitsThe EventStatusBits to check.
Return value:boolTRUE: if all EventStatusBits passed as parameter are NOT set, else FALSE.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Whether all EventStatusBits passed as parameter are not set.
43.2.1.3.3 IsPassedAndTested
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:constexpr bool IsPassedAndTested () const noexcept;
Return value:boolTRUE: if bits ara::diag::EventStatusBit.kTestFailed AND ara::diag::EventStatusBit.kTestNotCompletedThisOperationCycle are NOT set, else FALSE
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Retrieve the value of the bits ara::diag::EventStatusBit.kTestFailed and ara::diag::EventStatusBit.kTestNotCompletedThisOperationCycle.
43.2.1.3.4 IsSet
Kind:function
Header file:#include "ara/diag/event_types.h"
Scope:ara::diag::EventStatusByte
Syntax:template <typename... Args> constexpr bool IsSet (Args... bits) const noexcept;
Parameters (in):bitsThe EventStatusBits to check.
Return value:boolTRUE: if all EventStatusBits passed as parameter are set, else FALSE.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Whether all EventStatusBits passed as parameter are set.

44 Header: ara/diag/dtc_information.h

44.1 Non-Member Types

44.1.1 Enumeration: ControlDtcStatusType

Kind:enumeration
Header file:#include "ara/diag/dtc_information.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:ControlDtcStatusType
Underlying type:std::uint8_t
Syntax:enum class ControlDtcStatusType : std::uint8_t {...};
Values:kDTCSettingOn= 0x00
Updating of diagnostic trouble code status bits is under normal operating conditions.
kDTCSettingOff= 0x01
Updating of diagnostic trouble code status bits is stopped.
Description:Type for ControlDTCStatus status as requested by UDS service 0x85 ControlDTCSetting.

44.1.2 Enumeration: UdsDtcStatusBitType

Kind:enumeration
Header file:#include "ara/diag/dtc_information.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:UdsDtcStatusBitType
Underlying type:std::uint8_t
Syntax:enum class UdsDtcStatusBitType : std::uint8_t {...};
Values:kTestFailed= 0x01
bit 0: TestFailed
kTestFailedThisOperationCycle= 0x02
bit 1: TestFailedThisOperationCycle
kPendingDTC= 0x04
bit 2: PendingDTC
kConfirmedDTC= 0x08
bit 3: ConfirmedDTC
kTestNotCompletedSinceLastClear= 0x10
bit 4: TestNotCompletedSinceLastClear
kTestFailedSinceLastClear= 0x20
bit 5: TestFailedSinceLastClear
kTestNotCompletedThisOperationCycle= 0x40
bit 6: TestNotCompletedThisOperationCycle
kWarningIndicatorRequested= 0x80
bit 7: WarningIndicatorRequested
Description:UDS DTC status bits according to ISO 14229-1.

44.2 Class: DTCInformation

Kind:class
Port Interfaces:DiagnosticDTCInformationInterface
Header file:#include "ara/diag/dtc_information.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:namespace ara::diag
Symbol:DTCInformation
Syntax:class DTCInformation final {...};
Description:Class to implement operations on DTC informations per configured DiagnosticMemoryDestination.

44.2.1 Public Member Types

44.2.1.1 Type Alias: ControlDtcStatusTypeNotifier
Kind:type alias
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Symbol:ControlDtcStatusTypeNotifier
Syntax:using ControlDtcStatusTypeNotifier = std::function<void(ControlDtcStatusType)>;
Thread Safety:not thread-safe
Description:Registers a notifier function which is called if the control DTC setting is changed.
44.2.1.2 Type Alias: DtcStatusChangedNotifier
Kind:type alias
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Symbol:DtcStatusChangedNotifier
Syntax:using DtcStatusChangedNotifier = std::function<void(std::uint32_t dtc, UdsDtcStatusByteType udsStatusByteOld, UdsDtcStatusByteType udsStatusByteNew)>;
Thread Safety:not thread-safe
Description:Register a notifier function which is called if a UDS DTC status is changed.
44.2.1.3 Type Alias: EventMemoryOverflowSetNotifier
Kind:type alias
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Symbol:EventMemoryOverflowSetNotifier
Syntax:using EventMemoryOverflowSetNotifier = std::function<void(bool)>;
Thread Safety:not thread-safe
Description:Notifier function which is called if the current event memory overflow status changed.
44.2.1.4 Type Alias: NumberOfStoredEntriesNotifier
Kind:type alias
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Symbol:NumberOfStoredEntriesNotifier
Syntax:using NumberOfStoredEntriesNotifier = std::function<void(std::uint32_t)>;
Thread Safety:not thread-safe
Description:Register a notifier function which is called if the number of currently stored fault memory entries changed.
44.2.1.5 Type Alias: SnapshotRecordUpdatedTypeNotifier
Kind:type alias
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Symbol:SnapshotRecordUpdatedTypeNotifier
Syntax:using SnapshotRecordUpdatedTypeNotifier = std::function<void(SnapshotRecordUpdatedType)>;
Thread Safety:not thread-safe
Description:Register a notifier function which is called if the SnapshotRecord is changed.

44.2.2 Public Member Functions

44.2.2.1 Special Member Functions
44.2.2.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:DTCInformation (DTCInformation &&) noexcept=delete;
Description:Move constructor of DTCInformation.
44.2.2.1.2 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::diag::DTCInformation & operator= (ara::diag::DTCInformation &&)=delete;
Description:Move assignment operator of DTCInformation.
44.2.2.1.3 Destructor
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:~DTCInformation () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destructor of class DTCInformation.
44.2.2.2 Constructors
44.2.2.2.1 DTCInformation(const ara::core::InstanceSpecifier&)
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:explicit DTCInformation (const ara::core::InstanceSpecifier &specifier) noexcept;
Parameters (in):specifierInstanceSpecifier to a PortPrototype of a DiagnosticDTCInformationInterface.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is referenced by a DiagnosticMemoryDestinationPortMapping needs to be typed by a DiagnosticDTCInformationInterface.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Constructor for a DTCInformation instance which allows for DTC related operation per DiagnosticMemoryDestination.
44.2.2.2.2 DTCInformation(DTCInformation&)
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:DTCInformation (DTCInformation &)=delete;
Description:DTCInformation shall be a single not copy-able instance.
44.2.2.3 Member Functions
44.2.2.3.1 Clear
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Future< void > Clear (std::uint32_t dtcGroup) noexcept;
Parameters (in):dtcGroupDTC group to be cleared.
Return value:ara::core::Future< void >void or errors
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kBusyrollback_semantics
Interface is busy with processing.
DiagErrc::kFailedrollback_semantics
Failed to process.
DiagErrc::kMemoryErrorrollback_semantics
A memory error occurred during processing.
DiagErrc::kWrongDtcrollback_semantics
A wrong DTC number was requested.
DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Method for Clearing a DTC or a group of DTCs.
44.2.2.3.2 EnableControlDtc
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Result< void > EnableControlDtc () noexcept;
Return value:ara::core::Result< void >Returns void.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Triggers a setting of ControlDTCStatus to enabled in case the application has some conditions or states demands to do so. The control DTC setting state might be set to enabled only after this API has returned.
44.2.2.3.3 GetControlDTCStatus
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Future< ara::diag::ControlDtcStatusType > GetControlDTCStatus () noexcept;
Return value:ara::core::Future< ControlDtcStatusType >The current status of ControlDtcStatus (related to UDS service 0x85)
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Contains the current status of the ControlDTCStatus.
44.2.2.3.4 GetCurrentStatus
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Future< ara::diag::DTCInformation::UdsDtcStatusByteType > GetCurrentStatus (std::uint32_t dtc) noexcept;
Parameters (in):dtcDTC identifier for which the status should be retrieved.
Return value:ara::core::Future< UdsDtcStatusByteType >A Future which is readied with current UDS DTC status byte of the given DTC identifier or an internal error code.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kNoSuchDTCrollback_semantics
No mapped DTC exits for the requested event.
DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Retrieves the current UDS DTC status byte of the given DTC identifier.
44.2.2.3.5 GetEventMemoryOverflow
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Result< bool > GetEventMemoryOverflow () noexcept;
Return value:ara::core::Result< bool >Current status of event memory overflow.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Contains the current event memory overflow status.
44.2.2.3.6 GetNumberOfStoredEntries
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Future< std::uint32_t > GetNumberOfStoredEntries () noexcept;
Return value:ara::core::Future< std::uint32_t >Number of currently stored fault memory entries.
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagErrc::kServiceNotAvailablerollback_semantics
The call cannot be executed, because essential DM functionality is currently not available.
Description:Contains the number of currently stored fault memory entries.
44.2.2.3.7 SetControlDtcStatusNotifier
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Result< void > SetControlDtcStatusNotifier (ara::diag::DTCInformation::ControlDtcStatusTypeNotifier notifier) noexcept;
Parameters (in):notifierThe function to be called if the ControlDTCStatus (related to UDS service 0x85) for this diagnostic memory instance has changed.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Registers a notifier function which is called if the control DTC setting is changed. A consecutive call of this method will overwrite the previous registered notifier.
44.2.2.3.8 SetDTCStatusChangedNotifier
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Result< void > SetDTCStatusChangedNotifier (ara::diag::DTCInformation::DtcStatusChangedNotifier notifier) noexcept;
Parameters (in):notifierThe function to be called if a DTC status has changed.
Return value:ara::core::Result< void >Returns void.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:This function does not specify any standardized errors.
Description:Register a notifier function which is called if a UDS DTC status is changed. A consecutive call of this method will overwrite the previous registered notifier.
44.2.2.3.9 SetEventMemoryOverflowNotifier
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Result< void > SetEventMemoryOverflowNotifier (ara::diag::DTCInformation::EventMemoryOverflowSetNotifier notifier) noexcept;
Parameters (in):notifierThe function to be called if the overflow status for this diagnostic event memory instance has changed.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Register a notifier function which is called if the current event memory overflow status changed. A consecutive call of this method will overwrite the previous registered notifier.
44.2.2.3.10 SetNumberOfStoredEntriesNotifier
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Result< void > SetNumberOfStoredEntriesNotifier (ara::diag::DTCInformation::NumberOfStoredEntriesNotifier notifier) noexcept;
Parameters (in):notifierThe function to be called if the number of entries for this diagnostic event memory instance has changed.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Register a notifier function which is called if the number of currently stored fault memory entries changed. A consecutive call of this method will overwrite the previous registered notifier.
44.2.2.3.11 SetSnapshotRecordUpdatedNotifier
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::core::Result< void > SetSnapshotRecordUpdatedNotifier (ara::diag::DTCInformation::SnapshotRecordUpdatedTypeNotifier notifier) noexcept;
Parameters (in):notifierThe function to be called if the SnapshotRecord is changed.
Return value:ara::core::Result< void >Returns nothing or an error.
Exception Safety:exception safe
Thread Safety:not thread-safe
Errors:DiagErrc::kInvalidArgumentrollback_semantics
e.g. kPreFailed with internal debouncing
Description:Register a notifier function which is called if the SnapshotRecord is changed. A consecutive call of this method will overwrite the previous registered notifier.
44.2.2.3.12 operator=
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation
Syntax:ara::diag::DTCInformation & operator= (ara::diag::DTCInformation &)=delete;
Description:DTCInformation shall be a single not assignable instance.

44.3 Struct: SnapshotDataIdentifierType

Kind:struct
Header file:#include "ara/diag/dtc_information.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::DTCInformation
Symbol:SnapshotDataIdentifierType
Syntax:struct SnapshotDataIdentifierType {...};
Description:Type for DiagnosticDataIdentifier status.

44.3.1 Public Member Variables

44.3.1.1 data
Kind:variable
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::SnapshotDataIdentifierType
Symbol:data
Type:ara::core::Vector< std::uint8_t >
Syntax:ara::core::Vector<std::uint8_t> data;
Description:Data for specific snapshot record.
44.3.1.2 dataIdentifier
Kind:variable
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::SnapshotDataIdentifierType
Symbol:dataIdentifier
Type:std::uint16_t
Syntax:std::uint16_t dataIdentifier;
Description:The DiagnosticDataIdentifier identifying the snapshot record.

44.4 Struct: SnapshotDataRecordType

Kind:struct
Header file:#include "ara/diag/dtc_information.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::DTCInformation
Symbol:SnapshotDataRecordType
Syntax:struct SnapshotDataRecordType {...};
Description:Type for snapshot record status.

44.4.1 Public Member Variables

44.4.1.1 snapshotDataIdentifiers
Kind:variable
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::SnapshotDataRecordType
Symbol:snapshotDataIdentifiers
Type:ara::core::Vector< SnapshotDataIdentifierType >
Syntax:ara::core::Vector<SnapshotDataIdentifierType> snapshotDataIdentifiers;
Description:Vector of snapshot DiagnosticDataIdentifiers.
44.4.1.2 snapshotRecordNumber
Kind:variable
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::SnapshotDataRecordType
Symbol:snapshotRecordNumber
Type:std::uint8_t
Syntax:std::uint8_t snapshotRecordNumber;
Description:Specifies a unique record number for a snapshot record.

44.5 Struct: SnapshotRecordUpdatedType

Kind:struct
Header file:#include "ara/diag/dtc_information.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::DTCInformation
Symbol:SnapshotRecordUpdatedType
Syntax:struct SnapshotRecordUpdatedType {...};
Description:Type for snapshot record updated status.

44.5.1 Public Member Variables

44.5.1.1 DTC
Kind:variable
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::SnapshotRecordUpdatedType
Symbol:DTC
Type:uint32_t
Syntax:uint32_t DTC;
Description:DTC identifier to which the snapshot record data is related.
44.5.1.2 snapshotDataRecords
Kind:variable
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::SnapshotRecordUpdatedType
Symbol:snapshotDataRecords
Type:ara::core::Vector< SnapshotDataRecordType >
Syntax:ara::core::Vector<SnapshotDataRecordType> snapshotDataRecords;
Description:Vector of snapshot snapshot record.

44.6 Struct: UdsDtcStatusByteType

Kind:struct
Header file:#include "ara/diag/dtc_information.h"
Forwarding header file:#include "ara/diag/diag_fwd.h"
Scope:ara::diag::DTCInformation
Symbol:UdsDtcStatusByteType
Syntax:struct UdsDtcStatusByteType {...};
Description:Type for UDS DTC status byte.

44.6.1 Public Member Functions

44.6.1.1 Special Member Functions
44.6.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:constexpr UdsDtcStatusByteType (UdsDtcStatusByteType &&other) noexcept;
Parameters (in):otherObject to move-construct from.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructor.
44.6.1.1.2 Copy Constructor
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:constexpr UdsDtcStatusByteType (const UdsDtcStatusByteType &other) noexcept=default;
Parameters (in):otherObject to copy-construct from.
Exception Safety:exception safe
Description:Copy constructor.
44.6.1.1.3 Copy Assignment Operator
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:constexpr UdsDtcStatusByteType & operator= (const UdsDtcStatusByteType &other) noexcept;
Parameters (in):otherObject to copy-assign from
Return value:UdsDtcStatusByteType &UdsDtcStatusByteType & Reference to self
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Copy assignment operator.
44.6.1.1.4 Move Assignment Operator
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:constexpr UdsDtcStatusByteType & operator= (UdsDtcStatusByteType &&other) noexcept;
Parameters (in):otherObject to move-assign from
Return value:UdsDtcStatusByteType &UdsDtcStatusByteType& Reference to self
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Move assignment operator.
44.6.1.2 Constructors
44.6.1.2.1 UdsDtcStatusByteType
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:template <typename... Args> constexpr UdsDtcStatusByteType (Args... bits) noexcept;
Parameters (in):bitsThe DTC bits to be set.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Construct an UdsDtcStatusByteType where all DtcStatusBits passed as parameter are set.
44.6.1.3 Member Functions
44.6.1.3.1 IsFailedAndTested
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:constexpr bool IsFailedAndTested () const noexcept;
Return value:boolbool Returns TRUE if DTC is Failed AND Tested, else FALSE.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Test if DTC is Failed and Tested.
44.6.1.3.2 IsNotSet
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:template <typename... Args> constexpr bool IsNotSet (Args... bits) const noexcept;
Parameters (in):bitsThe DTC bits to check
Return value:boolbool Returns TRUE if DTC status bit(s) is not set, else FALSE.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Test if DTC status bit(s) is not set.
44.6.1.3.3 IsPassedAndTested
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:constexpr bool IsPassedAndTested () const noexcept;
Return value:boolbool Returns TRUE if DTC is Passed AND Tested, else FALSE.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Test if DTC is Passed and Tested.
44.6.1.3.4 IsSet
Kind:function
Header file:#include "ara/diag/dtc_information.h"
Scope:ara::diag::DTCInformation::UdsDtcStatusByteType
Syntax:template <typename... Args> constexpr bool IsSet (Args... bits) const noexcept;
Parameters (in):bitsThe DTC bits to check
Return value:boolbool Returns TRUE if DTC status bit(s) is set, else FALSE.
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Test if DTC status bit(s) is set.

45 Header: {<extended-data-record-element-shortname-lower>}.h

Kind:Header File
Syntax:extended_data_record_element_shortname_lower.h::extended_data_record_element_shortname_lower.h/extended_data_record_element_shortname_lower.h::extended_data_record_element_shortname_lower.h
Description:For each modeled DiagnosticExtendedDataRecordInterface a Diagnostic ExtendedDataRecordElement Header File is generated according to this directory path/file name convention and shall:
1. Insert a multiple inclusion guard around the whole header file as per SWS_CORE_90002
Example:// File=n/n_plus_1/n_plus_2/si_extended-data-record-element.h (1)
#ifndef N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)
#define N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)
#include ".../path/to/si_common.h" (3)
...
#endif // N_NPLUS1_NPLUS2_SI_ROUTINE_H_ (2)

45.1 Namespaces

45.1.1 {<namespace-list-extended-data-record-element>}

Kind:namespace
Header file:#include "::extended_data_record_element_shortname_lower.h"
Scope:--
Syntax:namespace ::namespace_list_extended_data_record_element
Description:The generator shall use the SymbolProps aggregated in the role PortInterface. PortInterface.namespace. For each PortInterface.namespace in the ordered list: PortInterface.namespace[N+1] shall be an inner namespace of PortInterface.namespace[N] converted to lower-case.

45.2 Class: {<extended-data-record-element-interface-name-x>}

Kind:class
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_shortname_lower.h"
Forwarding header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_shortname_lower/_fwd.h"
Scope:namespace ::namespace_list_extended_data_record_element
Symbol:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_x
Syntax:class namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_x {...};
Description:DiagnosticExtendedDataRecordInterface class

45.2.1 Public Member Variables

45.2.1.1 {<extended-data-record-element-out-arg-symbol>}
Kind:variable
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_out_arg_symbol::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Symbol:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_out_arg_symbol::extended_data_record_element_out_arg_symbol
Type:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_out_arg_symbol::extended_data_record_element_out_arg_type
Syntax:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_out_arg_symbol::extended_data_record_element_out_arg_type namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_out_arg_symbol::extended_data_record_element_out_arg_symbol;
Description:Member declaration representing an out argument in an namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex::methodnameuppercamelOutput.

45.2.2 Public Member Functions

45.2.2.1 Member Functions
45.2.2.1.1 Offer
Kind:function
Header file:#include "::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::diag::DiagOfferErrc
Exception Safety:exception safe
Thread Safety:thread-safe
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:This Offer will enable the DM to forward request messages to this handler
45.2.2.1.2 Read
Kind:function
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::Read::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:virtual ara::core::Future< namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::Read::extended_data_record_element_name_upper_camelReadOutput > Read (const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
Parameters (in):metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to
• Query the current cancellation status by calling cancellationHandler.SWS_DM_00614.ara::diag::CancellationHandler::IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise.
• Register a notifier function by calling cancellationHandler.SWS_DM_00615.ara::diag::CancellationHandler::SetNotifier. The registered notifier is called if the current conversation is cancelled.
Return value:ara::core::Future< namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::Read::extended_data_record_element_name_upper_camelReadOutput >• If successful: an ara::core::Future containing an SWS_DM_02154.namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex::extendeddatarecordelementnameuppercamelReadOutput object as per SWS_DM_02154
• If unsuccessful: an ara::core::Future containing a corresponding ara::diag::DiagUdsNrcErrc or ApApplicationError.
Exception Safety:exception safe
Thread Safety:conditionalThread safety is implementation defined
Errors:DiagOfferErrc::kAlreadyOfferedrollback_semantics
The service is already offered.
Description:Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role DiagnosticExtendedDataRecordInterface.provide).
Example:// Example:
virtual ara::core::Future<SomeDataElementReadOutput> Read(
  const ara::diag::MetaInfo& metaInfo,
  ara::diag::CancellationHandler cancellationHandler
) noexcept = 0;
45.2.2.1.3 StopOffer
Kind:function
Header file:#include "::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:thread-safe
Description:This StopOffer will disable the forwarding of request messages from DM
45.2.2.1.4 operator=(const {<extended-data-record-element-interface-name-3>}&)
Kind:function
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::operator=::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::operator=::extended_data_record_element_interface_name_3 & operator= (const namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::operator=::extended_data_record_element_interface_name_3 &other)=delete;
Description:Copy assignment constructor deletion
45.2.2.1.5 operator=({<extended-data-record-element-interface-name-5>}&&)
Kind:function
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::operator=::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::operator=::extended_data_record_element_interface_name_5 & operator= (namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::operator=::extended_data_record_element_interface_name_5 &&other)=delete;
Description:Move assignment constructor
45.2.2.1.6 {<extended-data-record-element-interface-name-1>}
Kind:function
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_1::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_1::extended_data_record_element_interface_name_1 (ara::core::InstanceSpecifier instanceSpec, ara::diag::ConcurrencyType concurrencyType) noexcept;
Parameters (in):instanceSpecThe specifier of a specific instance of a service.
concurrencyTypeSpecifies if the interface is implemented as thread safe (ara::diag::ConcurrencyType.kConcurrent) or non-thread safe (ara::diag::ConcurrencyType.kNotConcurrent).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationA PortPrototype that is typed by a DiagnosticExtendedDataRecordInterface needs to be referenced by a DiagnosticDataPortMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Construct a namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex from an ara::core::InstanceSpecifier
45.2.2.1.7 {<extended-data-record-element-interface-name-2>}
Kind:function
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_2::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_2::extended_data_record_element_interface_name_2 (const namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_2::extended_data_record_element_interface_name_2 &other)=delete;
Description:Copy constructor deletion
45.2.2.1.8 {<extended-data-record-element-interface-name-4>}
Kind:function
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_4::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_4::extended_data_record_element_interface_name_4 (namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_interface_name_4::extended_data_record_element_interface_name_4 &&other)=delete;
Description:Move constructor
45.2.2.1.9 ~{<extended-data-record-element-interface-name-6>}
Kind:function
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::~extended_data_record_element_interface_name_6::extended_data_record_element_shortname_lower.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Syntax:virtual ~namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::~extended_data_record_element_interface_name_6::extended_data_record_element_interface_name_6 () noexcept;
Exception Safety:exception safe
Thread Safety:not thread-safe
Description:Destruction of a namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex

45.3 Struct: {<extended-data-record-element-name-upper-camel>}ReadOutput

Kind:struct
Header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_name_upper_camelReadOutput::extended_data_record_element_shortname_lower.h"
Forwarding header file:#include "namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_name_upper_camelReadOutput::extended_data_record_element_shortname_lower/_fwd.h"
Scope:namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex
Symbol:namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_name_upper_camelReadOutput::extended_data_record_element_name_upper_camelReadOutput
Syntax:struct namespace_list_extended_data_record_element::extended_data_record_element_interface_name_x::extended_data_record_element_name_upper_camelReadOutput::extended_data_record_element_name_upper_camelReadOutput {...};
Description:Structure wrapping the out arguments for a SWS_DM_02154.namespacelistextendeddatarecordelement::extendeddatarecordelementinterfacenamex::extendeddatarecordelementnameuppercamelReadOutput

See also

  • Diagnostic services in the runtime model: PARA Overview
  • Diagnostic configuration: DiagnosticServiceInterface, DiagnosticMonitorInterface