檢視原始碼 snmpa_notification_delivery_info_receiver 行為 (snmp v5.18)
SNMP Agent 通知傳遞資訊接收器的行為模組。
此模組定義通知傳遞資訊接收器的行為。
當使用者傳送通知(請參閱 snmpa:send_notification2/3
)時,使用者可以(選擇性地)選擇接收傳遞資訊(訊息是否被目標接收並確認)。此行為描述使用者取得此類(傳遞)資訊的方式。
符合 snmpa_notification_delivery_info_receiver
的模組必須匯出以下函式
它們的語義和確切簽名將在下面說明。
舊版通知傳遞資訊接收器模組使用 {IpAddr, PortNumber}
格式的 target 參數,而不是 {Domain, Addr}
。如果 SNMP Agent 在未變更組態以使用傳輸網域的情況下執行,通知傳遞資訊接收器仍會接收舊的參數並像以前一樣工作。
摘要
類型
-type notification_delivery_info() :: #snmpa_notification_delivery_info{tag :: term(), mod :: term(), extra :: term()}.
應如何報告(通知)傳遞資訊。
此紀錄定義與通知傳遞資訊相關的資訊。也就是說,當傳送 inform 時,關於傳遞的資訊(例如是否已確認)將使用此紀錄中的資訊傳遞。
傳遞將根據以下方式執行
Mod:delivery_targets(Tag, Addresses, Extra)
Mod:delivery_info(Tag, Address, DeliveryResult, Extra)
Extra 是由使用者提供的任何 term。
此紀錄的欄位具有以下含義
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
函式來提供,請參閱下方。