# snmpa_notification_delivery_info_receiver

###
Module

snmpa_notification_delivery_info_receiver

###
Module Summary

Behaviour module for the SNMP agent notification delivery information receiver.

###
Description

This module defines the behaviour of the notification delivery information receiver.

A snmpa_notification_delivery_info_receiver compliant module must export the following functions:

- delivery_targets/3

- delivery_info/4

The semantics of them and their exact signatures are explained below.

Legacy notification delivery information receiver modules used a target argument on the form {IpAddr, PortNumber} instead of {Domain, Addr}, and if the SNMP Agent is run without changing the configuration to use transport domains the notification delivery information receiver will still get the old arguments and work as before.

###
DATA TYPES

See the data types in snmpa_conf.

###
Exports

####
delivery_targets(Tag, Targets, Extra) -> void()

### Types

Tag = term()
Targets = [Target]
Target = {transportDomain(), transportAddressWithPort()
Extra = term()

Inform about target addresses.

This is the first function called when a notification delivery is in progress. It informs the receiver which targets will get the notification. The result of the delivery will be provided via successive calls to delivery_info/4 function, see below.

####
delivery_info(Tag, Target, DeliveryResult, Extra) -> void()

### Types

Tag = term()
Targets = [Target]
Target = {transportDomain(), transportAddressWithPort()
DeliveryResult = delivery_result()
delivery_result() = no_response | got_response
Extra = term()

Inform about delivery result.

This function is called for each target in the Targets argument of the delivery_targets/3 function, see above.

The purpose is to inform the receiver of the result of the delivery (was the notification acknowledged or not) for each target.