Permite que skeletons de serviço enviem sinais de disparo (triggers) e monitorem o status dos assinantes.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6e97d3082affProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Permite que skeletons de serviço enviem sinais de disparo (triggers) e monitorem o status dos assinantes.
A classe <SI-Namespace>::skeleton::triggers::<Trigger> permite que uma aplicação de servidor envie sinais de disparo a clientes assinantes por meio do Communication Management ([SWS_CM_00721]). Para controle de fluxo, é possível monitorar o status dos assinantes e registrar manipuladores de notificação ([SWS_CM_01109], [SWS_CM_01110]). O acionamento via Send() requer um skeleton de serviço oferecido e sinaliza violações de intervalos mínimos de envio ou erros de rede com os códigos de erro correspondentes ([SWS_CM_00721], [SWS_CM_10517]).
Contexto
A classe de modelo (template) <SI-Namespace>::skeleton::triggers::<Trigger> representa a interface do lado do servidor de um trigger definido dentro de um ServiceInterface na função trigger. Como parte do esqueleto de serviço (skeleton), essa classe serve para que uma instância de serviço envie notificações assíncronas ou sinais de disparo para aplicações cliente assinantes em todo o sistema. Um trigger difere de eventos normais por atuar primariamente como um evento puro de sinalização sem dados úteis complexos, conforme exposto na classificação em EXP_ARAComAPI §3 «Trigger::Send» e SWS_CommunicationManagement §7.2.2.1.4 «Handling Triggers». Os parceiros de interação incluem a aplicação servidora provedora, o middleware Communication Management (ara::com) bem como clientes assinantes conectados pela rede.
Ciclo de vida
A instanciação dos objetos de trigger ocorre tipicamente como parte integrante da instância do skeleton do respectivo ServiceInterface. Antes da utilização ativa, o skeleton deve ser oferecido por meio do Communication Management; se houver uma tentativa de acionar um trigger antes disso, a transmissão falha ([SWS_CM_00721]). A classe gerencia o estado de subscrição dos assinantes via ara::com::SubscriptionState, o qual pode ser consultado a qualquer momento com GetSubscriptionState() ([SWS_CM_01109]). Para o monitoramento assíncrono de estado, é possível registrar um callback por meio de SetSubscriptionStateChangeHandler() ([SWS_CM_01110]). Para arquiteturas concorrentes, existe uma sobrecarga que recebe um executor definido pelo usuário, de modo que as notificações sejam executadas no contexto desejado de thread ou tarefa ([SWS_CM_01111]). O registro pode ser cancelado por meio de UnsetSubscriptionStateChangeHandler() ([SWS_CM_01112]). Todos os métodos da classe oferecem a garantia de exceção noexcept (exception safe).
Caminho de utilização
O fluxo típico para a utilização de um trigger engloba a observação do status de subscrição, bem como o disparo efetivo da transmissão para todos os assinantes ativos:
Registro de manipulador: a aplicação de serviço registra opcionalmente um manipulador de estado por meio de SetSubscriptionStateChangeHandler() ([SWS_CM_01110], [SWS_CM_01111]) para ser informada sobre novos assinantes adicionados.
Verificação de estado: com GetSubscriptionState(), o servidor verifica se há pelo menos um assinante ativo ([SWS_CM_01109]), o que, de acordo com [SWS_CM_10518], constitui o pré-requisito para a requisição de envio.
Envio do trigger: o envio é iniciado por meio da chamada de Send() ([SWS_CM_00721], EXP_ARAComAPI §3 «Trigger::Send»), após o que o Communication Management distribui o sinal a todas as aplicações subscritas.
Cancelamento de registro: durante o desligamento ou quando não forem mais desejadas notificações de estado, UnsetSubscriptionStateChangeHandler() é chamado ([SWS_CM_01112]).
O método Send() retorna um ara::core::Result<void>, por meio do qual são transportados eventuais erros de transmissão e de configuração ([SWS_CM_00721]):
ComErrc::kServiceNotOffered: ocorre quando a instância de serviço ainda não foi disponibilizada via OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: é retornado caso um intervalo mínimo de envio configurado (minimumSendInterval) entre transmissões consecutivas não tenha sido respeitado ([SWS_CM_00721]).
ComErrc::kCommunicationFailure: é reportado quando o envio do trigger falha localmente devido a um erro de rede subjacente ([SWS_CM_10517]).
Manipulador inválido (InvalidHandlerViolation): passar uma chamada de função (callable) inexistente ou vazia para SetSubscriptionStateChangeHandler() representa uma violação das condições contratuais da API ([SWS_CM_01110], [SWS_CM_01111]).
Este guia baseia-se exclusivamente nas especificações da AUTOSAR Adaptive Platform Release R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a3259c7728c6ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método Send transmite um trigger sem dados úteis a todas as aplicações subscritoras ([SWS_CM_00721]). Pertence à classe skeleton <SI-Namespace>::skeleton::triggers::<Trigger> e é disponibilizado através do ficheiro de cabeçalho #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" ([SWS_CM_00721]).
A função está definida como noexcept, é considerada segura contra exceções e não espera parâmetros de transferência ([SWS_CM_00721]). Como tipo de retorno serve ara::core::Result<void> ([SWS_CM_00721]):
Caso de sucesso: O resultado contém um valor vazio (void) e sinaliza o desencadeamento bem-sucedido da transmissão ([SWS_CM_00721]).
Caso de erro: O resultado encapsula um código de erro do domínio ara::com::ComErrc ([SWS_CM_10432]). Erros possíveis com semântica de rollback são:
ComErrc::kServiceNotOffered: O serviço ainda não foi previamente oferecido por meio de OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: Um pedido de transmissão ocorreu antes de decorrido o intervalo mínimo de envio configurado ServiceInterfaceDeploymentElement.minimumSendInterval ([SWS_CM_00721]).
• 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
Fehlercode
Beschreibung
ComErrc::kServiceNotOffered
rollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationError
rollback_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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: d968f8357edfProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função SetSubscriptionStateChangeHandler serve, no lado do skeleton, para registrar uma função de callback para monitoramento de alterações de subscrição em um trigger [SWS_CM_01110]. O método pertence ao namespace <SI-Namespace>::skeleton::triggers::<Trigger> e é disponibilizado através do arquivo de cabeçalho <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h[SWS_CM_01110].
Como parâmetro é passado um objeto de função chamável do tipo SubscriptionStateChangeHandler[SWS_CM_00311][SWS_CM_01110]. A chamada é declarada como noexcept, não retorna nenhum valor e é especificada como segura contra exceções (exception safe) [SWS_CM_01110]. Se o callable de tratador passado não existir ou for nulo, o sistema relata uma InvalidHandlerViolation[SWS_CM_01110].
O Communication Management chama a função de callback registrada assim que o status de subscrição do trigger muda [SWS_CM_01101]:
com o valor de status kSubscribed, assim que a quantidade de subscrições ativas para este trigger se torna maior que 0 [SWS_CM_01102],
com o valor de status kNotSubscribed no lado do skeleton, quando não houver mais assinaturas ativas [SWS_CM_01103].
O tratador registrado pode ser sobrescrito em tempo de execução [SWS_CM_01101]. Se a execução do tratador tiver que ocorrer em um contexto de execução definido, está alternativamente disponível a variante de template sobrecarregada com um parâmetro ExecutorT&&[SWS_CM_01111].
Este texto foi gerado por uma IA com base na especificação AUTOSAR R25-11.
class <SI-Namespace>::skeleton:: triggers::<Trigger>
Exception-Sicherheit
exception safe
Verletzungen (Violations)
InvalidHandlerVio- Provided Callable handler does not exist or is null lation
Parameter (in)
Parameter
Beschreibung
handler
The handler (as per [SWS_CM_00311]) that shall be called by Communication Management as soon as the ara::com:: SubscriptionState of the trigger has changed.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
As per [SWS_CM_12008] but the method shall execute in a provided context
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f69a35ebe8e5ProcedênciaPerguntas 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 registra, no nível do skeleton para triggers ([SWS_CM_01111]), um tratador de callback para alterações do status de subscrição (ara::com::SubscriptionState). Além do parâmetro chamável handler, o método recebe um contexto de execução executor do tipo ExecutorT ([SWS_CM_01111]). A função não possui valor de retorno e é definida no escopo <SI-Namespace>::skeleton::triggers::<Trigger> ([SWS_CM_01111]).
Em contraste com a função básica sem executor ([SWS_CM_01110]), esta assinatura garante que o callback seja executado em um contexto definido pelo usuário ([SWS_CM_01111]). Como na variante baseada em eventos conforme [SWS_CM_12008], a execução é presumivelmente delegada ao objeto executor fornecido, para controlar especificamente o threading dentro da aplicação skeleton. Pergunta Q-ba14993b00a7d972 (aberta)
A interface é especificada como noexcept e segura contra exceções ([SWS_CM_01111]). Caso o chamável fornecido seja inválido ou nulo, há uma InvalidHandlerViolation de acordo com a especificação ([SWS_CM_01111]).
Funcionalmente, o método corresponde às sobrecargas análogas de executor para eventos de skeleton ([SWS_CM_12009]), bem como às correspondências do lado do cliente da interface de proxy ([SWS_CM_01106], [SWS_CM_11354]).
Esta nota de uso foi gerada automaticamente com base nos dados de especificação do AUTOSAR Adaptive R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: d6281d4aa1edProcedênciaPerguntas 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 lado do skeleton para remover um callback previamente registrado para alterações do status de assinatura (SubscriptionState) em um service trigger ([SWS_CM_01112]). Ela é definida no namespace <SI-Namespace>::skeleton::triggers::<Trigger> por meio do cabeçalho <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h ([SWS_CM_01112]).
Uso e semântica: A interface possui a assinatura void UnsetSubscriptionStateChangeHandler() noexcept, não espera parâmetros de entrada e não possui valor de retorno ([SWS_CM_01112]). De acordo com a especificação, ela é classificada como segura contra exceções (exception safe) ([SWS_CM_01112]). Códigos de erro ou mecanismos específicos de relatório (DET/DEM) não estão previstos para esta chamada.
Concorrência e interfaces relacionadas: Em relação à concorrência, presume-se que o cancelamento de registro ocorra de forma síncrona, de modo que nenhuma notificação de estado adicional seja entregue ao manipulador registrado anteriormente após o retorno da chamada de função. Funções análogas de cancelamento de registro são especificadas no lado do skeleton para events ([SWS_CM_12010]), bem como no lado do proxy para events ([SWS_CM_00334]), triggers ([SWS_CM_01108]) e campos ([SWS_CM_11609], AUTOSAR_AP_EXP_ARAComAPI §5.3.1 «Proxy Class API’s»). Pergunta Q-e005c4818e02e52f (aberta)
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão