Diese Seite wurde vollständig KI-generiert auf Basis von SWS Raw Data Stream (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.
Object for reading and writing binary data streams over a network connection.
Header-Datei
#include "ara/rds/raw_data_stream.h"
Scope
namespace ara::rds
Guia do utilizadorGERADO POR IA
Permite o envio e a receção de fluxos de dados binários através de uma ligação de rede em portas modeladas.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: effb63ab8311ProcedênciaPerguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Permite o envio e a receção de fluxos de dados binários através de uma ligação de rede em portas modeladas.
A classe ara::rds::RawDataStreamClient serve para a leitura e escrita de fluxos de dados binários através de uma ligação de rede na AUTOSAR Adaptive Platform AUTOSAR_AP_SWS_RawDataStream p. 1. As instâncias são criadas através do método de fábrica estático Create, após o que a ligação é estabelecida com Connect, os dados são trocados através de ReadData e WriteData, e a sessão é terminada via Shutdown[SWS_RDS_10482]. Sendo um tipo não copiável e exclusivamente movível, o objeto não é thread-safe, pelo que as chamadas concorrentes têm de ser sincronizadas do lado da aplicação.
Contexto
A classe ara::rds::RawDataStreamClient serve como ponto terminal para o envio e a receção de fluxos de dados binários através de uma ligação de rede de acordo com a especificação AUTOSAR_AP_SWS_RawDataStream p. 1. Ela encapsula a ligação de comunicação de uma porta modelada, a qual é identificada e instanciada em tempo de execução através de um ara::core::InstanceSpecifier[SWS_RDS_10482]. O software aplicacional utiliza a interface para transmitir bidirecionalmente volumes de dados úteis não estruturados, sem necessidade de recorrer a interfaces de serviço baseadas em mensagens. A classe atua como cliente, estabelecendo e controlando ativamente uma ligação a um interlocutor através da rede.
Ciclo de vida
A criação de uma instância efetua-se exclusivamente através do método de fábrica estático Create[SWS_RDS_10482]. Este método é thread-safe e retorna, em caso de sucesso, a instância de cliente operacional dentro de um ara::core::Result. Relativamente às relações de posse, ara::rds::RawDataStreamClient está concebido como um tipo move-only: o construtor de cópia [SWS_RDS_11303] e o operador de atribuição por cópia [SWS_RDS_11304] estão explicitamente eliminados (=delete). Uma transferência do recurso só é possível através de semântica de movimento via construtor de movimento [SWS_RDS_11305] ou atribuição por movimento [SWS_RDS_11306]. Estas operações de movimento estão especificadas como não thread-safe.
No ciclo de vida, o objeto passa por várias fases: após a instanciação bem-sucedida, a ligação encontra-se no estado desligado. Através da chamada de Connect sem parâmetros [SWS_RDS_10484] ou com um intervalo de tempo configurável [SWS_RDS_11307], a ligação de rede é estabelecida e transita para o estado ativo. O encerramento da ligação pode ser provocado explicitamente através de Shutdown, fechando assim o fluxo de dados [SWS_RDS_10485]. Se a instância for destruída, o destrutor ~RawDataStreamClient garante o fecho e desativação automáticos de uma ligação ainda aberta [SWS_RDS_10483]. Nem os métodos de instância nem o destrutor são thread-safe; o acesso à mesma instância a partir de diferentes threads requer, por isso, sincronização externa.
A utilização típica subdivide-se nas fases de inicialização, estabelecimento da ligação, transmissão de dados úteis e desmantelamento da ligação:
Inicialização: A aplicação instancia o cliente através de Create com o ara::core::InstanceSpecifier pretendido [SWS_RDS_10482].
Estabelecimento da ligação: Em seguida, a chamada de Connect[SWS_RDS_10484] ou de Connect com timeout [SWS_RDS_11307] estabelece a ligação de rede ao interlocutor.
Transmissão de dados: No estado ligado, a troca de dados processa-se de forma bidirecional. Para enviar dados, chama-se WriteData, sendo os dados transmitidos como std::unique_ptr<ara::core::Byte[]> juntamente com a indicação do comprimento [SWS_RDS_10487], opcionalmente com timeout [SWS_RDS_11310]. Para receber, utiliza-se ReadData sob indicação do tamanho máximo do buffer a ler [SWS_RDS_10486], opcionalmente também com timeout [SWS_RDS_11309]. Presumivelmente, a execução de operações de leitura e escrita pressupõe uma ligação previamente estabelecida com sucesso. Pergunta (aberta)
Desmantelamento da ligação: Concluída a troca de dados, a ligação é terminada de forma ordeira através de Shutdown[SWS_RDS_10485].
Todos os métodos de ara::rds::RawDataStreamClient utilizam o tipo padrão ara::core::Result para retornos de erro e sucesso e são declarados com noexcept, pelo que nenhuma exceção C++ é lançada. No estabelecimento da conexão via Connect, em caso de erro, é retornado um código de erro do tipo RdsErrc[SWS_RDS_10484]. Nas variantes com limite de tempo – Connect[SWS_RDS_11307], ReadData[SWS_RDS_11309] e WriteData[SWS_RDS_11310] –, o transcurso do intervalo de tempo indicado (std::chrono::milliseconds) presumivelmente resulta em um erro de timeout correspondente no objeto Result. Pergunta Q-0ee603533c355c45 (aberta) Da mesma forma, uma chamada de métodos de leitura ou escrita sem conexão ativa provavelmente falhará e reportará um código de erro de RdsErrc. Portanto, os chamadores devem verificar o valor de retorno de cada chamada quanto ao sucesso antes que as operações subsequentes sejam executadas.
Este guia de classe resume os aspetos centrais de ara::rds::RawDataStreamClient com base na especificação AUTOSAR Adaptive Platform R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão