DEENESPTFRRUARHIKOZHNL

classe <SI-Namespace>::skeleton:: events::<Event>

Guia do utilizadorGERADO POR IA

Permite aos fornecedores de serviços o envio de eventos do lado do servidor para aplicações subscritoras.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 61a657b4f5c6 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Permite aos fornecedores de serviços o envio de eventos do lado do servidor para aplicações subscritoras.

A classe <SI-Namespace>::skeleton::events::<Event> serve para que os fornecedores de serviços na AUTOSAR Adaptive Platform publiquem dados de eventos para aplicações subscritoras. Os eventos podem ser transmitidos com base em cópia ou, de forma eficiente e sem cópia, através de buffers pré-alocados via Allocate() ([SWS_CM_90438]). A chamada de envio através de Send() exige obrigatoriamente que a respetiva instância de serviço tenha sido previamente oferecida com sucesso e que o intervalo mínimo de envio configurado seja respeitado ([SWS_CM_00162]).

Contexto

A classe <SI-Namespace>::skeleton::events::<Event> representa a interface do lado do servidor para a publicação de eventos de um serviço no âmbito da AUTOSAR Adaptive Platform. Permite que uma aplicação de serviço (Skeleton) transmita assincronamente dados de eventos atualizados do tipo SampleType ([SWS_CM_11400]) para todas as aplicações clientes subscritoras ([SWS_CM_00162]). O Skeleton interage diretamente com a camada de comunicação (Communication Management), que assume a localização de instâncias de serviço e a distribuição física dos dados de eventos. Além do envio de dados, a instância de Event monitoriza o estado atual da subscrição e comunica alterações no círculo de subscritores ao fornecedor do serviço ([SWS_CM_12008], [SWS_CM_12011]).

EventKontext Application Anwendungs-Skeleton Event <SI-Namespace>::skeleton::events::<Event> Application->Event Send() / Allocate() Event->Application SubscriptionState ComMgt Communication Management Event->ComMgt Datenweitergabe ComMgt->Event Abonnement-Zustand Subscribers Abonnierende Anwendungen ComMgt->Subscribers Event-Verteilung

Diagrama de contexto: interação da classe Event com o fornecedor do serviço, o Communication Management e os subscritores. Fontes: [SWS_CM_00162], [SWS_CM_90437], [SWS_CM_12011]

Ciclo de vida

A instanciação da classe Event ocorre em conjunto com a instância de serviço Skeleton de nível superior. Presumivelmente, o tempo de vida da instância de Event está estritamente vinculado ao tempo de vida do Skeleton, de modo que um objeto de evento só se torna utilizável após a construção do serviço e termina com a sua destruição. Antes de uma transmissão ativa de dados, o serviço tem de ter sido oferecido, uma vez que as tentativas de transmissão antes da oferta do serviço falham ([SWS_CM_00162]). Pergunta Q-4e733f93c853a3eb (aberta)

Durante a fase de funcionamento, a instância reflete o estado das ligações dos subscritores. Através de GetSubscriptionState(), é possível consultar o estado atual ([SWS_CM_12011]). Para reagir de forma assíncrona a alterações de estado, a aplicação regista um callback correspondente através de SetSubscriptionStateChangeHandler() ([SWS_CM_12008]), opcionalmente associado a um contexto de execução específico através de um objeto executor ([SWS_CM_12009]). Ao terminar ou reconfigurar o serviço, este manipulador pode ser desselecionado/cancelado através de UnsetSubscriptionStateChangeHandler() ([SWS_CM_12010]). Todas as consultas de estado e métodos de manipulador estão declarados como noexcept e garantem segurança contra exceções ([SWS_CM_12008], [SWS_CM_12011]).

Caminho de utilização

Para a publicação de dados de Event, a aplicação de serviço tem à sua disposição dois modos principais de transmissão: a transmissão baseada em cópia e o procedimento zero-copy através de memória gerida (EXP ara::com API p. 10).

No caminho de utilização regular, o fornecedor do serviço regista primeiro, se necessário, um callback para alterações de subscrição ([SWS_CM_12008]). Assim que existirem subscritores, a aplicação cria dados locais e passa-os por valor para Send() ([SWS_CM_00162]), cabendo ao Communication Management criar uma cópia dos dados e encaminhá-la para todos os subscritores (EXP ara::com API p. 10).

