Permite a los Service Skeletons emitir señales de activación (trigger) y monitorizar el estado de los suscriptores.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6e97d3082affProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite a los Service Skeletons emitir señales de activación (trigger) y monitorizar el estado de los suscriptores.
La clase <SI-Namespace>::skeleton::triggers::<Trigger> permite a una aplicación de servidor enviar señales de activación a clientes suscriptores a través de Communication Management ([SWS_CM_00721]). Para el control del flujo, se puede monitorizar el estado de los suscriptores y registrar manejadores de notificación ([SWS_CM_01109], [SWS_CM_01110]). El disparo mediante Send() requiere un Service Skeleton ofrecido y confirma las infracciones de los intervalos mínimos de envío o los errores de red con los correspondientes códigos de error ([SWS_CM_00721], [SWS_CM_10517]).
Contexto
La clase plantilla <SI-Namespace>::skeleton::triggers::<Trigger> representa la interfaz del lado del servidor de un activador (trigger) definido dentro de una ServiceInterface con el rol trigger. Como parte del esqueleto de servicio (Skeleton), esta clase sirve a una instancia de servicio para enviar notificaciones asíncronas o señales de disparo a aplicaciones cliente suscriptoras en el sistema global. Un activador se diferencia de los eventos regulares en que actúa principalmente como un evento de señalización puro sin datos útiles complejos, tal como expone la clasificación en EXP_ARAComAPI §3 «Trigger::Send» y SWS_CommunicationManagement §7.2.2.1.4 «Handling Triggers». Los participantes en la interacción comprenden la aplicación de servidor que realiza la provisión, el middleware Communication Management (ara::com) y los clientes suscriptores conectados a través de la red.
Ciclo de vida
La instanciación de los objetos Trigger se realiza típicamente como parte integral de la instancia de Skeleton de la ServiceInterface respectiva. Antes de su uso activo, el Skeleton debe ofrecerse a través de Communication Management; si se intenta disparar un trigger previamente, la transmisión falla ([SWS_CM_00721]). La clase gestiona el estado de suscripción de los suscriptores a través de ara::com::SubscriptionState, el cual puede consultarse en cualquier momento con GetSubscriptionState() ([SWS_CM_01109]). Para la monitorización asíncrona del estado, se puede registrar una retrollamada mediante SetSubscriptionStateChangeHandler() ([SWS_CM_01110]). Para arquitecturas concurrentes, existe una sobrecarga que recibe un ejecutor definido por el usuario, de modo que las notificaciones se ejecuten en el contexto de hilo o de tarea deseado ([SWS_CM_01111]). El registro puede cancelarse mediante UnsetSubscriptionStateChangeHandler() ([SWS_CM_01112]). Todos los métodos de la clase ofrecen la garantía de excepción noexcept (exception safe).
Ruta de uso
El flujo típico para el uso de un trigger comprende la observación del estado de suscripción, así como el disparo efectivo de la transmisión a todos los suscriptores activos:
Registro del manejador: la aplicación de servicio registra opcionalmente un manejador de estado a través de SetSubscriptionStateChangeHandler() ([SWS_CM_01110], [SWS_CM_01111]) para ser informada sobre nuevos suscriptores que se incorporen.
Comprobación de estado: con GetSubscriptionState(), el servidor comprueba si existe al menos un suscriptor activo ([SWS_CM_01109]), lo que, según [SWS_CM_10518], constituye el requisito previo para la solicitud de envío.
Envío del trigger: el envío se inicia mediante la llamada a Send() ([SWS_CM_00721], EXP_ARAComAPI §3 «Trigger::Send»), tras lo cual Communication Management distribuye la señal a todas las aplicaciones suscritas.
Cancelación de registro: durante el apagado o cuando ya no se deseen notificaciones de estado, se invoca UnsetSubscriptionStateChangeHandler() ([SWS_CM_01112]).
El método Send() devuelve un ara::core::Result<void>, a través del cual se transportan los eventuales errores de transmisión y configuración ([SWS_CM_00721]):
ComErrc::kServiceNotOffered: se produce cuando la instancia de servicio aún no ha sido ofrecida a través de OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: se devuelve si no se ha respetado un intervalo mínimo de envío configurado (minimumSendInterval) entre transmisiones consecutivas ([SWS_CM_00721]).
ComErrc::kCommunicationFailure: se notifica cuando el envío del trigger falla localmente debido a un error de red subyacente ([SWS_CM_10517]).
Manejador no válido (InvalidHandlerViolation): pasar un objeto invocable (callable) inexistente o vacío a SetSubscriptionStateChangeHandler() representa una infracción de los términos del contrato de la API ([SWS_CM_01110], [SWS_CM_01111]).
Esta guía se basa exclusivamente en las especificaciones AUTOSAR Adaptive Platform Release R25-11.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a3259c7728c6ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método Send transmite un disparador sin datos útiles a todas las aplicaciones suscriptoras ([SWS_CM_00721]). Pertenece a la clase skeleton <SI-Namespace>::skeleton::triggers::<Trigger> y se proporciona a través del archivo de cabecera #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" ([SWS_CM_00721]).
La función está definida como noexcept, se considera segura frente a excepciones y no espera parámetros de entrada ([SWS_CM_00721]). Como tipo de retorno sirve ara::core::Result<void> ([SWS_CM_00721]):
Caso de éxito: El resultado contiene un valor vacío (void) y señala la activación exitosa de la transmisión ([SWS_CM_00721]).
Caso de error: El resultado encapsula un código de error del dominio ara::com::ComErrc ([SWS_CM_10432]). Los posibles errores con semántica de reversión son:
ComErrc::kServiceNotOffered: El servicio aún no se había ofrecido previamente mediante OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: Se produjo una solicitud de transmisión antes de que expirara el intervalo mínimo de transmisión configurado ServiceInterfaceDeploymentElement.minimumSendInterval ([SWS_CM_00721]).
• If successful: an ara::core::Result containing a ara:: core::Result::value_type containing a void • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: com::ComErrc
Fehler
Fehlercode
Beschreibung
ComErrc::kServiceNotOffered
rollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationError
rollback_semantics Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement. minimumSendInterval for the service instance element has not yet expired.
Request a governed re-review of this record. The record is not changed immediately.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d968f8357edfProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función SetSubscriptionStateChangeHandler sirve, en el lado del skeleton, para registrar una función de callback destinada a supervisar cambios de suscripción en un trigger [SWS_CM_01110]. El método pertenece al espacio de nombres <SI-Namespace>::skeleton::triggers::<Trigger> y se proporciona a través del archivo de encabezado <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h[SWS_CM_01110].
Como parámetro se pasa un objeto de función invocable de tipo SubscriptionStateChangeHandler[SWS_CM_00311][SWS_CM_01110]. La llamada está declarada como noexcept, no devuelve ningún valor de retorno y está especificada como segura frente a excepciones (exception safe) [SWS_CM_01110]. Si el callable del manejador transferido no existe o es nulo, el sistema notifica una InvalidHandlerViolation[SWS_CM_01110].
Communication Management invoca la función de callback registrada en cuanto cambia el estado de suscripción del trigger [SWS_CM_01101]:
con el valor de estado kSubscribed, en cuanto el número de suscripciones activas para este trigger pasa a ser mayor que 0 [SWS_CM_01102],
con el valor de estado kNotSubscribed en el lado del skeleton, cuando ya no existen suscripciones activas [SWS_CM_01103].
El manejador registrado puede sobrescribirse en tiempo de ejecución [SWS_CM_01101]. Si la ejecución del manejador debe realizarse en un contexto de ejecución definido, se dispone alternativamente de la variante de plantilla sobrecargada con un parámetro ExecutorT&&[SWS_CM_01111].
Este texto ha sido generado por una IA a partir de la especificación AUTOSAR R25-11.
class <SI-Namespace>::skeleton:: triggers::<Trigger>
Exception-Sicherheit
exception safe
Verletzungen (Violations)
InvalidHandlerVio- Provided Callable handler does not exist or is null lation
Parameter (in)
Parameter
Beschreibung
handler
The handler (as per [SWS_CM_00311]) that shall be called by Communication Management as soon as the ara::com:: SubscriptionState of the trigger has changed.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
As per [SWS_CM_12008] but the method shall execute in a provided context
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f69a35ebe8e5ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función de plantilla SetSubscriptionStateChangeHandler registra a nivel de skeleton para disparadores ([SWS_CM_01111]) un manejador de callback para cambios del estado de suscripción (ara::com::SubscriptionState). Además del parámetro invocable handler, el método acepta un contexto de ejecución executor de tipo ExecutorT ([SWS_CM_01111]). La función no tiene valor de retorno y está definida en el ámbito <SI-Namespace>::skeleton::triggers::<Trigger> ([SWS_CM_01111]).
A diferencia de la función básica sin ejecutor ([SWS_CM_01110]), esta firma garantiza que el callback se ejecute en un contexto definido por el usuario ([SWS_CM_01111]). Al igual que en la variante basada en eventos según [SWS_CM_12008], la ejecución presumiblemente se delega en el objeto ejecutor proporcionado para controlar de forma específica los subprocesos dentro de la aplicación skeleton. Pregunta Q-ba14993b00a7d972 (abierta)
La interfaz está especificada como noexcept y segura frente a excepciones ([SWS_CM_01111]). Si el invocable proporcionado fuera no válido o nulo, según la especificación existe una InvalidHandlerViolation ([SWS_CM_01111]).
Funcionalmente, el método se corresponde con las sobrecargas análogas de ejecutor para eventos skeleton ([SWS_CM_12009]), así como con los equivalentes del lado del cliente de la interfaz proxy ([SWS_CM_01106], [SWS_CM_11354]).
Esta nota de uso ha sido generada de forma automatizada sobre la base de los datos de especificación de AUTOSAR Adaptive R25-11.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d6281d4aa1edProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función UnsetSubscriptionStateChangeHandler sirve en el lado del skeleton para eliminar un callback registrado previamente para cambios del estado de suscripción (SubscriptionState) en un disparador de servicio ([SWS_CM_01112]). Está definida en el espacio de nombres <SI-Namespace>::skeleton::triggers::<Trigger> a través de la cabecera <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h ([SWS_CM_01112]).
Uso y semántica: La interfaz posee la firma void UnsetSubscriptionStateChangeHandler() noexcept, no espera parámetros y carece de valor de retorno ([SWS_CM_01112]). Según la especificación, está clasificada como segura frente a excepciones (exception safe) ([SWS_CM_01112]). No se prevén códigos de error ni mecanismos de notificación específicos (DET/DEM) para esta invocación.
Concurrencia e interfaces relacionadas: En lo que respecta a la concurrencia, es de suponer que la baja de registro se realice de forma síncrona, de modo que tras el retorno de la llamada a la función no se entreguen más notificaciones de estado al manejador registrado previamente. Pregunta Q-e005c4818e02e52f (abierta) Se especifican funciones análogas de baja de registro en el lado del skeleton para eventos ([SWS_CM_12010]), así como en el lado del proxy para eventos ([SWS_CM_00334]), disparadores ([SWS_CM_01108]) y campos ([SWS_CM_11609], AUTOSAR_AP_EXP_ARAComAPI §5.3.1 «Proxy Class API’s»).
Esta nota de uso se generó automáticamente a partir de la especificación AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán