module ara::com — Communication Management
Guide du moduleGÉNÉRÉ PAR IA
Fournit des interfaces typées pour la communication orientée services et abstrait les protocoles de transport.
Fournit des interfaces typées pour la communication orientée services et abstrait les protocoles de transport.
Le Functional Cluster Communication Management (ara::com) permet l'interaction orientée services entre applications Adaptive via des interfaces proxy et skeleton standardisées (SWS_CommunicationManagement p. 55, ARAComAPI p. 1). Il gère la découverte dynamique des services au moyen de OfferService() et FindService() ([SWS_CM_00101], [SWS_CM_00122]) et met à disposition des méthodes synchrones ainsi qu'asynchrones, des événements et des champs avec protection E2E et SecOC intégrée ([SWS_CM_00141], [SWS_CM_90420]). En cas de perte temporaire d'un service, le middleware intercepte les interruptions de liaison et met à jour automatiquement les objets proxy existants dès qu'ils redeviennent disponibles (ARAComAPI p. 32).
Le Functional Cluster Communication Management (ara::com) constitue l'épine dorsale de l'architecture orientée services (SOA) dans l'AUTOSAR Adaptive Platform et découple la logique applicative des protocoles de transmission concrets via le patron proxy-skeleton (SWS_CommunicationManagement p. 55, ARAComAPI p. 1). Des classes proxy côté consommateur et des classes skeleton côté fournisseur, générées à partir de descriptions d'interfaces formelles, mettent à disposition des méthodes, des événements et des champs via des API C++ à sûreté de typage ([SWS_CM_00130], [SWS_CM_00131]).
La mise à disposition et la recherche dynamique de services sont prises en charge par le Service Discovery (SWS_CommunicationManagement p. 67). Un fournisseur propose son service via OfferService() ([SWS_CM_00101]), tandis que les consommateurs déterminent les instances appropriées de manière synchrone via FindService() ou de manière asynchrone au moyen de StartFindService() ([SWS_CM_00122], [SWS_CM_00123]). Ce faisant, les instances peuvent être adressées sur une base modèle via ara::core::InstanceSpecifier et résolues au moment de l'exécution en ara::com::InstanceIdentifier concrètes ([SWS_CM_00118], [SWS_CM_00622]).
Diagramme de séquence : déroulement de l'offre de service, de la recherche asynchrone et de la création du proxy. Sources : [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces p. 16
Pour le transfert de données, ara::com prend en charge des méthodes requête-réponse via ara::core::Future ([SWS_CM_00191], [SWS_CM_00196]) ainsi que des patrons publication-abonnement pour les événements et les champs (AUTOSAR_EXP_ARAComAPI p. 68). Les abonnés s'enregistrent via Subscribe() ([SWS_CM_00141]) et lisent les données entrantes via GetNewSamples() ([SWS_CM_00701]). Afin d'augmenter les performances, le fournisseur met les données à disposition via Allocate() et en transfère la propriété par zero-copy via Send() ([SWS_CM_90437], [SWS_CM_90438]).
Pour sécuriser la transmission, la plateforme intègre une protection de bout en bout (E2E), une authentification cryptographique (SecOC) via la gestion des valeurs de fraîcheur (FVM) ainsi qu'une conversion signal-vers-service pour les réseaux classiques ([SWS_CM_90420], [SWS_CM_11288], [SWS_CM_10174], SWS_CommunicationManagement p. 222). Les états d'erreur sont signalés de manière standardisée via des domaines d'erreur à sûreté de typage tels que ComErrorDomain et ComE2EErrorDomain ([SWS_CM_10432], [SWS_CM_10474]). Si la connexion à un service s'interrompt, le statut du proxy passe à kSubscriptionPending ; après le rétablissement de la disponibilité, le middleware met à jour l'adressage interne de manière transparente, de sorte que la communication se poursuit sans nouvelle instanciation du proxy (ARAComAPI p. 32).
Rôle et architecture système de la communication orientée services
Le Functional Cluster Communication Management (ara::com) constitue l'épine dorsale informatique de l'AUTOSAR Adaptive Platform et réalise la communication orientée services (Service-Oriented Architecture, SOA) entre des processus applicatifs isolés ainsi qu'au-delà des frontières de calculateurs (SWS_CommunicationManagement p. 55). Le principe fondamental repose sur le strict patron de conception proxy-skeleton (ARAComAPI p. 1) : à partir de descriptions formelles d'interfaces logicielles (Service Interfaces), un générateur de code basé sur des modèles génère des classes proxy typées pour les consommateurs de services et des classes skeleton pour les fournisseurs de services ([SWS_CM_00130], [SWS_CM_00131]). La logique applicative interagit exclusivement avec ces abstractions, tandis que les liaisons spécifiques aux protocoles comme SOME/IP, IPC ou DDS ainsi que leur sérialisation ne sont rattachées qu'au moment de l'intégration et du déploiement (AUTOSAR_AP_EXP_ARAComAPI p. 124).
Pour satisfaire aux exigences de la plateforme, ara::com coopère étroitement avec d'autres clusters de fonctionnalités (SWS_CommunicationManagement p. 34). Au moment de l'exécution, Execution Management surveille le cycle de vie des processus, tandis qu'Identity and Access Management (IAM) bloque les interactions non autorisées au niveau méthode, événement et champ grâce à des vérifications d'accès basées sur des règles (Policy Decision Point) (SWS_CommunicationManagement p. 215). De plus, les événements de sécurité sont directement signalés à l'EventReporter de l'Intrusion Detection System Manager (IdSM) (SWS_CommunicationManagement p. 34).
Diagramme de contexte : intégration d'ara::com et découplage des couches applicatives via des bindings. Sources : SWS_CommunicationManagement p. 55, ARAComAPI p. 1
Découverte de services et instanciation via des proxys et des skeletons
La médiation dynamique de services (Service Discovery) régit l'établissement des relations de communication locales et distribuées (SWS_CommunicationManagement p. 67). Un fournisseur de service signale sa disponibilité en appelant OfferService() sur le skeleton ([SWS_CM_00101]). Si le service prend fin ou si sa mise à disposition est révoquée, StopOfferService() retire l'offre ([SWS_CM_00111]). Les consommateurs déterminent les instances de service correspondantes de manière synchrone via FindService() ou asynchrone via StartFindService() ([SWS_CM_00122], [SWS_CM_00123], ARAComAPI p. 103). Ce dernier enregistre un FindServiceHandler qui est notifié à chaque modification du paysage d'instances jusqu'à ce que la recherche soit explicitement arrêtée au moyen de StopFindService() ([SWS_CM_00125], [SWS_CM_00383]).
Afin de découpler le code source des identifiants fixes de réseau et d'instance, l'interface permet l'adressage via des chemins de modèle abstraits au moyen de ara::core::InstanceSpecifier ([SWS_CM_00622], [SWS_CM_00623], AUTOSAR_AP_EXP_ARAComAPI p. 124). Le middleware résout ces spécificateurs en ara::com::InstanceIdentifier concrets via le Service Instance Manifest associé ([SWS_CM_00118], [SWS_CM_11520], ARAComAPI p. 1). Un service trouvé est mis à disposition sous forme de descripteur typé (HandleType) dans un ServiceHandleContainer ([SWS_CM_10383], AUTOSAR_EXP_SensorInterfaces p. 16). Par le biais de la méthode fabrique statique Proxy::Create() ou du constructeur, le consommateur crée une instance de proxy liée en vue de l'utilisation ultérieure des fonctionnalités ([SWS_CM_10438], [SWS_CM_00131]).
Diagramme de séquence : déroulement de l'offre de service, de la recherche asynchrone et de la création du proxy. Sources : [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces p. 16
Modèles d'interaction : appels de méthode et traitement asynchrone
Les appels de méthode mettent en œuvre le paradigme requête-réponse synchrone et asynchrone. Le client déclenche les méthodes via l'opérateur d'appel de fonction operator() sur le proxy ([SWS_CM_00196]). Un ara::core::Future, qui encapsule le résultat ou un état d'erreur, sert par défaut de type de retour ([SWS_CM_00191], ARAComAPI p. 1). Le consommateur choisit librement le mode de synchronisation : par interrogation bloquante via get(), attente temporisée via wait_for() ou wait_until(), ou encore par enregistrement de routines de rappel basées sur les événements au moyen de then() (ARAComAPI p. 1). Pour les pures notifications unidirectionnelles sans acquittement, il existe des méthodes de type Fire-and-Forget avec un retour void ([SWS_CM_90434], [SWS_CM_90435]).
Côté fournisseur, le MethodCallProcessingMode définit la stratégie d'exécution pour les appels entrants ([SWS_CM_00301], [SWS_CM_00130]). En mode événementiel (kEvent ou kEventSingleThread), l'appel de méthode s'effectue immédiatement au sein d'un thread de travail géré par le middleware (AUTOSAR_SWS_CommunicationManagement p. 60). En mode d'interrogation (kPoll), l'application pilote elle-même les instants de traitement de manière déterministe en appelant régulièrement ProcessNextMethodCall() ([SWS_CM_00199], EXP_SWArchitecture p. 68). L'implémentation de la méthode génère le résultat en interne via un ara::core::Promise et renvoie le future associé (ARAComAPI p. 1).
Diagramme de séquence : appel de méthode entre le proxy et le skeleton avec dispatching kPoll et kEvent. Sources : [SWS_CM_00196], [SWS_CM_00199], AUTOSAR_SWS_CommunicationManagement p. 60
Communication par événements et par champs selon le modèle publication-abonnement
La distribution des flux de données continus et des changements d'état s'effectue via des événements et des champs selon le modèle publication-abonnement (SWS_CommunicationManagement p. 67). Un abonné actif signale son intérêt pour la réception via Subscribe() en indiquant le nombre maximal d'échantillons à conserver (maxSampleCount) ([SWS_CM_00141], [SWS_CM_12002]). L'état de l'abonnement est interrogé via GetSubscriptionState() ou surveillé de manière asynchrone par des rappels via SetSubscriptionStateChangeHandler() ([SWS_CM_00310], [SWS_CM_00316], [SWS_CM_01110]). La résiliation de l'abonnement s'effectue via Unsubscribe() ([SWS_CM_00151]).
La réception des données peut s'effectuer de manière événementielle via SetReceiveHandler() ou par lecture périodique du tampon de réception ([SWS_CM_00181], [SWS_CM_11356]). Avec GetNewSamples(), le consommateur transmet un objet fonction (lambda) qui est appelé pour chaque échantillon arrivé avec un SamplePtr typé ([SWS_CM_00701], [SWS_CM_11610]). Pour éviter les opérations de copie (zero-copy), le skeleton alloue de la mémoire via Allocate() et transmet le pointeur typé SampleAllocateePtr à la couche de transport via Send() avec transfert complet de propriété ([SWS_CM_90438], [SWS_CM_90437], [SWS_CM_00308], AUTOSAR_EXP_ARAComAPI p. 63, ARAComAPI p. 1).
Un champ étend le concept d'événement avec une sémantique de getter et de setter (AUTOSAR_EXP_ARAComAPI p. 68). Les consommateurs lisent le champ via Get() ou l'écrivent via Set() ([SWS_CM_00112], [SWS_CM_00113]). Côté serveur, ces requêtes sont traitées avec RegisterGetHandler() ou RegisterSetHandler() ([SWS_CM_00114], [SWS_CM_00116]). Si le serveur met à jour l'état via Update(), le champ agit automatiquement comme notificateur et distribue la modification à tous les abonnés enregistrés ([SWS_CM_00119], ARAComAPI p. 1).
Diagramme de séquence : allocation zero-copy, publication d'événements, abonnement et consommation GetNewSamples. Sources : [SWS_CM_00141], [SWS_CM_00701], [SWS_CM_90437], AUTOSAR_EXP_ARAComAPI p. 63
Sécurisation, traduction de services et intégration de plateforme
Pour les flux de données déterministes et critiques pour la sécurité, ara::com intègre une protection de bout en bout (E2E) ainsi qu'une authentification conforme aux normes AUTOSAR (AUTOSAR_AP_TR_SystemTests p. 132). Via GetProfileCheckStatus() et GetE2EStateMachineState(), les consommateurs peuvent vérifier l'état d'intégrité et de validation des données reçues ([SWS_CM_90420], [SWS_CM_90421], [SWS_CM_11554]). Côté serveur, l'application enregistre des routines de traitement des erreurs via SetTransportFaultConditionHandler() afin de réagir de manière standardisée aux défauts E2E et de transport au niveau méthode ([SWS_CM_00093], [SWS_CM_00094], [SWS_CM_00100], EXP_SWArchitecture p. 68).
L'intégrité et l'authenticité cryptographiques des messages externes sont assurées par Secure Onboard Communication (SecOC) (SWS_CommunicationManagement p. 222). À cette fin, le middleware intègre une bibliothèque interchangeable de Freshness Value Management (FVM) qui gère les valeurs de fraîcheur via GetRxFreshness(), GetTxFreshness() et Initialize() ([SWS_CM_11288], [SWS_CM_11289], [SWS_CM_11290], SWS_CommunicationManagement p. 226). Des fonctions de diagnostic et de sécurité surveillent ou contrôlent la vérification via des interfaces spécifiques telles que SetVerificationStatus() ([SWS_CM_19999], AUTOSAR_AP_EXP_SWArchitecture p. 70).
Pour assurer l'interopérabilité avec l'AUTOSAR Classic Platform, ara::com prend en charge la communication basée sur les signaux (Signal-to-Service Translation) (SWS_CommunicationManagement p. 146, TPS_ManifestSpecification p. 476). Conformément à [SWS_CM_10174] et [SWS_CM_80001], les I-PDU de signaux classiques et les messages SOME/IP peuvent être transportés sur le même socket. En présence d'une configuration SecOC basée sur les signaux, le middleware lit directement les paramètres de protection à partir du déclenchement de PDU (PDU-Triggering) du manifeste ([SWS_CM_11346], SWS_CommunicationManagement p. 228).
Diagramme d'activité : pipeline de sécurisation E2E et SecOC des messages entrants. Sources : [SWS_CM_90420], [SWS_CM_11288], SWS_CommunicationManagement p. 222
Comportement en cas d'erreur
La gestion des erreurs de ara::com repose sur des domaines d'erreur à sûreté de typage et des codes de retour du framework AUTOSAR Core ([SWS_CM_11334], [SWS_CM_11335]). Les erreurs de la couche générale de communication sont regroupées dans ComErrorDomain et codées via l'énumérateur ComErrc ([SWS_CM_10432]). En cas d'erreurs de vérification E2E, ComE2EErrorDomain signale via la valeur d'énumération ComE2EErrc des erreurs de vérification spécifiques, telles que des écarts de somme de contrôle ou des compteurs invalides ([SWS_CM_10474], [SWS_CM_12510], [SWS_CM_12511]). Pour les erreurs de fraîcheur SecOC, il existe de manière analogue ComSecOcFvmErrorDomain avec ComSecOcFvmErrc ([SWS_CM_12521], [SWS_CM_12522]).
Si une perte de connexion survient pendant l'exécution, l'état d'abonnement du proxy passe de kSubscribed à kSubscriptionPending ([SWS_CM_00310], [SWS_CM_00316], ARAComAPI p. 32). Les appels de méthode échouent durant cette phase avec une erreur. Si le fournisseur de service réapparaît ensuite via Service Discovery, le middleware met à jour de façon transparente l'adressage interne du proxy sans que le consommateur ait à réinstancier l'objet proxy ; après une resynchronisation réussie, l'état repasse automatiquement à kSubscribed (ARAComAPI p. 32). Conformément à la spécification du système, la surveillance des délais impartis et des échéances (Deadline Monitoring) relève de la responsabilité du logiciel d'application lui-même (TPS_ManifestSpecification p. 504).
Diagramme d'états : cycle de vie et états de connexion d'une instance de proxy lors des changements de disponibilité du fournisseur. Sources : [SWS_CM_00310], [SWS_CM_00316], ARAComAPI p. 32
Preuves détaillées supplémentaires
Les principales exigences et interfaces système s'intègrent comme suit dans les spécifications AUTOSAR :
- Cycle de vie des services et découverte : la mise à disposition des services et les mécanismes de recherche reposent sur [SWS_CM_00101], [SWS_CM_00111], [SWS_CM_00122] et [SWS_CM_00123], détaillés dans le guide d'architecture logicielle (ARAComAPI p. 103).
- Paradigmes d'interaction : les méthodes et les valeurs futures asynchrones sont normalisées dans [SWS_CM_00191] et [SWS_CM_00196] ; les abonnements aux événements et les transmissions d'échantillons suivent [SWS_CM_00141], [SWS_CM_00701] et [SWS_CM_90437] (SWS_CommunicationManagement p. 67).
- Sécurité et sérialisation : les concepts de protection pour E2E ([SWS_CM_90420]), SecOC ([SWS_CM_90108], [SWS_CM_11288]) et la traduction de signaux en services ([SWS_CM_10174]) régissent l'échange de données à l'échelle du système (SWS_CommunicationManagement p. 146, SWS_CommunicationManagement p. 222).
- Définitions de manifestes et de types : la représentation des types de données structurés, des champs optionnels et des spécificateurs d'instance est ancrée dans la spécification du manifeste (TPS_ManifestSpecification p. 161, TPS_ManifestSpecification p. 458).
Ce guide a été élaboré par un assistant de curation IA sur la base de la publication AUTOSAR Adaptive R25-11.
<SI-Namespace>::proxy::methods
<FnFMethod><Method><SI-Namespace>::proxy::triggers
<Trigger><SI>Skeleton<SI-Namespace>::skeleton::fields
<Field> (<SI-Namespace>::skeleton::fields)<SI-Namespace>::skeleton::triggers
<Trigger> (<SI-Namespace>::skeleton::triggers)ComSecOcFvmErrorDomainComSecOcFvmExceptionFVContainerFVMGetComSecOcFvmErrorDomainMakeErrorCodeComSecOcFvmErrcComErrorDomainComExceptionFindServiceHandleInstanceIdentifierSamplePtrServiceIdentifierTypeServiceVersionTypeGetComErrorDomainMakeErrorCode (ara::com)ComErrcMethodCallProcessingModeServiceStateSubscriptionStateEventReceiveHandlerFieldReceiveHandlerFindServiceHandlerInstanceIdentifierContainerSampleAllocateePtrServiceHandleContainerServiceStateHandlerSubscriptionStateChangeHandlerTriggerReceiveHandlerComE2EErrorDomainComE2EExceptionGetComE2EErrorDomainMakeErrorCode (ara::com::e2e)ComE2EErrcProfileCheckStatusSMStateTransportFaultConditionTransportFaultConditionHandlerResolveInstanceIDsInterfaces de service
VerificationStatusVerificationStatusConfigurationByDataIdVerificationStatusConfigurationByFreshnessIdClasses
<Field><Field> (<SI-Namespace>::skeleton::fields)<FnFMethod><Method><SI>Proxy<SI>Skeleton<Trigger><Trigger> (<SI-Namespace>::skeleton::triggers)ComE2EErrorDomainComE2EExceptionComErrorDomainComExceptionComSecOcFvmErrorDomainComSecOcFvmExceptionFindServiceHandleFVContainerFVMInstanceIdentifierSamplePtrServiceIdentifierTypeServiceVersionTypeFonctions
GetComE2EErrorDomainGetComErrorDomainGetComSecOcFvmErrorDomainMakeErrorCodeMakeErrorCode (ara::com)MakeErrorCode (ara::com::e2e)ResolveInstanceIDsTypes
EventReceiveHandlerFieldReceiveHandlerFindServiceHandlerInstanceIdentifierContainerSampleAllocateePtrServiceHandleContainerServiceStateHandlerSubscriptionStateChangeHandlerTransportFaultConditionHandlerTriggerReceiveHandlerÉnumérations
ComE2EErrcComErrcComSecOcFvmErrcMethodCallProcessingModeProfileCheckStatusServiceStateSMStateSubscriptionStateTransportFaultConditionInterfaces de service
VerificationStatusVerificationStatusConfigurationByDataIdVerificationStatusConfigurationByFreshnessIdCarte des thèmes
ara::com
22Aucune donnée d'élément pour cette version
<SI-Namespace>::proxy
Service Interface Proxy
<SI-Namespace>::proxy::fields
Service proxy Field class, one for each Field defined in the ServiceInterface in the role field.
<SI-Namespace>::proxy::methods
Service proxy fire-and-forget method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget==TRUE) defined in the S
Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterfac
<SI-Namespace>::proxy::triggers
Service proxy Trigger class, one for each Trigger defined in the ServiceInterface in the role trigger.
<SI-Namespace>::skeleton
Service skeleton class
<SI-Namespace>::skeleton::fields
Service skeleton Field class, one for each Field defined in the ServiceInterface in the role field.
<SI-Namespace>::skeleton::triggers
Service skeleton Trigger class, one for each Trigger defined in the ServiceInterface in the role trigger.
apext::com::secoc
Defines a class representing the SecOc Freshness Value Manager error domain
hérite de ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the SecOc Freshness Value Manager
hérite de ara::core::Exception
A container to hold the length of freshness value in bits and the freshness value itself
A freshness value management interface to be implemented by the OEM/stack vendor
Returns a reference to the apext::com::secoc::ComSecOcFvmErrorDomain object
constexpr const ara::core::ErrorDomain & GetComSecOcFvmErrorDomain () noexcept;Creates an instance of ara::core::ErrorCode
constexpr ara::core::ErrorCode MakeErrorCode (apext::com::secoc::Com SecOcFvmErrc errorCode, ara::core::ErrorDomain::SupportDataType data) noexcept;Defines the error codes for the apext::com::secoc::ComSecOcFvmErrorDomain
enum class ComSecOcFvmErrc : ara::core::ErrorDomain::CodeType {...};ara::com
Defines a class representing the Communication error domain.
hérite de ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the API.
hérite de ara::core::Exception
The exact definition of ara::com::FindServiceHandle is Communication Management implementation specific
Unique identifier of a specific AdaptivePlatformServiceInstance, to distinguish different instances of exactly the same service
Emulates a std::unique_ptr to an event sample. The ara::com::SamplePtr behaves as a std::unique_ptr as long as the event/ field is subscrib ≙ std::unique_ptr
Specifies a Service Identifier The exact type may be overridden by the Communication Management software provider
Specifies a Service Version
Returns a reference to the ara::com::ComErrorDomain object
constexpr const ara::core::ErrorDomain & GetComErrorDomain () noexcept;Creates an instance of ara::core::ErrorCode
constexpr ara::core::ErrorCode MakeErrorCode (ara::com::ComErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Defines the error codes for the ara::com::ComErrorDomain
enum class ComErrc : ara::core::ErrorDomain::CodeType {...};Processing modes for the service implementation.
enum class MethodCallProcessingMode : std::uint8_t {...};The state of the service from GetServiceState()
enum class ServiceState : std::uint8_t {...};The subscription state of an event.
enum class SubscriptionState : std::uint8_t {...};Callback function invoked if new event data arrives for an event. The event receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function
using EventReceiveHandler = std::function<void()>;Callback function invoked if a new notification arrives for a field. The field receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function
using FieldReceiveHandler = std::function<void()>;Callback function invoked if service availability changes. It takes as input parameter a handle container containing handles for all matching service instances and a ara::com:: FindServiceHandle which can be used to invoke StopFindService() from within the ara::com::FindServiceHandler.
using FindServiceHandler = std::function<void(ServiceHandle Container<T>, FindServiceHandle)>;Holds a list of ara::com::InstanceIdentifiers. The assigned data type is allowed to be changed by the Communication Management software provider, but must adhere to [container.requirements.general] and [sequence.reqmts] requirements as per [30] A ara::core::Vector ([SWS_CORE_01301]) for example fulfills these requirements.
using InstanceIdentifierContainer = ara::core::Vector<Instance Identifier>;Pointer to an allocated (by Communication Management) data sample. The implementation is allowed to be changed by the Communication Management software provider.
using SampleAllocateePtr = std::unique_ptr<T>;Holds a list of service handles and is used as a return value of any of the FindService() methods) • [SWS_CM_00122] • [SWS_CM_00622] . The assigned data type is allowed to be changed by the Communication Management software provider, but must adhere to [container.requirements.general] and [sequence.reqmts] requirements as per [30]. A ara::core::Vector ([SWS_CORE_ 01301]) for example fulfills these requirements.
using ServiceHandleContainer = ara::core::Vector<T>;Functor used as input arguments for any of the SetServiceStateChangeHandler() methods: • [SWS_CM_01074] • [SWS_CM_01076]
using ServiceStateHandler = std::function<void(ServiceState)>;Callback function invoked if ara::com::SubscriptionState of an event has changed.
using SubscriptionStateChangeHandler = std::function<void(Subscription State)>;A function wrapper for the handler function that gets called in case a new trigger arrives for an event. The trigger receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function
using TriggerReceiveHandler = std::function<void()>;ara::com::e2e
Defines a class representing the E2E error domain
hérite de ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the E2E APIs
hérite de ara::core::Exception
Returns a reference to the ara::com::e2e::ComE2EErrorDomain object
constexpr const ara::core::ErrorDomain & GetComE2EErrorDomain () noexcept;Creates an instance of ara::core::ErrorCode
constexpr ara::core::ErrorCode MakeErrorCode (ara::com::e2e::ComE2 EErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Defines the error codes for the ara::com::e2e::ComE2EErrc
enum class ComE2EErrc : ara::core::ErrorDomain::CodeType {...};The result of the check of a single ara::com::SamplePtr
enum class ProfileCheckStatus : std::uint8_t {...};The state of the E2E supervision after the most recent check of a received sample of the event. If ara::com::e2e::SMState == kValid, and the ara::com::SamplePtr:: GetProfileCheckStatus did not result in an Error then, the last checked sample can be used.
enum class SMState : std::uint8_t {...};Defines the TransportFaultCondition which represent a single transport-related fault event
enum class TransportFaultCondition : std::uint8_t {...};Handler type to be called when one or more (determined by the value of the std::size_t) fault conditions are detected ≙ std::size_t
using TransportFaultConditionHandler = std::function<void(Transport FaultCondition, std::size_t)>;ara::com::runtime
Translates an ara::core::InstanceSpecifier to a ara::com:: InstanceIdentifierContainer. The length/size of the ara::com:: InstanceIdentifierContainer is relative to the number of matches.
ara::core::Result< ara::com::InstanceIdentifierContainer > Resolve InstanceIDs (ara::core::InstanceSpecifier metaModelIdentifier) noexcept;Interfaces de service
Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).
Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).
Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).
Verwandte Komponenten in anderen Universen
function: 179 class: 20 type alias: 20 variable: 13 enumeration: 10 struct: 4 service method: 2 header file: 1 service event: 1
Namespaces
- <SI-Namespace>::proxy 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::proxy::fields 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::proxy::methods 2 Klassen, 0 freie Funktionen
- <SI-Namespace>::proxy::triggers 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::skeleton 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::skeleton::fields 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::skeleton::triggers 1 Klassen, 0 freie Funktionen
- apext::com::secoc 4 Klassen, 2 freie Funktionen
- ara::com 7 Klassen, 2 freie Funktionen
- ara::com::e2e 2 Klassen, 2 freie Funktionen
- ara::com::runtime 0 Klassen, 1 freie Funktionen
Interfaces de service (modélisées via ara::com)
- VerificationStatus 1 Mitglieder
- VerificationStatusConfigurationByDataId 1 Mitglieder
- VerificationStatusConfigurationByFreshnessId 1 Mitglieder
Diagramme de classes UML du module
Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original allemand