Alternativamente, para evitar custos de cópia, a aplicação solicita um buffer de memória sob a forma de um ara::com::SampleAllocateePtr<SampleType> diretamente à camada de comunicação através de Allocate() ([SWS_CM_90438], EXP ara::com API p. 10). Após o preenchimento do buffer, este é transmitido através da sobrecarga especializada de Send() ([SWS_CM_90437]). Interpretação: com o envio, a propriedade da memória deverá passar integralmente para o Communication Management, uma vez que é expressamente proibido à aplicação qualquer acesso posterior aos dados após a chamada ([SWS_CM_90437]). Pergunta Q-86aba8c6f9bf42e9 (aberta)

Fluxo de transmissão de eventos no skeletonAnwendung (Skeleton)Event-ObjektCommunication ManagementUse Case: Handler-RegistrierungSetSubscriptionStateChangeHandler(handler)Abonnement-Handler registrierenUse Case: Variante 1: Transmissão zero-copy com AllocateAllocate()Speicherpuffer reservierenSampleAllocateePtrSampleAllocateePtrPufferdaten schreibenSend(ptr)Transmitir dados aos assinantesResult<void>Result<void>Use Case: Variante 2: Transmissão baseada em cópiaSend(data)Criar cópia e transmitirResult<void>Result<void>

Diagrama de sequência: fluxo típico da transmissão de eventos, incluindo registo de manipulador e alocação. Fontes: [SWS_CM_12008], [SWS_CM_90438], [SWS_CM_90437], [SWS_CM_00162]

Cenários de erro

As chamadas de Send() retornam um ara::core::Result<void> que, em caso de erro, contém um código de erro correspondente do tipo ara::com::ComErrc ([SWS_CM_00162], [SWS_CM_90437]). Entre os casos de erro definidos incluem-se:

  • ComErrc::kServiceNotOffered: o serviço ainda não foi disponibilizado via OfferService() antes da tentativa de envio ([SWS_CM_00162], [SWS_CM_90437]).
  • ComErrc::kMinimumSendIntervalViolationError: o intervalo mínimo de envio configurado para o evento (minimumSendInterval) não foi respeitado, pois as chamadas de envio foram emitidas em sucessão rápida demais ([SWS_CM_00162], [SWS_CM_90437]).

Adicionalmente, devem ser observadas pré-condições na alocação e na configuração do tratador:

  • Allocate() não é seguro contra exceções (not exception safe) e, em caso de recursos de memória insuficientes, resulta em um SampleAllocationViolation ou, no caso de uso indevido de alocadores definidos pelo usuário, em um AllocateUsageViolation ([SWS_CM_90438]).
  • SetSubscriptionStateChangeHandler() requer um objeto de função válido e chamável; se um tratador nulo ou inexistente for passado, isso resulta em um InvalidHandlerViolation ([SWS_CM_12008], [SWS_CM_12009]).

Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11.

Mapa de membros

Diagrama de classes

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

G n_SI_Namespace___skeleton___events___Event_831 <Event> + Allocate() + Send() + GetSubscriptionState() + SetSubscriptionStateChangeHandler() + UnsetSubscriptionStateChangeHandler()

Vista de detalhes

Selecione uma entrada no índice.

Métodos

Allocate função

Allocating data for event transfer when Communication Management is responsible for the data.

Query ara::com::SubscriptionState of an event.

ara::com::SubscriptionState GetSubscriptionState () const noexcept;
Send função 2

Send event where the application is responsible for the data. The Communication Management creates a copy of the data to send and sends it to all subscribing applications.

Sobrecargas Send 2
ara::core::Result< void > Send (<SSampleDerivedType> data) noexcept; SWS_CM_00162
ara::core::Result< void > Send (ara::com::SampleAllocateePtr< Sample Type > data) noexcept; SWS_CM_90437

Set/Register ara::com::SubscriptionState change handler

Sobrecargas SetSubscriptionStateChangeHandler 2
void SetSubscriptionStateChangeHandler (ara::com::SubscriptionState ChangeHandler handler) noexcept; SWS_CM_12008
template <typename ExecutorT> void SetSubscriptionStateChangeHandler (ara::com::SubscriptionState ChangeHandler handler, ExecutorT &&executor) noexcept; SWS_CM_12009

Unset/Deregister the ara::com::SubscriptionState change handler

void UnsetSubscriptionStateChangeHandler () noexcept;

Aliases de tipo

SampleType alias de tipo

Data type for the value of an event sample (the CppImplementationDataType of the Event, i.e. for the CppImplementationDataType which is either referenced by the VariableDataPrototype in the role type directly or via the indirection of a DataTypeMap)

using SampleType = <SSampleCppidt>;

Documentação dos métodos

função Allocate [SWS_CM_90438] Upstream: RS_CM_00201, RS_AP_00114, RS_AP_00115, RS_AP_00120

ara::com::SampleAllocateePtr< SampleType > Allocate ();

Allocating data for event transfer when Communication Management is responsible for the data.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: fc3608719061 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O método Allocate é chamado no nível do skeleton para um evento ([SWS_CM_90438]; AUTOSAR_AP_EXP_ARAComAPI §5.4.1 «Skeleton Class API’s»), a fim de alocar memória para a transmissão de dados de eventos quando o Communication Management (ara::com) é responsável pelo gerenciamento dos dados ([SWS_CM_90438]). Ele retorna uma instância do tipo ara::com::SampleAllocateePtr<SampleType> ([SWS_CM_90438]). Esse tipo de ponteiro comporta-se conceitualmente como um std::unique_ptr<T>, de modo que apenas uma parte é proprietária do ponteiro em qualquer momento (ARAComAPI §6 «Event Allocate/Send sample Binding implementer hint»).

Em relação ao tratamento de erros e segurança contra exceções, Allocate é especificado como not exception safe ([SWS_CM_90438]). A especificação define duas violações possíveis (Violations):

  • SampleAllocationViolation: Não há recursos de memória suficientes disponíveis para alocar os dados ([SWS_CM_90438]).
  • AllocateUsageViolation: A alocação ocorreu indevidamente por meio de um alocador definido pelo usuário ([SWS_CM_90438]).

O conceito por trás de Allocate visa primariamente o suporte a mecanismos de zero-copy, em particular no transporte IPC baseado em memória compartilhada, pressupondo-se uma sincronização estrita entre leitores e escritores (ARAComAPI §6 «Event Allocate/Send sample Binding implementer hint»). Os implementadores devem observar que requisitos de serialização podem inviabilizar o zero-copy, caso tipos de dados não estejam configurados como binariamente compatíveis no deployment ou uma lógica de detecção exclua isso (ARAComAPI §6 «Event Allocate/Send sample Binding implementer hint»).

Na interação com o envio de eventos, o ponteiro de memória obtido via Allocate é passado para Send(ara::com::SampleAllocateePtr<SampleType> data) ([SWS_CM_90437]). Após a chamada de Send, a aplicação de serviço não deve mais acessar os dados assim que o Communication Management transmitir os dados a todas as aplicações subscritoras ([SWS_CM_90437]).

Este texto foi criado por uma IA e baseia-se exclusivamente nos documentos de especificação da release R25-11 do AUTOSAR.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitnot exception safe
Verletzungen (Violations)SampleAllocation- Not enough memory resources can be allocated Violation AllocateUsageVio- The allocation was illegally done via custom allocator lation

Rückgabewert

TypBeschreibung
ara::com::SampleA ara::com::SampleAllocateePtr to an event sample AllocateePtr< Sample Type >

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

Record
AUTOSAR/AP/record/SWS_CM_90438
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_90438@rel:R25-11#b11846d9
Content hash
b11846d9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_90438
Status: valid/unmigrated Version: rel:R25-11#3059e6d8 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_90438@rel:R25-11#3059e6d8
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#b02a325f2026-09-30
  • R19-11rel:R19-11#b404edd72026-10-14
  • R20-11rel:R20-11#8f3783f62026-10-14
  • R21-11rel:R21-11#a234befb2026-10-14
  • R22-11rel:R22-11#340e44dd2026-10-14
  • R23-11rel:R23-11#340e44dd2026-10-14
  • R24-11rel:R24-11#2e4120f42026-10-14
  • R25-11rel:R25-11#3059e6d82026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

