функция RegisterGetHandler [SWS_CM_00114] Upstream: RS_CM_00218, RS_AP_00114, RS_AP_00120, RS_AP_00127, RS_AP_00128, RS_AP_00138
void RegisterGetHandler (std::function< ara::core::Future< FieldType >()> handler) noexcept;
Register a callback function to be invoked when a Get() request is received. The method exists only if the offered service contains a Field and Field.hasGetter ==TRUE
Использование
Метод RegisterGetHandler вызывается на стороне сервера для объекта поля скелетона ([SWS_CM_00114]). Он существует в сгенерированном коде исключительно в том случае, если в описании интерфейса для соответствующего поля был сконфигурирован геттер (Field.hasGetter == TRUE) (EXP ARAComAPI §5.4.8.1 «Registering Getters»). Передаётся обратный вызов handler типа std::function<ara::core::Future<FieldType>()>, который вызывается реализацией связывания при входящем запросе Get() от прокси.
Регистрация такого обработчика полностью опциональна (EXP ARAComAPI §5.4.8.1 «Registering Getters»). Обычно сервисной реализации не требуется обработчик геттера, так как Communication Management кэширует значение, заданное последним через Update(), и самостоятельно отвечает на запросы прокси. Обработчик имеет смысл прежде всего тогда, когда вычисление значения поля требует много времени или вычислительных ресурсов и поэтому должно производиться асинхронно через паттерн Promise/Future только при фактической необходимости.
Обработка ошибок и граничные условия
Функция не имеет возвращаемого значения, объявлена как noexcept и является исключение-безопасной (exception safe) ([SWS_CM_00114]). Если переданный вызываемый объект не существует или равен null, возникает ошибка InvalidHandlerViolation ([SWS_CM_00114]).
Взаимодействие
В отличие от RegisterSetHandler, вызов которого обязателен при наличии сеттера (EXP ARAComAPI §5.4.8.2 «Registering Setters»), RegisterGetHandler остаётся сугубо опциональным. Если обработчик должен обрабатываться асинхронно в определённом контексте выполнения, дополнительно доступна перегруженная шаблонная функция с ExecutorT ([SWS_CM_11360]).
Данное указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
| Header-Datei | #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" |
|---|---|
| Scope | class <SI-Namespace>::skeleton:: fields::<Field> |
| Exception-Sicherheit | exception safe |
| Verletzungen (Violations) | InvalidHandlerVio- Provided Callable handler does not exist or is null lation |
Parameter (in)
| Parameter | Beschreibung |
|---|---|
| handler | The callback function to be invoked to process the Field get request |
Rückgabewert
| Typ | Beschreibung |
|---|---|
| None |
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/SWS_CM_00114- Status
- valid/unmigrated
- Version
AUTOSAR/AP/record/SWS_CM_00114@rel:R25-11#4afdbc58- Content hash
4afdbc58- Source
- https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_00114
Status: valid/unmigrated
Version: rel:R25-11#c6386380
Versionshistorie & Revisions (1 transition, 8 revision)
- Current State
valid/unmigrated- Reason
- mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
- Campaign
2026-08-13-status-backfill- Active Version
AUTOSAR/AP/record/SWS_CM_00114@rel:R25-11#c6386380
Recorded Revisions (8):
- R25-11
rel:R25-11#417163c72026-09-30 - R19-11
rel:R19-11#f07f56a32026-10-14 - R20-11
rel:R20-11#cdd125c72026-10-14 - R21-11
rel:R21-11#cdd125c72026-10-14 - R22-11
rel:R22-11#6a153b112026-10-14 - R23-11
rel:R23-11#23956e7c2026-10-14 - R24-11
rel:R24-11#5d29d0102026-10-14 - R25-11
rel:R25-11#c63863802026-10-14 active
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
| Date | Actor | Transition | Reason / Rationale | Campaign |
|---|---|---|---|---|
| 2026-08-13 | tool | none → valid/unmigrated | mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record | 2026-08-13-status-backfill |
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал