查看源码 snmpa_notification_delivery_info_receiver 行为 (snmp v5.18)
SNMP 代理通知传递信息接收者的行为模块。
此模块定义了通知传递信息接收者的行为。
当用户发送通知(参见 snmpa:send_notification2/3
)时,用户可以选择(可选)接收传递信息(消息是否被目标接收并确认)。此行为描述了用户获取此类(传递)信息的方式。
符合 snmpa_notification_delivery_info_receiver
的模块必须导出以下函数
它们的语义及其确切签名将在下面解释。
旧版本的通知传递信息接收器模块使用 {IpAddr, PortNumber}
形式的目标参数,而不是 {Domain, Addr}
,如果 SNMP 代理在未更改配置以使用传输域的情况下运行,通知传递信息接收器仍将获取旧参数并像以前一样工作。
摘要
类型
-type notification_delivery_info() :: #snmpa_notification_delivery_info{tag :: term(), mod :: term(), extra :: term()}.
应如何报告(通知)传递信息。
此记录定义与 inform 传递信息相关的信息。也就是说,当发送 inform 时,有关传递(例如是否已确认)的信息将使用此记录中的信息传递。
传递将按照以下方式执行
Mod:delivery_targets(Tag, Addresses, Extra)
Mod:delivery_info(Tag, Address, DeliveryResult, Extra)
Extra 是用户提供的任何术语。
此记录的字段具有以下含义
tag = term()
- 用户选择的值,用于标识此发送mod = module()
- 实现snmpa_notification_delivery_info_receiver
行为的模块。extra = term()
- 这是用户希望在调用回调模块中的函数时提供的任何额外信息。在调用发送函数时提供。
-type transportAddressWithPort() :: snmpa_conf:transportAddressWithPort().
-type transportDomain() :: snmpa_conf:transportDomain().
回调
-callback delivery_info(Tag, Targets, DeliveryResult, Extra) -> snmp:void() when Tag :: term(), Targets :: [Target], Target :: {transportDomain(), transportAddressWithPort()}, DeliveryResult :: no_response | got_response, Extra :: term().
告知传递结果。
为 delivery_targets/3
函数的 Targets
参数中的每个目标调用此函数,请参见上文。
目的是告知 receiver
每个目标的传递结果(是否已确认通知)。
-callback delivery_targets(Tag, Targets, Extra) -> snmp:void() when Tag :: term(), Targets :: [Target], Target :: {transportDomain(), transportAddressWithPort()}, Extra :: term().
告知目标地址。
这是在通知传递正在进行时调用的第一个函数。它告知 receiver
哪些目标将接收通知。传递的结果将通过连续调用 delivery_info/4
函数提供,请参见下文。