Serve para a disponibilização de um serviço no lado do servidor e para o processamento de chamadas de método recebidas.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9f566e4418f7ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve para a disponibilização de um serviço no lado do servidor e para o processamento de chamadas de método recebidas.
A classe <SI-Namespace>::skeleton::<SI>Skeleton serve como base no lado do servidor para a disponibilização de um serviço na AUTOSAR Adaptive Platform e conecta eventos, campos e métodos ao middleware. Após a instanciação com um identificador de instância, o serviço é disponibilizado para consumidores na rede por meio de OfferService() e pode ser revogado com StopOfferService()[SWS_CM_00101], [SWS_CM_00111]. Conforme o modo de processamento configurado, as chamadas de método recebidas são processadas com base em eventos ou devem ser disparadas ativamente pela aplicação via polling. Como as operações de cópia foram excluídas, a posse da instância permanece estritamente com a aplicação de serviço criadora.
Contexto
A classe template <SI-Namespace>::skeleton::<SI>Skeleton constitui o endpoint no lado do servidor para disponibilizar uma Service Interface na AUTOSAR Adaptive Platform. Como elo entre a lógica da aplicação e a camada de comunicação, o skeleton encapsula a vinculação específica do middleware e fornece elementos de interface tipados. Para isso, a classe declara variáveis-membro para eventos via events::<Event>[SWS_CM_99557], para campos via fields::<Field>[SWS_CM_99558], para triggers via triggers::<Trigger>[SWS_CM_99559] e para parâmetros de saída de método via <MethodOutArgType>[SWS_CM_11550]. Interpretação: para fornecer a funcionalidade real do serviço, a aplicação de serviço geralmente deriva uma classe concreta de <SI>Skeleton para implementar os métodos da interface. Pergunta Q-0cd48946e67c75b4 (aberta)
Ciclo de vida
A instanciação de um skeleton ocorre mediante a definição da atribuição de instância e do modo de processamento para chamadas de métodos (ara::com::MethodCallProcessingMode, por padrão kEvent). Construtores válidos aceitam um ara::core::InstanceSpecifier[SWS_CM_00152], um ara::com::InstanceIdentifier[SWS_CM_00130] individual ou um conjunto de identificadores por meio de um ara::com::InstanceIdentifierContainer[SWS_CM_00153]. Como a identidade do endpoint de serviço é única, o construtor de cópia [SWS_CM_00134] e o operador de atribuição por cópia [SWS_CM_11548] foram explicitamente excluídos (delete). No entanto, recursos podem ser transferidos por meio do construtor de movimento [SWS_CM_00135] e do operador de atribuição por movimentação [SWS_CM_11549].
Logo após a construção, a instância de serviço é criada localmente, mas ainda não fica visível na rede de comunicação. A publicação para consumidores de serviço ocorre apenas com a chamada de OfferService()[SWS_CM_00101], EXP_ARAComAPI p. 10. Se o serviço não deve mais ser oferecido, StopOfferService() revoga a disponibilização [SWS_CM_00111], EXP_ARAComAPI p. 10. O skeleton pode ser oferecido novamente em seguida ou destruído por meio do destrutor virtual ~<SI>Skeleton()[SWS_CM_11370].
O fluxo regular para disponibilizar um serviço divide-se nas seguintes etapas:
Configuração e registro de handlers: antes da oferta do serviço, handlers específicos da aplicação podem ser registrados. Por meio de SetTransportFaultConditionHandler(), um handler de erro de transporte é registrado diretamente [SWS_CM_00093] ou com um executor dedicado para tarefas assíncronas [SWS_CM_00094]; ele pode ser removido conforme a necessidade via UnsetTransportFaultConditionHandler()[SWS_CM_00095]. Tratamentos de erros End-to-End podem ser sobrescritos por meio do método virtual E2EErrorHandler()[SWS_CM_10470].
Oferta do serviço: a aplicação de serviço chama OfferService()[SWS_CM_00101]. Uma chamada bem-sucedida retorna um ara::core::Result<void> vazio e habilita a instância de serviço na rede.
Processamento de requisições recebidas: se o skeleton foi instanciado no modo MethodCallProcessingMode::kPoll, a aplicação deve executar ativamente as chamadas de cliente pendentes chamando ProcessNextMethodCall()[SWS_CM_00199]. A chamada do método é executada no contexto desta thread; o valor de retorno sinaliza se há outras chamadas pendentes.
Encerramento do serviço: antes da destruição da instância, a oferta é finalizada com StopOfferService()[SWS_CM_00111].
Ao usar a classe skeleton, diversos cenários de erro e pré-condições devem ser observados:
Violações de construção: se a autorização por Grant Enforcement falhar, a construção será abortada com InsufficientPermissionsViolation[SWS_CM_00130], [SWS_CM_00152], [SWS_CM_00153]. A passagem de um modo de processamento inválido resulta em WrongMethodCallProcessingModeViolation. Se um InstanceSpecifier for usado, inconsistências de modelo ou ocupações múltiplas podem provocar os erros InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation ou InstanceSpecifierAlreadyInUseViolation[SWS_CM_00152].
Falha na oferta do serviço: se OfferService() falhar, será retornado um código de erro de ara::com::ComErrc[SWS_CM_00101]: ComErrc::kFieldValueNotInitialized (um campo não foi inicializado previamente via Update()), ComErrc::kFieldSetHandlerNotSet (falta um set-handler obrigatório de um campo) ou ComErrc::kCommunicationFailure (erro de conexão ou segurança da vinculação de rede).
Violação do modo de processamento: uma chamada de ProcessNextMethodCall() gera um WrongMethodCallProcessingModeViolation se o skeleton não tiver sido configurado para kPoll, mas sim para kEvent ou kEventSingleThread[SWS_CM_00199].
Handlers de erro inválidos: se um callable inexistente ou vazio for passado para SetTransportFaultConditionHandler(), isso resultará em InvalidHandlerViolation[SWS_CM_00093], [SWS_CM_00094].
Erros E2E e corrupção de dados: ao receber mensagens com falhas, E2EErrorHandler() é chamado com um ComE2EErrc correspondente [SWS_CM_10470]. Tratando-se de um erro de CRC, o DataID também pode estar corrompido, de modo que a aplicação não deve classificar o identificador passado como confiável.
Erro de destruição: se ainda houver amostras de dados pendentes no momento da destruição do skeleton, o destrutor será abortado com um DanglingSamplesViolation[SWS_CM_11370].
Este guia baseia-se exclusivamente nas especificações da AUTOSAR Adaptive Platform R25-11.
Implementation may be overridden by the actual ServiceSkeleton implementation and it is not required to be reentrant. If the E2E error is a CRC error then some parts of the received message are faulty. If this part is the DataID then the E2E error handler is called with a faulty DataID. Consequently, in case of CRC error the server application can not rely on the DataID received by its error handler.
Allows the service to trigger the execution of the next service consumer method call at a specific point of time if the ara::com::MethodCallProcessingMode == kPoll The pending service method (see [SWS_CM_00191] or [SWS_CM_90434]) is executed in the context of the call to ProcessNextMethodCall().
Implementation may be overridden by the actual ServiceSkeleton implementation and it is not required to be reentrant. If the E2E error is a CRC error then some parts of the received message are faulty. If this part is the DataID then the E2E error handler is called with a faulty DataID. Consequently, in case of CRC error the server application can not rely on the DataID received by its error handler.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a9ce66768cdfProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método OfferService() é chamado em uma instância da classe skeleton para oferecer um serviço disponibilizado no sistema e torná-lo localizável para consumidores por meio do Service Discovery [SWS_CM_00101], ARAComAPI §6.5 «Service Discovery». A chamada ocorre sem parâmetros e de forma síncrona, assim que a implementação do serviço tiver sido completamente instanciada e colocada em estado operacional AUTOSAR_AP_EXP_ARAComAPI §5.4.4 «Offering Service instance». A função está declarada como noexcept e retorna um ara::core::Result<void>[SWS_CM_00101].
A oferta é um pré-requisito obrigatório para a comunicação funcional por meio de métodos, eventos, campos ou gatilhos AUTOSAR_AP_EXP_ARAComAPI §4.2 «Means of Communication». Se, por exemplo, for tentado enviar um gatilho sem oferta prévia, isso falha com ComErrc::kServiceNotOffered[SWS_CM_00721]. Em relação à concorrência, aplica-se o seguinte: assim que OfferService() é chamado, chamadas de método recebidas já podem ser entregues à instância do serviço – mesmo que a chamada de OfferService() ainda não tenha retornado AUTOSAR_AP_EXP_ARAComAPI §5.4.4 «Offering Service instance».
Se a oferta falhar, o ara::core::Result retornado contém um código de erro correspondente de ComErrc[SWS_CM_00101], [SWS_CM_10432]:
ComErrc::kFieldValueNotInitialized: pelo menos um valor de campo configurado ainda não havia sido inicializado antes da oferta [SWS_CM_00101].
ComErrc::kFieldSetHandlerNotSet: para um campo com suporte a setter, ainda não foi registrado nenhum manipulador por meio de RegisterSetHandler()[SWS_CM_00101].
ComErrc::kCommunicationFailure: a vinculação de rede relata um erro de comunicação recuperável ou a falha da comunicação segura [SWS_CM_00101].
• 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:: com::ComErrc
Fehler
Fehlercode
Beschreibung
ComErrc::kFieldValueNotInitialized
rollback_semantics Field value has yet not been initialized via Update() (see [SWS_CM_00128]
ComErrc::kFieldSetHandlerNotSet
rollback_semantics Field SetHandler has not been registered via RegisterSet Handler()
ComErrc::kCommunicationFailure
rollback_semantics The network binding reported a recoverable communications error or a secure communication failure
Request a governed re-review of this record. The record is not changed immediately.
Allows the service to trigger the execution of the next service consumer method call at a specific point of time if the ara::com::MethodCallProcessingMode == kPoll The pending service method (see [SWS_CM_00191] or [SWS_CM_90434]) is executed in the context of the call to ProcessNextMethodCall().
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 34fad791a392ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método ProcessNextMethodCall() destina-se a provedores de serviço no skeleton para processar de forma determinística chamadas de método recebidas no modo polling [SWS_CM_00199]. Ele só pode ser utilizado se a instância do skeleton tiver sido configurada com o modo ara::com::MethodCallProcessingMode::kPollEXP ARAComAPI §2 «Polling».
Utilização e semântica
A função não recebe parâmetros e executa uma requisição pendente de chamada de método de forma síncrona no contexto de thread do chamador [SWS_CM_00199], [SWS_CM_00191]. Isso permite, em especial para aplicações de tempo real, processar requisições de serviço sem trocas descontroladas de contexto de thread dentro de seu orçamento de tempo atribuído EXP ARAComAPI §5.4 «ProcessNextMethodCall». O valor de retorno sinaliza o resultado da consulta:
true: pelo menos uma requisição pendente encontrava-se na fila e foi processada [SWS_CM_00199].
A função está especificada como noexcept e exception safe [SWS_CM_00199]. Uma chamada em um skeleton instanciado com kEvent ou kEventSingleThread representa uma violação (WrongMethodCallProcessingModeViolation) [SWS_CM_00199]. Interpretação: como exceções regulares do C++ são excluídas por noexcept, tal violação deve provavelmente ser tratada pela plataforma como um erro de tempo de execução grave. Pergunta Q-61661dbd6cc37bc7 (aberta)
Este texto foi gerado automaticamente. Todas as informações baseiam-se na especificação AUTOSAR.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5601f5155355ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função SetTransportFaultConditionHandler serve para o registro de um callback do tipo ara::com::e2e::TransportFaultConditionHandler no namespace da classe Skeleton (<SI-Namespace>::skeleton::<SI>) [SWS_CM_00093]. Por meio deste manipulador são reportados erros de transporte para todos os métodos da respectiva instância de serviço AUTOSAR_AP_SWS_CommunicationManagement §7.4.1 «End-to-end communication protection for SOMEIP». A função recebe o objeto invocável handler e não possui valor de retorno (void) [SWS_CM_00093].
Tratamento de erros
A operação está declarada com noexcept e é segura contra exceções (exception safe) [SWS_CM_00093]. Caso a unidade invocável passada não exista ou seja null, é lançado um InvalidHandlerViolation[SWS_CM_00093]. Em caso de erro, o manipulador configurado reporta falhas de transporte ocorridas, como por exemplo TransportFaultCondition::kSampleRejected, quando requisições são descartadas por falta de recursos ou corrupção na camada de transporte AUTOSAR_AP_SWS_CommunicationManagement §7.4.2.3 «Methods».
Simultaneidade e restrições
Interpretação: como esta interface básica não recebe nenhum contexto de execução, o callback provavelmente deve ser chamado de forma síncrona a partir da thread interna do gerenciamento de comunicação. Caso a execução do manipulador deva ocorrer em um pool de threads ou worker definido, deve-se utilizar a sobrecarga com ExecutorT&& executor[SWS_CM_00094]. Pergunta Q-e4007fa72de6aa12 (aberta)
Interação
O registro vincula o tratamento de erros de forma centralizada a todos os métodos de uma instância de Skeleton [SWS_CM_00093]. Ele integra-se ao tratamento de erros de nível superior de ara::com:
Enquanto os métodos de Skeleton reportam erros de transporte através deste manipulador, os métodos de cliente sinalizam falhas de transporte de forma assíncrona através de seu ara::core::Future resultante com ComErrc::kCommunicationFailure[SWS_CM_00090].
Para operações de campo (Get/Set) no nível de Skeleton existem interfaces separadas [SWS_CM_00096].
Execution Context overload for SetTransportFaultConditionHandler for all methods in a given Skeleton.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9140fdcb385aProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função template SetTransportFaultConditionHandler no namespace da classe Skeleton serve para o registro de um handler de erro para erros de transporte de todos os métodos de uma instância de serviço [SWS_CM_00094]. Ela estende a função básica sem parâmetros [SWS_CM_00093] com um contexto de execução:
Chamada e parâmetros: são passados um callable handler do tipo ara::com::e2e::TransportFaultConditionHandler bem como uma referência universal executor[SWS_CM_00094]. Quaisquer computações assíncronas e execuções de callback devem ser iniciadas nesse objeto executor. A função não possui valor de retorno.
Tratamento de erros: a interface está declarada como noexcept e especificada como segura contra exceções [SWS_CM_00094]. Se o callable passado não existir ou for nulo, ocorre um InvalidHandlerViolation[SWS_CM_00094].
Interação: o escopo abrange todos os métodos do skeleton [SWS_CM_00094], enquanto funções de registro separadas estão disponíveis para operações de Get e Set de fields ([SWS_CM_00096], [SWS_CM_00097]). No binding de rede DDS, o handler configurado reporta erros de transporte como TransportFaultCondition::kSampleRejected[SWS_CM_00216]; no lado do cliente, por outro lado, tais erros são sinalizados via ComErrc::kCommunicationFailure nas futures de resultado [SWS_CM_00090].
Concorrência: Interpretação: a passagem do executor desacopla o tratamento de erros do contexto interno da camada de comunicação; provavelmente, o registro deve ocorrer antecipadamente durante a inicialização do skeleton, antes da chegada das primeiras chamadas de método. Pergunta Q-e56b2a1928cf32ad (aberta)
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ee0471348c1bProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O construtor [SWS_CM_00130] instancia um skeleton de serviço com base num ara::com::InstanceIdentifier concreto. O skeleton liga a implementação de serviço do lado da aplicação à camada de transporte do Communication Management, para que os consumidores de serviço distribuídos possam aceder-lhe (ARAComAPI §5.1 «Proxy Skeleton Pattern»).
Através do parâmetro mode, define-se como são processadas as chamadas de método recebidas. Como valor predefinido, está estipulado o modo baseado em eventos ara::com::MethodCallProcessingMode::kEvent[SWS_CM_00130]. Se, em vez disso, for selecionado um modo baseado em sondagem (polling), a execução de chamadas de método pendentes ocorre de forma síncrona no contexto de chamada de ProcessNextMethodCall()[SWS_CM_00199].
Tratamento de erros e condições de contorno
A função construtora está declarada com noexcept e não lança exceções C++ [SWS_CM_00130]. Possíveis violações são sinalizadas através do sistema de tempo de execução: se a criação for recusada pela imposição de concessão (grant enforcement), ocorre uma InsufficientPermissionsViolation; no caso de transmissão de um modo de processamento inválido, resulta uma WrongMethodCallProcessingModeViolation[SWS_CM_00130]. Interpretação: a validação do modo de processamento deverá ocorrer diretamente durante a execução do construtor. Pergunta Q-80e02c0079757082 (aberta)
As operações de cópia estão explicitamente eliminadas para o skeleton [SWS_CM_00134], enquanto a construção por movimento (move) é suportada [SWS_CM_00135]. Para que o serviço fique localizável na rede, deve ser chamado OfferService() após a instanciação [SWS_CM_00101] (ARAComAPI §6.5 «Service Discovery»). Antes da destruição da instância [SWS_CM_11370], a disponibilização pode ser novamente terminada mediante StopOfferService()[SWS_CM_00111].
Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9052bf72bafdProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O construtor instancia um skeleton de serviço com base em um identificador de instância [SWS_CM_00152]. Ele serve para vincular uma implementação de serviço concreta à camada de transporte do Communication Management. Como parâmetros são passados um ara::core::InstanceSpecifier e opcionalmente o modo de processamento ara::com::MethodCallProcessingMode, o qual é predefinido como padrão para kEvent[SWS_CM_00152].
Em relação ao tratamento de erros e comportamento de exceções, o construtor é declarado como noexcept e exception safe [SWS_CM_00152]. Em caso de configurações incorretas ou desvios de modelagem, são especificadas as seguintes violations:
InstanceSpecifierMappingIntegrityViolation, se o identificador não puder ser resolvido no contexto de execução ou não referenciar um PortPrototype [SWS_CM_00152].
PortInterfaceMappingViolation e ProcessMappingViolation, se o tipo de mapeamento e o tipo de interface não coincidirem [SWS_CM_00152].
InstanceSpecifierAlreadyInUseViolation, se o InstanceSpecifier já estiver em uso [SWS_CM_00152].
WrongMethodCallProcessingModeViolation bem como InsufficientPermissionsViolation em caso de permissões insuficientes [SWS_CM_00152].
Interpretação: Como o construtor é declarado como noexcept, as violations especificadas não devem ser propagadas como exceções C++ lançadas em tempo de execução, mas sim interceptadas por verificações da plataforma ou Grant Enforcement. Pergunta Q-f1a1a0baeb56e482 (aberta)
Para ciclo de vida e concorrência, aplica-se que o construtor de cópia foi excluído [SWS_CM_00134], enquanto um construtor de movimento está disponível [SWS_CM_00135]. A liberação ocorre através do destrutor virtual [SWS_CM_11370]. Após a construção bem-sucedida, o serviço é tipicamente oferecido na rede via [SWS_CM_00101] (OfferService). Se o modo de processamento kPoll tiver sido selecionado, a aplicação deve processar explicitamente as chamadas recebidas dos métodos de serviço [SWS_CM_00191] via [SWS_CM_00199] (ProcessNextMethodCall).
Esta nota de utilização foi gerada automaticamente com base nas especificações AUTOSAR para R25-11.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of the executable, or it refers to a model element other than tegrityViolation a PortPrototype. PortInterfaceMap- The type of mapping does not match the expected type of Port pingViolation Interface: ServiceInterface referenced by a ServiceInstanceToPortPrototypeMapping. ProcessMappingVio- The type of mapping does not match the expected type of Port lation Interface
InstanceSpecifier- The constructor was called with an Instance Specifier already AlreadyInUseViola- tion WrongMethodCall- Wrong processing mode passed to constructor ProcessingModeVio- lation InsufficientPer- Refused by Grant Enforcement missionsViolation
Parameter (in)
Parameter
Beschreibung
instanceSpec
The specifier of a specific instance of a service.
mode
Mode (as per [SWS_CM_00301]) for processing incoming service method invocations. Default argument is kEvent.
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: cadca550210aProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
O construtor instancia um skeleton de serviço com base em um contêiner de identificadores de instância (instanceIDs) e conecta a implementação do serviço no lado do servidor com a camada de transporte do Communication Management [SWS_CM_00153], ARAComAPI §5.1 «Proxy Skeleton Pattern». Através do parâmetro mode, define-se como chamadas de métodos recebidas são processadas; por padrão, o processamento ocorre orientado a eventos através de kEvent[SWS_CM_00153]. Alternativamente, estão disponíveis construtores para identificadores de instância individuais [SWS_CM_00130] ou especificadores de instância [SWS_CM_00152].
Tratamento de erros e simultaneidade
A função é declarada como noexcept e especificada como segura contra exceções (exception safe) [SWS_CM_00153]. Possíveis violações durante a criação são WrongMethodCallProcessingModeViolation em caso de passagem de um modo de processamento não permitido, bem como InsufficientPermissionsViolation, caso a verificação de autorização (Grant Enforcement) falhe [SWS_CM_00153].
Se o modelo de polling (kPoll) for configurado para mode, a aplicação do servidor deve processar chamadas de método pendentes de forma síncrona no contexto de sua própria thread chamando ProcessNextMethodCall()[SWS_CM_00199]. O construtor de cópia da classe de skeleton está excluído (delete) [SWS_CM_00134]; movimentações, por outro lado, são suportadas através do construtor de movimento [SWS_CM_00135].
Interação
Após a instanciação bem-sucedida, o serviço é disponibilizado para consumidores remotos ou locais através de OfferService()[SWS_CM_00101], ARAComAPI §6.5 «Service Discovery». Antes da destruição do skeleton por meio do destrutor [SWS_CM_11370], a disponibilização deve ser encerrada via StopOfferService()[SWS_CM_00111]. Chamadas de métodos recebidas retornam, cada uma, um ara::core::Future no lado do servidor [SWS_CM_00191].
Esta nota de uso foi criada automaticamente com base na especificação AUTOSAR R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5ee7b8c6b839ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O destrutor virtual ~<SI>Skeleton()[SWS_CM_11370] encerra o ciclo de vida de uma instância de skeleton de serviço. O skeleton de serviço, como artefato gerado, conecta a implementação concreta do serviço à camada de transporte do Communication Management, permitindo que os consumidores do serviço acessem os métodos e funcionalidades oferecidos (ARAComAPI §5.1 «Proxy Skeleton Pattern»).
A destruição ocorre de forma síncrona durante a desconstrução da classe de implementação derivada. O método não recebe parâmetros e não declara valor de retorno. Em contraste com os construtores do skeleton, como [SWS_CM_00130] ou [SWS_CM_00152], o destrutor é explicitamente classificado na especificação como not exception safe[SWS_CM_11370].
Em relação ao tratamento de erros e condições de contorno, fica estabelecido que, em caso de pré-condição violada, pode ocorrer uma DanglingSamplesViolation[SWS_CM_11370]. Se o serviço foi previamente oferecido externamente por meio de OfferService()[SWS_CM_00101] (ARAComAPI §6.5 «Service Discovery»), deve provavelmente ser necessário chamar o método StopOfferService()[SWS_CM_00111] antes da chamada do destrutor para encerrar de forma limpa as relações de comunicação em andamento. Pergunta Q-c430a7f0fc838eba (aberta)
Para o skeleton, o construtor de cópia foi excluído [SWS_CM_00134], enquanto operações de movimentação são suportadas [SWS_CM_00135]. Processamentos em andamento – tais como o processamento de chamadas pendentes via ProcessNextMethodCall()[SWS_CM_00199] – devem ser concluídos antes do início da destruição.
Este texto foi gerado por uma IA com base na especificação AUTOSAR R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f2e7dd4743d8Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método [SWS_CM_00111] encerra a oferta de uma instância de serviço pela aplicação provedora de serviço em ara::com. A chamada ocorre sem parâmetros na instância concreta do skeleton no namespace <SI-Namespace>::skeleton::<SI> e não fornece valor de retorno (EXP_ARAComAPI §5.4.1 «Skeleton Class API’s»).
Para o uso e o comportamento em tempo de execução, aplicam-se as seguintes condições:
Contexto de chamada e pré-condição: o método é chamado quando uma instância previamente disponibilizada por meio de OfferService() não deve mais estar disponível – por exemplo, em decorrência de alterações de estado (EXP_ARAComAPI §5.4.4 «Offering Service instance»).
Garantia (contrato): assim que StopOfferService() retornar, de acordo com o contrato, nenhuma chamada de método adicional será encaminhada para esta instância de serviço (EXP_ARAComAPI §5.4.4 «Offering Service instance»).
Ciclo de vida e destrutor: caso uma instância de serviço ainda esteja sendo oferecida ativamente quando o destrutor da classe skeleton for chamado, o destrutor executará StopOfferService() internamente de forma obrigatória (EXP_ARAComAPI §5.4.4 «Offering Service instance»).
A função está declarada como noexcept e é considerada segura contra exceções ([SWS_CM_00111]). Ela não sinaliza erros nem por meio de exceções, nem por mensagens de erro ou códigos de retorno.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão