DEENESPTFRRUARHIKOZHNL

структура <SI-Namespace>::proxy::methods::<Method>::Output

[SWS_CM_99333] Upstream: RS_CM_00212, RS_CM_00213, RS_AP_00114, RS_AP_00120, RS_AP_00127, RS_AP_00128, RS_AP_00138

struct Output {...};

Structure wrapping the out arguments for a method

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"
Forwarding-Header#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy/<SiShortname>_proxy_fwd.h"
Scopeclass <SI-Namespace>::proxy::methods::<Method>

Руководство пользователяСОЗДАНО ИИ

Инкапсулирует в виде структуры данных выходные параметры асинхронно вызываемого метода сервиса для принимающего прокси.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8153a94079af Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Инкапсулирует в виде структуры данных выходные параметры асинхронно вызываемого метода сервиса для принимающего прокси.

Структура <SI-Namespace>::proxy::methods::<Method>::Output инкапсулирует выходные аргументы метода сервиса прокси в AUTOSAR Adaptive Platform ([SWS_CM_99333]). В случае успеха вызывающая сторона получает структуру через возвращенный ara::core::Future после его разрешения через get() или GetResult() (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output»). Если во время обработки возникают ошибки, объект Output не создается, а вместо этого через контекст Future предоставляется код ошибки. Путем уничтожения объекта Future клиент может преждевременно прервать текущий вызов метода.

Контекст

Структура <SI-Namespace>::proxy::methods::<Method>::Output служит в управлении коммуникацией (com) AUTOSAR Adaptive Platform структурированной инкапсуляцией выходных аргументов метода сервиса ([SWS_CM_99333]). На стороне потребителя сервиса (прокси) этот класс генерируется типизированным, чтобы передать клиентскому приложению в едином пакете результирующие значения, определенные поставщиком сервиса и переданные через middleware. На стороне поставщика сервиса (скелетона) существует соответствующая структура данных для предоставления возвращаемого методом значения ([SWS_CM_99556]). Основными участниками взаимодействия являются вызывающее клиентское приложение, экземпляр метода прокси, а также возвращаемый интерфейсом вызова ara::core::Future, который в случае успеха переносит объект Output (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output»).

Жизненный цикл

Жизненный цикл экземпляра Output напрямую встроен в асинхронный паттерн коммуникации Adaptive Platform. При выполнении вызова метода на прокси среда выполнения создает ara::core::Future, который служит контейнером для последующего объекта Output (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output»). Фактические результирующие данные формируются на стороне поставщика: после завершения обработки — либо синхронно в теле метода сервиса, либо асинхронно в отдельном потоке — выходные параметры помещаются в структуру вывода и передаются через Promise в соответствующий Future (ARAComAPI §6.19 «Returning Future with already set result»).

Как только результат становится доступен, клиент извлекает экземпляр Output через get() или GetResult(). При этом владение объектом переходит к вызывающей стороне; дальнейшее время жизни с этого момента, предположительно, возлагается на вызывающий код приложения. Вопрос Q-27f51b3c9fb838ed (открытый) Важное граничное условие для жизненного цикла касается преждевременной отмены: деструктор возвращенного объекта ara::core::Future служит вызывающей стороне для отмены запроса после его отправки ([SWS_CM_00194]). Если Future уничтожается преждевременно, это приводит к отмене вызова, так что доставка структуры Output не происходит.

Путь использования

Типичный порядок действий для получения выходных параметров метода включает следующие шаги:

  • Инициирование вызова: клиент вызывает метод сервиса на прокси и немедленно получает ara::core::Future<Output> (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output»).
  • Запрос результата: клиент синхронизируется по результату или напрямую вызывает get() либо GetResult(). Если результат уже был установлен на стороне сервера в Promise, вызов не блокируется, а сразу возвращает структуру Output (ARAComAPI §6.19 «Returning Future with already set result»).
  • Обработка значений: клиент считывает выходные значения из полученной структуры. Интерпретация: структура Output, вероятно, предоставляет все определенные аргументы Out и Inout метода в виде свободно доступных членов. Вопрос Q-3a292028627f3c64 (открытый)
Вызов метода Proxy и получение структуры OutputClientProxyMethodFuture<Output>Methodenaufruf()ara::core::Future<Output>get() / GetResult()altErfolgreichOutputFehler aufgetretenara::core::ErrorCode

Диаграмма последовательности: вызов метода прокси и получение структуры Output через Future. Источники: [SWS_CM_99333], AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output», ARAComAPI §6.19 «Returning Future with already set result».

Сценарии ошибок

Если при обработке метода возникает ошибка, обычный объект Output не возвращается. Управление коммуникацией обрабатывает это через специфические механизмы ошибок:

  • Проверяемые ошибки приложения (Checked Errors): если во время обработки вызова метода возникает определенная ошибка, соответствующий ara::core::ErrorCode передается в контексте вызова get() или GetResult() ([SWS_CM_10371]).
  • Инфраструктурные ошибки и ошибки передачи: в случае сбоя вызова ara::core::Future содержит соответствующий код ошибки, такой как ara::core::FutureErrc (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output») или со стороны поставщика ara::com::ComErrc (AUTOSAR_AP_SWS_CommunicationManagement §8.4 «Methods»).
  • Методы Fire-and-Forget: для методов без возвращаемых значений (Fire and Forget) проверяемые ошибки не возвращаются ([SWS_CM_90436]); для таких методов структуры Output не существует.
  • Прерывание вызова: уничтожение объекта Future прерывает текущий запрос и предотвращает предоставление результата Output ([SWS_CM_00194]).

Этот путеводитель основан исключительно на спецификациях Adaptive релиза R25-11.