função GetSubscriptionState [SWS_CM_12011]

ara::com::SubscriptionState GetSubscriptionState () const noexcept;

Query ara::com::SubscriptionState of an event.

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe

Rückgabewert

TypBeschreibung
ara::com::SubscriptionStateThe state of the subscription (as per [SWS_CM_12008]).

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

Record
AUTOSAR/AP/record/SWS_CM_12011
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_12011@rel:R25-11#4edd9146
Content hash
4edd9146
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_12011
Status: valid/unmigrated Version: rel:R25-11#dec03137 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_12011@rel:R25-11#dec03137
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#83254be02026-09-30
  • R23-11rel:R23-11#ca04b0b12026-10-14
  • R24-11rel:R24-11#504de02a2026-10-14
  • R25-11rel:R25-11#dec031372026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

função Send [SWS_CM_00162] Upstream: RS_CM_00201, RS_AP_00114, RS_AP_00121

ara::core::Result< void > Send (<SSampleDerivedType> data) noexcept;

Send event where the application is responsible for the data. The Communication Management creates a copy of the data to send and sends it to all subscribing applications.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b00b88b264c7 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função [SWS_CM_00162] serve, no lado do provedor de serviço dentro de <SI-Namespace>::skeleton::events::<Event>, para o envio de dados de eventos para todas as aplicações assinantes. Nesta variante, a responsabilidade pela alocação de dados permanece inteiramente com a aplicação usuária. O objeto de dados é passado através do parâmetro data, após o que a implementação de binding cria uma cópia interna durante a chamada (ARAComAPI, Figure 6.17 «BrakeEvent Class»). Após o retorno da chamada síncrona do método, a aplicação pode modificar ou liberar imediatamente a área de memória original.

O método está declarado com noexcept e especificado como seguro contra exceções. Ele retorna um ara::core::Result<void>, o qual em caso de sucesso contém void e em caso de erro reporta códigos de erro de [SWS_CM_10432] ([SWS_CM_00162]):

  • ComErrc::kServiceNotOffered: ocorre quando a instância de serviço ainda não foi disponibilizada via OfferService().
  • ComErrc::kMinimumSendIntervalViolationError: Ocorre quando a requisição de envio foi emitida mais rapidamente do que o intervalo mínimo de envio configurado (ServiceInterfaceDeploymentElement.minimumSendInterval).

Ao contrário da alternativa zero-copy [SWS_CM_90437], que pressupõe ponteiros do tipo ara::com::SampleAllocateePtr obtidos via Allocate(), esta chamada não exige vinculação de memória ao framework. O mesmo comportamento de transmissão e as mesmas condições de erro também se aplicam, de acordo com [SWS_CM_00119], ao método de atualização Update de campos.

Esta nota de utilização foi gerada automaticamente com base na especificação.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
dataThe data to send out to the subscribed applications.

Rückgabewert

TypBeschreibung
ara::core::Result< void >• If successful: an ara::core::Result containing a ara:: core::Result::value_type containing a void • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: com::ComErrc

Fehler

FehlercodeBeschreibung
ComErrc::kServiceNotOfferedrollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationErrorrollback_semantics Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement. minimumSendInterval for the service instance element has not yet expired.

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

Record
AUTOSAR/AP/record/SWS_CM_00162
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_00162@rel:R25-11#27a150dd
Content hash
27a150dd
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_00162
Status: valid/unmigrated Version: rel:R25-11#ba1342ed Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_00162@rel:R25-11#ba1342ed
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#862d13312026-09-30
  • R19-11rel:R19-11#13bfaa4c2026-10-14
  • R20-11rel:R20-11#1f8e5ce62026-10-14
  • R21-11rel:R21-11#dda704792026-10-14
  • R22-11rel:R22-11#d72ec9682026-10-14
  • R23-11rel:R23-11#eda889842026-10-14
  • R24-11rel:R24-11#ec951a632026-10-14
  • R25-11rel:R25-11#ba1342ed2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

função Send [SWS_CM_90437] Upstream: RS_CM_00201, RS_AP_00114, RS_AP_00121

ara::core::Result< void > Send (ara::com::SampleAllocateePtr< Sample Type > data) noexcept;

Send event where Communication Management is responsible for the data. The data is allocated using Allocate(). The application is not allowed to access the data after Communication Management sends it to all subscribing applications.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b8026be0eee1 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

O método Send é chamado em uma instância de evento no esqueleto de serviço (<SI-Namespace>::skeleton::events::<Event>) ([SWS_CM_90437]). Ele transmite dados de evento pelos quais o Communication Management é responsável pelo gerenciamento de memória. O parâmetro data do tipo ara::com::SampleAllocateePtr<SampleType> deve ter sido obtido previamente via Allocate() ([SWS_CM_90437]). Esse tipo de ponteiro comporta-se semanticamente como um std::unique_ptr, transferindo a propriedade dos dados para a camada de comunicação durante a chamada (ARAComAPI §6.17 «BrakeEvent Class»). Após a entrega, é proibido qualquer acesso adicional aos dados pela aplicação emissora ([SWS_CM_90437]).

Tratamento de erros e condições de contorno

A função é declarada como noexcept e retorna um ara::core::Result<void> ([SWS_CM_90437]). Se o envio falhar, o resultado conterá um código de erro de ara::com::ComErrc ([SWS_CM_10432]):

  • ComErrc::kServiceNotOffered: O serviço correspondente ainda não foi disponibilizado previamente com OfferService() ([SWS_CM_90437]).
  • ComErrc::kMinimumSendIntervalViolationError: O intervalo mínimo de envio configurado para o elemento de serviço (minimumSendInterval) ainda não decorreu desde a última transmissão ([SWS_CM_90437]).

Ambos os casos de erro possuem semântica de rollback ([SWS_CM_90437]). Antes da chamada, o serviço deve, portanto, ter sido obrigatoriamente oferecido, e chamadas consecutivas de envio devem respeitar o intervalo mínimo configurado.

Interação e otimização

Em comparação com a assinatura [SWS_CM_00162], na qual dados gerenciados pela aplicação são passados e copiados pelo Communication Management, esta variante visa a comunicação zero-copy via memória compartilhada (Shared Memory) (ARAComAPI §6.18 «Event Allocate/Send sample»). Para isso, pressupõe-se uma sincronização estrita entre escritores e leitores, devendo-se observar possíveis requisitos de serialização entre os parceiros de comunicação (ARAComAPI §6.18 «Event Allocate/Send sample»).

Nota: Esta nota de uso foi criada automaticamente com base no status de especificação R25-11.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
datathe data to send.

Rückgabewert

TypBeschreibung
ara::core::Result< void >• If successful: an ara::core::Result containing a ara:: core::Result::value_type containing a void • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: com::ComErrc

Fehler

FehlercodeBeschreibung
ComErrc::kServiceNotOfferedrollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationErrorrollback_semantics Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement. minimumSendInterval for the service instance element has not yet expired.

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

Record
AUTOSAR/AP/record/SWS_CM_90437
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_90437@rel:R25-11#85ede2d3
Content hash
85ede2d3
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_90437
Status: valid/unmigrated Version: rel:R25-11#b7d5aba8 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_90437@rel:R25-11#b7d5aba8
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#396a1de42026-09-30
  • R19-11rel:R19-11#943893002026-10-14
  • R20-11rel:R20-11#a05235692026-10-14
  • R21-11rel:R21-11#928b87cd2026-10-14
  • R22-11rel:R22-11#7fc4ccbc2026-10-14
  • R23-11rel:R23-11#7b2bb5e12026-10-14
  • R24-11rel:R24-11#0010eeba2026-10-14
  • R25-11rel:R25-11#b7d5aba82026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

função SetSubscriptionStateChangeHandler [SWS_CM_12008]

void SetSubscriptionStateChangeHandler (ara::com::SubscriptionState ChangeHandler handler) noexcept;

Set/Register ara::com::SubscriptionState change handler

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ae7a884485e1 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função SetSubscriptionStateChangeHandler registra no escopo do skeleton (skeleton::events) um manipulador de callback para monitorar o status de assinatura de um evento [SWS_CM_12008]. O parâmetro handler deve ser um objeto chamável de acordo com o tipo SubscriptionStateChangeHandler conforme [SWS_CM_00311]. O método não retorna nenhum valor e é especificado como noexcept [SWS_CM_12008].

O Communication Management chama o manipulador registrado assim que o status de assinatura do evento é alterado [SWS_CM_12012]. No lado do skeleton, isso ocorre com o estado kSubscribed assim que o número de assinaturas ativas se torna maior que zero [SWS_CM_12013], ou com kNotSubscribed quando não há mais assinaturas ativas presentes [SWS_CM_12014] SWS CommunicationManagement §7.5.4 «Query Service Event Subscription State on Skeleton side».

Tratamento de erros e simultaneidade

A operação é classificada como exception safe [SWS_CM_12008]. Se o chamável passado for inválido ou nulo, ocorre um InvalidHandlerViolation [SWS_CM_12008]. Interpretação: Como a função não lança exceções nem retorna um código de erro, essa violação de especificação provavelmente deve ser interceptada por mecanismos de tempo de execução específicos da plataforma. Pergunta Q-a7b7b54f0d538b40 (aberta)

O manipulador pode ser sobrescrito em tempo de execução [SWS_CM_12012]. Para a execução em um contexto de thread ou de tarefa dedicado, existe a sobrecarga com o parâmetro de template executor [SWS_CM_12009]. Um registro análogo para elementos de gatilho do skeleton é definido por [SWS_CM_01110].

Este texto foi gerado por uma IA com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe
Verletzungen (Violations)InvalidHandlerVio- Provided Callable handler does not exist or is null lation

Parameter (in)

ParameterBeschreibung
handlerThe handler (as per [SWS_CM_00311]) that shall be called by Communication Management as soon as the ara::com:: SubscriptionState of the event has changed.

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_CM_12008
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_12008@rel:R25-11#4af70871
Content hash
4af70871
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_12008
Status: valid/unmigrated Version: rel:R25-11#e64cfb4e Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_12008@rel:R25-11#e64cfb4e
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#5a03f4292026-09-30
  • R23-11rel:R23-11#d6b69d732026-10-14
  • R24-11rel:R24-11#a914158e2026-10-14
  • R25-11rel:R25-11#e64cfb4e2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

função SetSubscriptionStateChangeHandler [SWS_CM_12009]

template <typename ExecutorT> void SetSubscriptionStateChangeHandler (ara::com::SubscriptionState ChangeHandler handler, ExecutorT &&executor) noexcept;

As per [SWS_CM_12008] but the method shall execute in a provided context

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: db9c8806b4e9 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de template SetSubscriptionStateChangeHandler serve, ao nível do skeleton ([SWS_CM_12009]) no espaço de nomes de um evento, para o registo de um callback para alterações de estado de subscrições recebidas. Em comparação com a função de base sem executor ([SWS_CM_12008]), esta aceita adicionalmente um contexto de execução (executor) no qual o handler registado é executado ([SWS_CM_12009]). A função não possui valor de retorno, está declarada como noexcept e é considerada segura contra exceções ([SWS_CM_12009]).

Relativamente ao comportamento face a erros, a passagem de um callable inválido ou nulo resulta num InvalidHandlerViolation ([SWS_CM_12009]). O handler registado pode ser substituído a qualquer momento em tempo de execução da aplicação através de uma nova chamada ([SWS_CM_12012]).

O Communication Management chama o handler assim que o estado das subscrições para o respetivo evento se altera (SWS CommunicationManagement §7.5.4 «Query Service Event Subscription State on Skeleton side», [SWS_CM_12012]):

  • A chamada ocorre com o estado kSubscribed quando o número de subscrições ativas aumenta de zero para mais de zero ([SWS_CM_12013]).
  • Se o número de subscritores ativos voltar a descer para zero, o handler é notificado com kNotSubscribed ([SWS_CM_12014]).

Interpretação: Através da passagem de executor, a execução do handler deverá ser vinculada de forma direcionada a contextos de thread ou de dispatching próprios da aplicação ([SWS_CM_12009]), a fim de separar de forma limpa a notificação concorrente do código do skeleton relativamente às threads de comunicação internas. Pergunta Q-b11f3bc97069f2ec (aberta)

Este texto foi criado por uma IA e baseia-se nas especificações do Release R25-11.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe
Verletzungen (Violations)InvalidHandlerVio- Provided Callable handler does not exist or is null lation

Template-Parameter

ParameterBeschreibung
ExecutorTAs per [SWS_CM_11360]

Parameter (in)

ParameterBeschreibung
handlerAs per [SWS_CM_12008]
executorAs per [SWS_CM_11360]

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_CM_12009
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_12009@rel:R25-11#6f3b1440
Content hash
6f3b1440
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_12009
Status: valid/unmigrated Version: rel:R25-11#2c78e37d Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_12009@rel:R25-11#2c78e37d
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#9ab0c0f92026-09-30
  • R23-11rel:R23-11#35fb91a02026-10-14
  • R24-11rel:R24-11#7040342f2026-10-14
  • R25-11rel:R25-11#2c78e37d2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

função UnsetSubscriptionStateChangeHandler [SWS_CM_12010]

void UnsetSubscriptionStateChangeHandler () noexcept;

Unset/Deregister the ara::com::SubscriptionState change handler

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 7e38e0032e54 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função UnsetSubscriptionStateChangeHandler serve, no nível do skeleton no namespace ::skeleton::events::{<event-name>}, para cancelar o registro de um manipulador de alteração de estado previamente registrado para o ara::com::SubscriptionState de um evento [SWS_CM_12010]. A função não recebe parâmetros de entrada e não fornece valor de retorno (void) [SWS_CM_12010]. A inclusão ocorre por meio do cabeçalho #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" [SWS_CM_12010].

Em relação ao comportamento de exceção, o método é declarado com noexcept e especificado como seguro contra exceções (exception safe) [SWS_CM_12010]. Não são retornados códigos de erro específicos nem lançadas exceções em C++ [SWS_CM_12010]. Interpretação: eventuais estados de erro internos durante o cancelamento do registro provavelmente são interceptados internamente pelo gerenciamento de comunicação, uma vez que a assinatura não prevê feedback de erro. Pergunta Q-7e986a15e552ca19 (aberta)

Na interação com interfaces relacionadas, existem funções análogas para o cancelamento de registro de manipuladores:

Este texto foi criado por uma IA e baseia-se no status de especificação AUTOSAR Adaptive Release R25-11.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_CM_12010
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_12010@rel:R25-11#3592d68f
Content hash
3592d68f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_12010
Status: valid/unmigrated Version: rel:R25-11#05477f97 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_12010@rel:R25-11#05477f97
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#e1b9df132026-09-30
  • R23-11rel:R23-11#0217aa9b2026-10-14
  • R24-11rel:R24-11#1066f1922026-10-14
  • R25-11rel:R25-11#05477f972026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

Documentação dos aliases de tipo

alias de tipo SampleType [SWS_CM_11400] Upstream: RS_CM_00201, RS_AP_00114

using SampleType = <SSampleCppidt>;

Data type for the value of an event sample (the CppImplementationDataType of the Event, i.e. for the CppImplementationDataType which is either referenced by the VariableDataPrototype in the role type directly or via the indirection of a DataTypeMap)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
SymbolSampleType

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

Record
AUTOSAR/AP/record/SWS_CM_11400
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_11400@rel:R25-11#6933936f
Content hash
6933936f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_11400
Status: valid/unmigrated Version: rel:R25-11#6376c0a1 Versionshistorie & Revisions (1 transition, 5 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_11400@rel:R25-11#6376c0a1
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#6078d79a2026-09-30
  • R22-11rel:R22-11#9e7787d62026-10-14
  • R23-11rel:R23-11#9e7787d62026-10-14
  • R24-11rel:R24-11#b98c990b2026-10-14
  • R25-11rel:R25-11#6376c0a12026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill