структура <SI-Namespace>::proxy::methods::<Method>::Output
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" |
| Scope | class <SI-Namespace>::proxy::methods::<Method> |
Руководство пользователяСОЗДАНО ИИ
Инкапсулирует в виде структуры данных выходные параметры асинхронно вызываемого метода сервиса для принимающего прокси.
Инкапсулирует в виде структуры данных выходные параметры асинхронно вызываемого метода сервиса для принимающего прокси.
Структура <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 (открытый)
Диаграмма последовательности: вызов метода прокси и получение структуры 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.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал